Liking cljdoc? Tell your friends :D

boundary.workflow.core.audit

Pure constructors for workflow audit trail entries.

No I/O — entries are plain data maps. Persistence lives in the shell layer.

Pure constructors for workflow audit trail entries.

No I/O — entries are plain data maps. Persistence lives in the shell layer.
raw docstring

boundary.workflow.core.machine

Pure workflow state-machine introspection.

Helpers for reading the shape of a WorkflowDefinition map (states, initial state, transitions). No mutable state and no I/O.

The definition registry and the defworkflow macro live in the shell (boundary.workflow.shell.registry) — this namespace holds no mutable state.

Pure workflow state-machine introspection.

Helpers for reading the shape of a WorkflowDefinition map (states, initial
state, transitions). No mutable state and no I/O.

The definition registry and the `defworkflow` macro live in the shell
(boundary.workflow.shell.registry) — this namespace holds no mutable state.
raw docstring

boundary.workflow.core.transitions

Pure business logic for workflow transition decisions.

All functions are pure — no I/O, no side effects. Guards and side-effect dispatch rely on data maps, not concrete impls.

Pure business logic for workflow transition decisions.

All functions are pure — no I/O, no side effects.
Guards and side-effect dispatch rely on data maps, not concrete impls.
raw docstring

boundary.workflow.core.ui

Pure Hiccup UI components for workflow admin visualization.

All functions are pure — they receive data and return Hiccup structures. No side effects, no I/O, no logging.

Components: state-badge — colored state pill state-machine-vis — read-only workflow state diagram audit-log-table — chronological audit trail table instances-filter-form — search/filter form for instance list instances-table — paginated instance list table instances-page — full page: instance list instance-detail-page — full page: instance detail with state viz + audit trail

Pure Hiccup UI components for workflow admin visualization.

All functions are pure — they receive data and return Hiccup structures.
No side effects, no I/O, no logging.

Components:
  state-badge          — colored state pill
  state-machine-vis    — read-only workflow state diagram
  audit-log-table      — chronological audit trail table
  instances-filter-form — search/filter form for instance list
  instances-table      — paginated instance list table
  instances-page       — full page: instance list
  instance-detail-page — full page: instance detail with state viz + audit trail
raw docstring

boundary.workflow.ports

Port definitions for the boundary-workflow library.

Three protocols cover the full lifecycle:

IWorkflowStore — persistence of instances and audit log IWorkflowEngine — high-level transition orchestration IWorkflowRegistry — in-process registry of workflow definitions

Port definitions for the boundary-workflow library.

Three protocols cover the full lifecycle:

IWorkflowStore    — persistence of instances and audit log
IWorkflowEngine   — high-level transition orchestration
IWorkflowRegistry — in-process registry of workflow definitions
raw docstring

boundary.workflow.schema

Malli schemas for declarative workflow state machines.

A workflow defines:

  • A set of named states
  • Transitions between states, with optional guards and permissions
  • Side effects triggered on transition

A workflow instance tracks:

  • Which entity (type + id) is being managed
  • The current state of that entity
  • Metadata for guard / context evaluation
Malli schemas for declarative workflow state machines.

A workflow defines:
- A set of named states
- Transitions between states, with optional guards and permissions
- Side effects triggered on transition

A workflow instance tracks:
- Which entity (type + id) is being managed
- The current state of that entity
- Metadata for guard / context evaluation
raw docstring

boundary.workflow.shell.http

HTTP API routes and admin web UI handlers for workflow management.

API Endpoints (canonical): GET /api/v1/workflow/instances/:id — current state + metadata GET /api/v1/workflow/instances/:id/audit — full audit log POST /api/v1/workflow/instances — start a new workflow instance POST /api/v1/workflow/instances/:id/transition — execute a transition

Compatibility: /api/workflow/* redirects to /api/v1/workflow/* via versioning middleware.

Admin Web UI (mounted under /web/admin): GET /workflows — list all workflow instances GET /workflows/:id — instance detail with state viz + audit trail

All routes require authentication (actor extracted from ring request). Caller is responsible for mounting under an authenticated router.

HTTP API routes and admin web UI handlers for workflow management.

API Endpoints (canonical):
  GET  /api/v1/workflow/instances/:id            — current state + metadata
  GET  /api/v1/workflow/instances/:id/audit      — full audit log
  POST /api/v1/workflow/instances                — start a new workflow instance
  POST /api/v1/workflow/instances/:id/transition — execute a transition

Compatibility:
  /api/workflow/* redirects to /api/v1/workflow/* via versioning middleware.

Admin Web UI (mounted under /web/admin):
  GET  /workflows        — list all workflow instances
  GET  /workflows/:id    — instance detail with state viz + audit trail

All routes require authentication (actor extracted from ring request).
Caller is responsible for mounting under an authenticated router.
raw docstring

boundary.workflow.shell.module-wiring

Integrant lifecycle management for the workflow module.

Config keys:

:boundary/workflow-db-schema {:ctx (ig/ref :boundary/db-context)}

:boundary/workflow Minimal config (no side-effects): {:db-ctx (ig/ref :boundary/db-context) :db-schema (ig/ref :boundary/workflow-db-schema)}

Full config (with jobs side-effects): {:db-ctx (ig/ref :boundary/db-context) :db-schema (ig/ref :boundary/workflow-db-schema) :job-queue (ig/ref :boundary/job-queue) :guard-registry {}}

:boundary/workflow-routes {:workflow-service (ig/ref :boundary/workflow) :user-service (ig/ref :boundary/user-service)}

Returns {:api [...] :web [...] :static []} for composition by the HTTP handler.

Integrant lifecycle management for the workflow module.

Config keys:

:boundary/workflow-db-schema
  {:ctx (ig/ref :boundary/db-context)}

:boundary/workflow
  Minimal config (no side-effects):
    {:db-ctx    (ig/ref :boundary/db-context)
     :db-schema (ig/ref :boundary/workflow-db-schema)}

  Full config (with jobs side-effects):
    {:db-ctx        (ig/ref :boundary/db-context)
     :db-schema     (ig/ref :boundary/workflow-db-schema)
     :job-queue     (ig/ref :boundary/job-queue)
     :guard-registry {}}

:boundary/workflow-routes
  {:workflow-service (ig/ref :boundary/workflow)
   :user-service     (ig/ref :boundary/user-service)}

  Returns {:api [...] :web [...] :static []} for composition
  by the HTTP handler.
raw docstring

No vars found in this namespace.

boundary.workflow.shell.persistence

Database persistence for workflow instances and audit trail.

Implements IWorkflowStore using next.jdbc + HoneySQL. Applies snake_case <-> kebab-case conversion at the DB boundary only.

Database persistence for workflow instances and audit trail.

Implements IWorkflowStore using next.jdbc + HoneySQL.
Applies snake_case <-> kebab-case conversion at the DB boundary only.
raw docstring

boundary.workflow.shell.registry

Load-time registry of workflow definitions.

The registry is mutable process state, so it lives in the shell — the core (boundary.workflow.core.machine) stays pure (state-machine introspection only). Definitions are registered at namespace load via the defworkflow macro and read at runtime by the workflow service/wiring.

No business logic here — just the definition registry, the defworkflow convenience macro, and the IWorkflowRegistry adapter.

Load-time registry of workflow definitions.

The registry is mutable process state, so it lives in the shell — the core
(boundary.workflow.core.machine) stays pure (state-machine introspection
only). Definitions are registered at namespace load via the `defworkflow`
macro and read at runtime by the workflow service/wiring.

No business logic here — just the definition registry, the `defworkflow`
convenience macro, and the IWorkflowRegistry adapter.
raw docstring

boundary.workflow.shell.service

Workflow engine service.

Orchestrates the full transition lifecycle:

  1. Load workflow definition from registry
  2. Load workflow instance from store
  3. Validate transition (existence, permissions, guards)
  4. Persist new state + audit entry
  5. Enqueue side-effect jobs (if job-queue provided)

Implements IWorkflowEngine.

Workflow engine service.

Orchestrates the full transition lifecycle:
  1. Load workflow definition from registry
  2. Load workflow instance from store
  3. Validate transition (existence, permissions, guards)
  4. Persist new state + audit entry
  5. Enqueue side-effect jobs (if job-queue provided)

Implements IWorkflowEngine.
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close