Anatomy

A workflow has three parts:

  • Trigger — what starts a run. Either a KRI threshold breach, a scheduled time, or a manual button.
  • Steps — ordered actions: notify an owner, open a ticket in Jira/ServiceNow, run an expert-panel query, produce a document, post to Slack, wait for human approval.
  • KRI events — structured events emitted by steps that feed back into the risk model (e.g. “patch confirmed” closes the breach).

Authoring via interview

Workflows aren’t authored in JSON. The tenant admin starts a workflow interview (POST /api/workflow-interviews), and an LLM walks them through the workflow conversationally — trigger, steps, owners, approvals. When the admin is happy they confirm, which turns the interview transcript into a concrete workflow definition and archives the transcript for audit.

Lifecycle

  1. Draft — newly authored, not yet runnable.
  2. Active — runs on its trigger (POST /api/workflows/<id>/activate).
  3. Paused — trigger disabled; existing in-flight runs finish (POST /api/workflows/<id>/pause).
  4. Archived — read-only, preserved for audit (POST /api/workflows/<id>/archive).

Versioning

Every change to a live workflow creates a new workflow version. Existing in-flight runs keep executing against the version they started under; new runs pick up the latest active version. The change log (GET /api/workflows/<id>/change-log) shows every edit with the actor, a diff, and a reason.

KRI events

Workflow steps can emit structured events back into the risk model. Example: a “patch critical CVE” workflow emits a patch_applied event that decrements the critical_cves_unpatched KRI when the patch is confirmed. Event types and their effects on KRIs are declared via workflow_kri_definitions (see PUT /api/workflow-kri-definitions/<id>).

Relay config

Many workflow steps fan out to external systems (Slack, Jira, email). The relay config (GET /api/relay-config) holds the per-tenant connection settings for those destinations. Credentials live in the same encrypted form as kri_source credentials.

Public preview

Tenants can share a read-only view of a workflow with an unauthenticated stakeholder via a single-use token (GET /api/public/workflow/<token>). Useful for external auditors who need to verify a control without a full login.