Migration-pack commands
Compile, register, and certify executable SQL Server, Snowflake, Redshift, Oracle, Teradata, and Hadoop migration packs.
Migration-pack commands
fa migration-pack compiles an exported source inventory into an executable migration
bundle. It does more than generate a checklist: the compiler validates dependencies,
routes every object to an automation or remediation lane, defines restartable data
movement, selects validation suites, and produces immutable target requirements.
Use fa source to inspect the broader capability catalog or draft a generic engagement
plan. Use fa migration-pack when you have a real, versioned inventory for one of these
executable packs:
| Source | Supported variants | Data movement checkpoint |
|---|---|---|
| Microsoft SQL | SQL Server, Azure SQL Database, Managed Instance | LSN, change tracking, or application watermark |
| Snowflake | account and warehouse metadata | unload manifest plus stream, timestamp, or application watermark |
| Amazon Redshift | provisioned, Multi-AZ, serverless | S3 UNLOAD manifest plus sequence, timestamp, or application watermark |
| Oracle | Database, Exadata, Autonomous Database | consistent snapshot plus SCN or timestamp watermark |
| Teradata | Vantage and appliance estates | utility restart state plus source watermark |
| Hadoop | Cloudera, Hortonworks, Apache Hadoop | file manifest plus ingestion watermark |
Manifest contract
The input is credential-free JSON. Keep connection secrets in the execution system, not in the manifest.
{
"schemaVersion": 1,
"estate": {
"name": "Commerce Oracle estate",
"sourceSystem": "oracle",
"variant": "oracle_database",
"sourceVersion": "19c",
"sourceSnapshot": "2025-01-15T12:00:00.000Z"
},
"inventory": [
{
"sourceId": "package:order_api",
"name": "ORDER_API",
"kind": "package",
"sourcePath": "exports/packages/order_api.sql",
"owner": "order-platform",
"dependencies": ["table:orders"],
"hardCases": ["plsql_package", "exception_handling"]
}
]
}The schema rejects duplicate source IDs, missing dependency nodes, invalid source and variant combinations, unknown hard-case labels, and dependency cycles. It deliberately has no credential, token, or connection-string fields.
Inspect
fa migration-pack inspect --file source-manifest.json
fa migration-pack inspect --file source-manifest.json --jsonInspection prints scope, dependency order, routing totals, required hard-case coverage, missing cases, and the canonical bundle digest. Missing hard cases remain visible because a small inventory must not silently certify a larger source capability.
Plan
fa migration-pack plan \
--file source-manifest.json \
--json > migration-plan.jsonThe generated application/vnd.fabric.airlift.migration-pack+json bundle contains:
- the accepted inventory digest and stable dependency order;
- deterministic, bounded-agent, and human-remediation routes per object;
- source-specific snapshot, catch-up, restart, and reconciliation requirements;
- required Experiments validation suites and discrepancy return paths;
- Unity Catalog, Delta, Lakeflow, Databricks SQL, and runtime target mappings;
- a Runway-owned immutable deployment requirement; and
- a canonical SHA-256 digest.
The same manifest produces the same bundle and digest.
Register
fa migration-pack register \
--file migration-plan.json \
--engagement-id <engagement-id> \
--estate-id <estate-id> \
--artifact-id <immutable-artifact-reference> \
--idempotency-key <stable-key>Registration invokes the governed airlift.artifact_register action through the
authenticated API. The CLI records the immutable reference and digest. It neither
uploads source exports nor creates an alternate mutation path.
Certification check
Run the recurring, account-independent suite for all six packs:
pnpm certify:migration-packsEvaluate a generated evidence request independently:
fa migration-pack certification-check \
--file reports/f9-oracle-evidence.json \
--jsonThe evaluator requires a complete source hard-case corpus and one bound build and
dataset across all stages. It accepts only hermetic_proven and workspace_proven.
Client acceptance and production certification require external evidence and cannot be
requested through this command.
See migration-pack certification for the evidence contract.