(add-embedded-wfs wf-catalog log-fn)Updates the workflow catalog to add all embedded workflows to the
catalog using the uuid as a key and substituting the wf with its
reference wherever it appears.
Updates the workflow catalog to add all embedded workflows to the catalog using the `uuid` as a key and substituting the wf with its reference wherever it appears.
(base-workflow-catalog {:flows/keys [log-fn]
:flows.workflow/keys [default]
:flows.definition/keys [workflows pedestal-routes]})Creates a workflow catalog which is populated with all wfs which
come from the workflow definitions and pedestal routes.
When a default is provied populates all workflows with an
enriched :workflow/args by merging its contents
Note: only validates for id uniqueness of wf in catalog
Creates a workflow catalog which is populated with all wfs which come from the workflow definitions and pedestal routes. When a default is provied populates all workflows with an enriched `:workflow/args` by merging its contents Note: only validates for id uniqueness of wf in catalog
(deps-graph-catalog wf-catalog log-fn)Returns a workflow catalog which replaces its wf values with a data structure
that includes the graph for each wf: {:workflow workflow :graph []}
Note: Validates that the workflows are well-formed and don't have cycli
c dependencies
Returns a workflow catalog which replaces its wf values with a data structure
that includes the graph for each wf: `{:workflow workflow :graph []}`
Note: Validates that the workflows are well-formed and don't have cycli
c dependencies(dissoc-in! path id)Removes an entity from the catalog
Removes an entity from the catalog
(flows-catalog
{:flows/keys [log-fn] :flows.definition/keys [flows] :as flow-definitions})(load-system-catalog {:flows/keys [log-fn] :as flows-definition})Loads a system runtime catalog from the flows definition which
are not marked at :workflow/lazy-load true.
Notes
Loads a system runtime catalog from the flows definition which are not marked at `:workflow/lazy-load true`. Notes - Validates all flows and workflows checking for valid flow-fns, workflow structure and cyclic dependencies in definitions. - Workflow loads by unpacking all embeded references and loading them the order of least graph dependencies to most which maps to dependency reference depth.
(refed-and-deps-graph-catalog {:flows/keys [log-fn] :as flows-definition})(replace-wf-embedded-refs wf-catalog k wf log-fn)Replaces the definition of a workflow with ref'ed versions of any embedded wfs. If the embeded wf does not yet exist in the catalog it is added with its uuid as the key
NOTE If an embed refs something already in cat we are just substituting the ref. This has a risk because you can't technically validate that the wf in catalog is the same as the embed you are evaluating because a later wf could reference an already replaced embed with replaced refs so there will be a definition mismatch w/ identical uuids when comparing. This is assessed as low risk structurally.
Replaces the definition of a workflow with ref'ed versions of any embedded wfs. If the embeded wf does not yet exist in the catalog it is added with its uuid as the key NOTE If an embed refs something already in cat we are just substituting the ref. This has a risk because you can't technically validate that the wf in catalog is the same as the embed you are evaluating because a later wf could reference an already replaced embed with replaced refs so there will be a definition mismatch w/ identical uuids when comparing. This is assessed as low risk structurally.
(reset-state!)Resets the runtime state unloading all entities from the catalogs.
Resets the runtime state unloading all entities from the catalogs.
(start {:flows/keys [log-fn] :as flows-definition})Start function used by both mount and component. It stores the system catalog in the atom that is used by the flow, workflow,and core catalog apis.
Flows and workflows are validated and workflows which are not marked as lazy-load are loaded.
Note: Loading Order
Start function used by both mount and component.
It stores the system catalog in the atom that is used by
the flow, workflow,and core catalog apis.
Flows and workflows are validated and workflows which
are not marked as lazy-load are loaded.
Note: Loading Order
1. Compile Time: Flows pedestal routes are processed; Workflows are not loaded
2. System startup: Flows and all workflows are validated, are added to the catalogs,
and the result is stored to state-atom.cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |