FabricFabricAirlift
Automation (CLI)

Source planning commands

Inspect source variants, distinguish implementation routing from achieved proof, compile archetype-aware plans, and check certification evidence.

Source planning commands

Source commands are read only. They inspect the installed registry, create deterministic project inputs, and check evidence manifests; they do not connect to a source or mutate an Airlift estate.

List source packs

fa sources
fa sources --json | jq '.[] | {id, archetype, evidenceSupportLevel, implementationRoutingLevel, variants}'

evidenceSupportLevel is derived from admitted capability cells. The unauthenticated local catalog has no tenant evidence, so it reports cataloged. implementationRoutingLevel describes the deterministic workflow shipped in the package; it is not workspace or client proof. See the capability registry.

Bulk plan export

fa sources export --plans --format jsonl
fa sources export --plans --json > .airlift/source-plans.json

Emits one canonical-JSON record per source × variant in the installed registry, in registry order. Each record wraps a compiled plan with sourceSystem, sourceVariant, label, archetype, implementationRoutingLevel, programTrack, externalGates, a docsUrl pointing at the source's documentation page, and a contentDigest computed over the plan alone — the digest is stable across CLI releases when the underlying plan is unchanged, so downstream indexers can re-index incrementally instead of re-scanning every record. The default text output is the same JSONL form; add --json for a single canonical JSON array instead.

Inspect one pack

fa source inspect dynamics_365
fa source inspect dynamics_365 --json > .airlift/dynamics-profile.json

The output includes variants, archetype, non-evidentiary implementation routing, Lakebridge capabilities where applicable, inventory inputs, movement options, validation inputs, target services, workload surfaces, residue, and the credential boundary.

Compile a plan

fa source plan dynamics_365 \
  --variant dynamics_365_finance_operations \
  --json > .airlift/dynamics-finance-plan.json

fa source plan kafka \
  --variant confluent_cloud \
  --json > .airlift/confluent-plan.json

The command emits the current archetype-specific plan schema. Each step includes specialistCommands, airliftActions, outputs, and exit criteria. Command templates beginning with # name an adapter boundary; they are not fake executables.

Generate the complete developer recipe

fa source recipe snowflake
fa source recipe snowflake --variant snowflake --json > .airlift/snowflake-recipe.json

The recipe is generated from the installed source registry and CLI contract. It covers source inspection, governed engagement scope, assessment acceptance, any admitted source-specific compiler, conversion and transfer, independent validation, certificates, cutover status, and evidence export. Every stage identifies its expected artifacts and engagement-relative App route.

The App does not display a permanent menu for every supported source. Active sources is derived from estates assigned to active engagements. Add another source through Engagements → Add source or the governed estate register plus engagement update commands; the source workspace then appears automatically.

Check a live certification manifest

fa source certification-check source-certification.json
fa source certification-check source-certification.json --json

The command exits 1 when required immutable runs are absent. assessable requires an inventory run; executable adds transfer and validation; certifiable adds scale; and cutover_certified adds a cutover-effector run. A successful check does not mutate the published registry.

TypeScript equivalent

import {
  createSourceMigrationPlan,
  evaluateSourcePackCertification,
  resolveSourceSystemProfile,
} from '@fabricorg/airlift';

const profile = resolveSourceSystemProfile('sap_s4hana');
const plan = createSourceMigrationPlan(profile.id, { variant: 'sap_s4hana' });
const result = evaluateSourcePackCertification(manifest);

On this page