FabricFabricAirlift
Source systems

Source-pack contract

Understand archetypes, variants, adapter boundaries, support levels, and plan schemas before integrating a source.

Source-pack contract

A source pack is a versioned developer contract. It tells your migration project what to inventory, which specialist adapter boundaries to implement, which governed Airlift actions record the work, and which evidence is required. It does not embed credentials, run a hidden connector, or claim that a catalog entry has been certified against your estate.

Inspect the installed contract

fa sources --json | jq '.[] | {id, archetype, evidenceSupportLevel, implementationRoutingLevel, variants}'
fa source inspect dynamics_365 --json
fa source constructs synapse --variant synapse_dedicated_sql --json
fa source plan dynamics_365 \
  --variant dynamics_365_finance_operations \
  --json > .airlift/dynamics-finance-plan.json

The planner emits one archetype-aware schema. There is no legacy schema selector or alternate command spelling.

source constructs reads the repository-owned normalization and routing catalog. It reports the canonical construct ID, artifact kind, disposition, target pattern, implementation status, constraints, and validation-profile references consumed by assessment and conversion. It is static implementation metadata—not a provider installation, execution, validation, or support claim. Use fa capability matrix for the authenticated evidence-derived registry. For ADF execution, only native_generator rows may enter the deterministic generated lane; descriptor_only and routing_only rows remain repair or human work even when the catalog can name a target shape.

Archetypes

ArchetypeTypical lifecycle
warehouseanalyze, inventory, convert, transfer, validate, cut over, modernize
operational_databasesnapshot and CDC, code disposition, data parity, consumer cutover
erpbusiness-object inventory, semantic mapping, governed ingestion, business validation
saasentity metadata, API/change cursor, relationship and deletion validation
etl_platformexport pipelines, map semantics, implement, rehearse, switch schedules
mainframeencoding-aware inventory, unload/log capture, batch reconciliation, window control
query_enginecatalog inventory, federate/register/materialize decision, SQL validation
streamingcontract inventory, checkpoint bootstrap, parallel run, loss/duplicate/lag proof

Support levels

Evidence-derived support levels are ordered claims. A profile's implementationRoutingLevel is not one of these claims; it only describes the implementation workflow packaged with Airlift.

  • cataloged means the typed pack, variant registry, plan compiler, and documentation ship; it makes no execution or evidence claim.
  • assessable requires current hermetic proof for assessment and dependency lineage plus an explicit disposition for every construct in the independent required denominator.
  • executable requires every mandatory lifecycle capability and every required construct at workspace_proven; no required construct may be unavailable.
  • certifiable requires the same complete lifecycle and construct set at client_proven.
  • cutover_certified additionally requires production_certified cutover and rollback proof.

See the independent required-construct denominator for the exact source-versioned counts. Missing contracts, cells, proof, or explicit dispositions always fail closed.

Never infer a higher level from an upstream connector or converter being available.

Adapter boundary

Read profile.adapter before implementing a route:

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

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

console.log(profile.adapter.inventoryInputs);
console.log(profile.adapter.movementOptions);
console.log(plan.steps.flatMap((step) => step.airliftActions));

Adapters return artifact, cursor, checkpoint, and run references. Store OAuth tokens, passwords, keys, and connection strings in the platform that owns them; Airlift accepts only opaque references.

Check live evidence

Scheduled certification jobs produce an immutable manifest. Check it locally or in CI:

fa source certification-check source-certification.json --json
AIRLIFT_LIVE_SOURCE_MANIFEST=source-certification.json pnpm test:e2e:live

The command exits non-zero when the requested level is missing required runs. It never changes the registry or mints a migration certificate.

On this page