Skip to content

Assurance

Assurance in Phaset adds an execution layer on top of Records: not just what software is, but what must be continuously true about it.

Assurance

It does this through three objects:

  • Templates: reusable requirement bundles that contain one or more controls.
  • Obligations: per-record, per-control work items created from template controls.
  • Record Status: an aggregate risk signal (green, yellow, red, gray) based on open gaps for each Record.

Records describe your software landscape. Assurance adds operational accountability:

  • What must be done for each Record
  • Who owns each obligation
  • What is overdue or missing
  • What needs revalidation when software changes

This is useful when you want to move from “cataloging software” to “running controlled software operations.”

Templates are organization-level control bundles with:

  • Name, category, severity, and description
  • One or more controls (each with its own ID, name, severity, and optional description)
  • Active/inactive state
  • Optional auto-apply behavior on Record creation

Templates are not tied to a specific Record until applied.

When a template is applied to a Record, Phaset creates one obligation per control in that template, each with:

  • templateId + controlId
  • targetId (Record ID)
  • Status (met, partial, missing, not_applicable, superseded)
  • Source (manual or auto)
  • Optional due date, owner, and rationale
  • Target revision (snapshot of Record revision when obligation was created/updated)

Obligations are where execution lives.

  • 1 template -> N controls
  • 1 template applied to 1 Record -> N obligations (one per control)
  • Record status is computed from the obligation states attached to that Record

Record status is computed from obligations:

  • Gray: no obligations
  • Green: no open gaps
  • Yellow: open gaps exist
  • Red: open high/critical gaps or overdue open gaps

Lifecycle: Records, Manifests, and Assurance

Section titled “Lifecycle: Records, Manifests, and Assurance”

Assurance is modeled as imperative work attached to declarative Record state:

  1. A Record exists (managed manually or via phaset.manifest.json)
  2. Templates are applied to that Record, producing one obligation per control
  3. Obligations are worked and tracked over time
  4. If Record revision changes, Phaset reconciles obligations against the new revision
  5. Obligations that were met can be reopened to partial with a revalidation note

This means you can keep Record metadata in version control while still running operational assurance workflows in the app.

The Assurance view is split into focused tabs:

  • Overview: aggregate counts, open gaps, due/overdue, and status breakdown
  • Record Status: per-record rollup with search and status filtering
  • Templates: template management plus Active Record Context for apply actions
  • Obligations: full obligation list with search, record filter, and sorting

The Record page includes an Assurance tab and deep links back into Assurance filtered for that Record.