Storage and audit
Tables
Section titled “Tables”| Table | Content |
|---|---|
anvil_workflow_definitions |
every version of a definition |
anvil_workflow_records |
per record and workflow: version, state, entered at, creator, escalation marks; the schedule: clock start, deadline, due date of the step, pause, forecast, risk |
anvil_workflow_transitions |
the history: transition, from, to, actor, override, reason, form data, configuration version |
anvil_workflow_tenants, anvil_workflow_configs |
availability, activation and configurations per tenant |
anvil_tasks, anvil_task_candidates |
tasks, their outcome, comment and form data; who may complete them |
The state is also written to the state column of the record, so lists and filters work with plain queries.
Audit events
Section titled “Audit events”| Event | When |
|---|---|
workflow.transition |
a transition ran |
workflow.override |
a transition ran as substitute |
workflow.made_available, workflow.withdrawn |
an operator changed the availability |
workflow.activated, workflow.deactivated |
a tenant switched the workflow on or off |
workflow.config_drafted, workflow.config_released |
a configuration was drafted or released |
workflow.migrated |
records were moved to a new version |
task.completed |
a task was completed |
The history on the detail page is read from anvil_workflow_transitions;
the audit log keeps the tamper evident record.