Dynamics 365 to Databricks
Govern Dataverse, Finance and Operations, Sales, and Customer Service ingestion and modernization.
Dynamics 365 to Databricks
A Dynamics estate includes entity metadata, relationships, lookups, choices, change tracking, deletions, Power Platform dependencies, and business measures. Airlift scopes and certifies that connected estate while an admitted Dynamics 365 connector performs the actual extraction.
Generate the route
fa source inspect d365 --json
fa source plan dynamics_365 --variant dynamics_365_dataverse
fa source plan dynamics_365 \
--variant dynamics_365_finance_operations \
--json > .airlift/d365-finance-plan.json
fa application-pack plan --file dataverse-manifest.json --json > dataverse-plan.jsonVariants are dynamics_365_dataverse, dynamics_365_finance_operations, and
dynamics_365_sales_service.
What Airlift adds
- Accepts an immutable entity, field, relationship, and consumer inventory.
- Records target mappings and keeps plugins, virtual tables, polymorphic lookups, automations, and computed entities in explicit residue lanes.
- Tracks snapshot, incremental cursor, deletion behavior, restart, and freshness from the connector run.
- Requires independent key, relationship, choice, history, and business-measure validation rather than accepting connector completion as proof.
- Mints signed certificates from admitted evidence and freezes the exact wave before consumer cutover.
- Opens Lakeflow Connect, Unity Catalog, Delta, Databricks SQL, and AI/BI improvements as a separate modernization release.
import { createSourceMigrationPlan } from '@fabricorg/airlift';
const plan = createSourceMigrationPlan('d365', {
variant: 'dynamics_365_finance_operations',
});
for (const step of plan.steps) {
console.log(step.id, step.airliftActions, step.exitCriteria);
}Supply OAuth or service-principal credentials through a Databricks connection or secret
scope. Airlift stores the opaque connectionRef, never the token. The Dataverse
business-semantic compiler is executable; Finance and Operations and Sales/Customer
Service remain cataloged profiles until their source-specific compilers ship. Use live
evidence before claiming a higher support level.
See enterprise application-pack commands for the credential-free manifest, semantic validation, and registration contracts.
Complete developer command sequence
Generate this exact recipe from the installed CLI so the guide and executable surface stay in sync:
fa source recipe dynamics_365
fa source recipe dynamics_365 --variant dynamics_365_dataverse --json > .airlift/dynamics_365-recipe.jsonThe App is engagement-aware. Microsoft Dynamics 365 appears under Active sources only after the source estate is added to an active engagement. The menu is derived from governed engagement scope; installing Airlift does not expose unrelated source pages.
Every remote mutation below requires --host, --org, authenticated workspace
identity, and a stable --idempotency-key. JSON request files contain identifiers,
artifact references, and opaque credential references—never passwords, tokens, or
connection strings. Run fa <resource> <operation> --help for the current schema and
exit semantics.
0. Inspect the source contract
fa source inspect dynamics_365 --json > .airlift/dynamics_365-profile.json
fa source plan dynamics_365 --variant dynamics_365_dataverse --json > .airlift/dynamics_365-capability-plan.jsonExpected artifacts:
- .airlift/dynamics_365-profile.json
- .airlift/dynamics_365-capability-plan.json
Open Engagements → active engagement in the App. This stage is visible at
/engagements after replacing the placeholder ID with the governed engagement ID.
1. Create governed scope and connection references
fa engagement create --file engagement.json --idempotency-key migration-create-v1
fa estate register --file dynamics_365-estate.json --idempotency-key dynamics_365-estate-v1
fa connection register --file dynamics_365-connection.json --idempotency-key dynamics_365-connection-v1
fa engagement update --file dynamics_365-scope.json --idempotency-key dynamics_365-scope-v1
fa engagement preflight <engagement-id>Expected artifacts:
- Governed engagement
- Source estate
- Opaque connection binding
Open Engagements → active engagement in the App. This stage is visible at
/engagements/<engagement-id> after replacing the placeholder ID with the governed engagement ID.
2. Assess and accept inventory
fa assessment start --file dynamics_365-assessment-start.json --idempotency-key dynamics_365-assessment-start-v1
fa assessment status <assessment-id> --json
fa assessment record --file dynamics_365-assessment-record.json --idempotency-key dynamics_365-assessment-record-v1
fa assessment accept --file dynamics_365-assessment-accept.json --idempotency-key dynamics_365-assessment-accept-v1
fa inventory list --estate-id <estate-id> --jsonExpected artifacts:
- Assessment report reference
- Normalized inventory
- Dependency graph
Open Engagements → active engagement in the App. This stage is visible at
/engagements/<engagement-id>/sources/dynamics_365 after replacing the placeholder ID with the governed engagement ID.
3. Compile the enterprise application pack
fa application-pack inspect --file dynamics_365-manifest.json
fa application-pack plan --file dynamics_365-manifest.json --json > generated/dynamics_365-plan.jsonExpected artifacts:
- Business-semantic target plan
- Control totals
- Security mappings
- Consumer transitions
Open Engagements → active engagement in the App. This stage is visible at
/engagements/<engagement-id>/artifacts after replacing the placeholder ID with the governed engagement ID.
4. Convert, move, and remediate
fa plan generate --file dynamics_365-migration-plan.json --idempotency-key dynamics_365-plan-v1
fa conversion batch create --file dynamics_365-batch.json --idempotency-key dynamics_365-batch-v1
fa conversion batch start --file conversion-batch-start.json --idempotency-key conversion-start-v1
fa residue list --engagement-id <engagement-id>
fa transfer plan --file dynamics_365-transfer.json --idempotency-key dynamics_365-transfer-v1
fa transfer run <transfer-id> --idempotency-key transfer-run-v1
fa transfer reconcile <transfer-id> --idempotency-key transfer-reconcile-v1Expected artifacts:
- Target artifacts
- Residue cases
- Transfer checkpoints
- Reconciliation evidence
Open Engagements → active engagement in the App. This stage is visible at
/engagements/<engagement-id>/runs after replacing the placeholder ID with the governed engagement ID.
5. Validate independently and inspect discrepancies
fa validation run --file dynamics_365-validation.json --idempotency-key dynamics_365-validation-v1
fa validation status <validation-execution-id> --json
fa discrepancy list --engagement-id <engagement-id>
fa artifact list --engagement-id <engagement-id>Expected artifacts:
- Provider run references
- Readiness evidence
- Discrepancies
Open Engagements → active engagement in the App. This stage is visible at
/engagements/<engagement-id>/runs after replacing the placeholder ID with the governed engagement ID.
6. Certify, cut over, and export evidence
fa certificate list --object-id <object-id>
fa cutover status <wave-id> --json
fa evidence list --engagement-id <engagement-id>
fa evidence export --file dynamics_365-evidence-export.json --idempotency-key dynamics_365-evidence-export-v1Expected artifacts:
- Migration certificates
- Cutover evidence
- Content-digested evidence export
Open Engagements → active engagement in the App. This stage is visible at
/assurance after replacing the placeholder ID with the governed engagement ID.
Runway executes releases; Experiments owns validation verdicts; Airlift owns migration readiness and cutover policy.
What developers see in the App
The contextual source workspace shows the accepted estate and the factory stages for this engagement. Artifacts displays immutable references, content digests, media types, and provider lineage. Runs displays assessment, conversion, transfer, validation, and deployment executions without treating a provider's success as an Airlift verdict.
Microsoft Dynamics 365 has its own engagement-scoped workspace; unrelated source systems are not shown.
This public synthetic capture demonstrates Airlift setup and navigation for Microsoft Dynamics 365; it is not evidence of a live connection or certified migration.
Register the client estate, bind a credential reference, run the Microsoft Dynamics 365 assessment recipe, and admit the resulting evidence.
These are automated captures from public synthetic engagements. The source workspace is specific to Microsoft Dynamics 365; no unrelated source is presented as its migration journey. For sources without an evidence-backed journey, the image demonstrates setup, navigation, and developer entry points only—not a live connection, converted output, or certified migration. No client data, credentials, workspace hostnames, or internal deployment identifiers are embedded in the images.