Contracts

Use contracts when replacing persistence, redaction, approval, or dashboard behavior, or when adding a trigger source.

Contract Role
FlowStore Aggregates run, step, audit, approval, and webhook repositories.
RunRepository Persists and retrieves run state.
RunNodeRepository Persists per-node execution rows (a v1 step is a legacy.step node).
AuditRepository Appends audit rows.
ApprovalRepository Stores approval token state.
ApprovalDecisionRepository Supports approve and reject decisions.
ConditionalRunRepository Supports conditional run state transitions.
PayloadRedactor Redacts sensitive payload keys.
RedactorAwareFlowStore Receives execution-scoped redactor instances.
FlowDashboardReadModel Provides dashboard read queries.
DashboardActionAuthorizer Authorizes dashboard actions.
FlowTrigger Starts a run from an external signal (fire() → Flow::dispatch()). Implemented by the laravel-flow-connect triggers.