Development assurance
Exercise a complete migration journey in development without turning self-reviewed evidence into production authority.
Exercise the factory in development
Development assurance lets an engineering team prove that Airlift can carry a migration through its governed actions before independent client reviewers, production effectors, and every sibling service are available. It is useful for product development and demos. It is not a weaker production certificate.
An object or wave marked Development evidence has passed the configured development journey, but Airlift still refuses production cutover. The assurance marker is stored in the signed certificate envelope and the frozen cutover record; hiding a banner or changing an App route cannot remove it.
What the journey exercises
| Stage | Development proof recorded by Airlift | What remains external |
|---|---|---|
| convert | immutable target artifact digest and governed conversion outcome | correctness beyond the admitted fixture |
| validate | provider run identity, evidence reference, evidence digest, snapshots, and verdict | independent client validation for production |
| certify | object-specific readiness profile and signed development certificate | production separation of duties |
| move data | source/target bindings, checkpoint, restart identity, row counts, rejects, lag, and reconciliation | client-scale throughput and change-feed behavior |
| prepare cutover | frozen scope digest, versioned runbook, and rehearsal evidence | certified effector, parallel run, approvals, and a real change window |
The expected endpoint is Rehearsed · Development evidence · Not production ready.
If the UI says Ready after a development certificate, treat that as a defect.
The engagement's Development assurance badge and Independent validation count use only passing governed validation runs recorded by an admitted validation principal. A subject-bound run must still resolve to the exact artifact registered to that engagement, with the same digest. Legacy runs recorded before subject binding count only when their artifact digest matches an artifact registered to the engagement. An artifact labeled as Experiments evidence does not raise the badge, and completing a validation execution records factory activity but does not by itself prove an independent verdict.
Run the repository certification journey
Authenticate the Databricks CLI as the developer who should appear in the governed action ledger, then run the repository command:
databricks current-user me
pnpm certify:synapse:developmentWhen you use a named Databricks CLI profile:
AIRLIFT_DATABRICKS_PROFILE=<profile> pnpm certify:synapse:developmentThe command derives the authenticated operator, obtains a short-lived Lakebase credential, and reads the configured authorization, evidence-registry, and signing values from the Databricks secret scope. Secret values stay inside the command process and are never printed. A configured operator override that differs from the authenticated user is rejected rather than silently creating misleading audit history.
Inspect the result with fa
Configure the normal authenticated remote CLI connection, then use governed identifiers from the engagement page:
fa engagement status <engagement-id>
fa engagement status <engagement-id> --json > migration-status.json
fa validation list --engagement-id <engagement-id>
fa validation status <validation-execution-id>
fa validation runs --object-id <object-id>
fa validation readiness --object-id <object-id>
fa certificate list --object-id <object-id>
fa transfer list --engagement-id <engagement-id>
fa transfer status <transfer-id>
fa cutover status <wave-id>These commands read the same governed projections as the App. They do not infer success from files on a developer laptop. Save JSON output as a CI artifact when you need a machine-readable audit snapshot.
Find the records in the App
- Open Engagements and select the active engagement.
- Use Migration status to inspect all eight delivery phases and their blockers.
- Open Artifacts for immutable plan, target-code, test, evidence, and transfer-specification references.
- Open Run ledger for assessment, conversion, transfer, validation, and deployment execution records.
- Open Assurance center to inspect readiness cells and signed certificate envelopes.
- Open Cutover control to inspect frozen scope, runbook, rehearsal, and remaining production blockers.
The UI intentionally shows references and SHA-256 digests rather than credential values, source records, or mutable file bodies. Follow a provider reference to the admitted artifact store when you need the underlying report.
Development configuration boundary
Repository operators can enable the development path only when every boundary is present:
AIRLIFT_DEPLOYMENT_ENV=dev
DATABRICKS_APP_NAME=<name-ending-in--dev>
AIRLIFT_ALLOW_DEVELOPMENT_SELF_REVIEW=1
AIRLIFT_DEVELOPMENT_OPERATOR_PRINCIPAL=<authenticated-developer-principal>
AIRLIFT_DEVELOPMENT_WORKER_PRINCIPAL=<trusted-system-principal>The admitted worker still records validation evidence and mints certificates. A browser form or natural-person CLI caller cannot mint development certificates directly. The Synapse certification runner operates only against the schema installed by deployment; it never performs schema creation, table alteration, or index maintenance with a developer identity. Authorization, policy, evidence verification, signing, and idempotency remain enforced.
Never configure these controls in staging or production. Remove development certificates and rerun independent validation before preparing a production wave.
Why production remains blocked
Development mode may relax reviewer separation only. It does not waive tenant isolation, evidence identity, signing, immutable digests, transfer reconciliation, idempotency, uncertain non-idempotent effects, or the production cutover gate. A development wave must still report the missing independent evidence, certified effector, operational window, and any unbound Runway release as explicit blockers.
See Assurance center, Cutover control room, and Roles and separation for the production path.