Liking cljdoc? Tell your friends :D

wagoe.workflow.shell.admin-adapter

The admin's IEntityWorkflows port over this module's store (BOU-563). Here and not in the admin, because this library depends on the admin and not the other way round.

The admin's `IEntityWorkflows` port over this module's store (BOU-563).
Here and not in the admin, because this library depends on the admin and
not the other way round.
raw docstring

wagoe.workflow.shell.http

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

API Endpoints (canonical): GET /api/v1/workflow/instances?entity-type=&entity-id= — an entity's instances 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

Every route requires authentication and answers 401 without it.

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

API Endpoints (canonical):
  GET  /api/v1/workflow/instances?entity-type=&entity-id= — an entity's instances
  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

Every route requires authentication and answers 401 without it.
raw docstring

wagoe.workflow.shell.module-wiring

Integrant lifecycle management for the workflow module.

Config keys:

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

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

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

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

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

Integrant lifecycle management for the workflow module.

Config keys:

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

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

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

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

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

wagoe.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

wagoe.workflow.shell.registry

Load-time registry of workflow definitions.

The registry is mutable process state, so it lives in the shell — the core (wagoe.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
(wagoe.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

wagoe.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

wagoe.workflow.shell.unique-instances

One instance per workflow and entity (BOU-581). Without the unique index two lazy starts could both find none and both insert. Idempotent, and refuses by name a table that already holds duplicates.

One instance per workflow and entity (BOU-581). Without the unique index two
lazy starts could both find none and both insert. Idempotent, and refuses by
name a table that already holds duplicates.
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