Seneca Flow is a plugin for Seneca
Workflow operations and data model
This open source module is sponsored and supported by Voxgig. |
---|
A flow is series of transitions over a directed graph of steps. Each step indicates valid transitions to other steps. A flow is defined primarily as the graph of steps.
Entities:
- Flow definition entity:
sys/flowDef
- Step definition entity:
sys/flowStepDef
Relations:
sys/flowStepDef *-->1 sys/flowDef
# steps of the flow
An instance of a flow specifies the current step, a list of step states, and alog of step operations.
The step operations are:
- APPLY: move to the specified step from current step (create step state if needed), and update the step data as indicated, recording change in log.
Entities:
- Flow instance entity:
sys/flow
- Step instance entity:
sys/flowStep
- Step log entity:
sys/flowStepLog
Relations:
sys/flow *-->1 sys/flowDef
# flow instance of a flowDefsys/flowStep *-->1 sys/flowStepDef
# flow step instance of a flowStepDefsys/flowStep *-->1 sys/flow
# flow step of flow (1 only per flowStepDef)sys/flow 1-->1 sys/flowStep
# current flowStepsys/flowStepLog *--> sys/flowDef
# flow step log entry for flowDefsys/flowStepLog *--> sys/flow
# flow step log entry for flowsys/flowStepLog *--> sys/flowStepDef
# flow step log entry for flowStepDefsys/flowStepLog *--> sys/flowStep
# flow step log entry for flowStep
Each entity has a set of well-defined fields for internal control, and
a set of standard fields for common use cases. Custom user fields
should be prefixed with an x
to ensure namespace safety for
updates. No standard field will start with x
.