Skip to content

Domain sync with Unity Catalog (import + export) #761

Description

@larsgeorge-db

Part of the "Large-account scale, async importers, and UC domain sync" epic. PRD: docs/prds/prd-large-account-scale-and-uc-sync.md.

Problem statement

UC has a first-class domains concept (flat — no parent), but Ontos neither imports UC domains nor exports Ontos domains to UC. Ontos domains support parent/child nesting (parent_id). The customer wants to seed Ontos domains from UC domains and publish Ontos domains back to UC.

Proposed Solution

  • Import: read the flat UC domain list; place them as direct children (one level only) under an operator-chosen root Ontos domain (existing or new); match by name on re-run to stay idempotent; provide a preview/dry-run mirroring the Schema Importer.
  • Export: publish Ontos domains to UC following a configurable level-to-UC mapping (e.g. levels 1–2 → UC domains, level 3 → subdomains via the tag convention where UC lacks native nesting). Extend the existing DomainExportAdapter (data_domain/data_domain_N tag convention) and uc_tag_sync.reconcile_tags rather than reinventing.
  • Execution: synchronous UI path for small sets; Databricks Job for large sets, reusing the async model from the async-importer issue.
  • Confirm the Databricks SDK UC-domain surface (list/create); fall back to the tag convention where native nesting is unavailable.

Additional Context

Reuses the async importer's execution model — build that first. Prior art: DomainExportAdapter, uc_tag_sync, data_domains model (parent_id). Tests: import places UC domains as one level under the chosen root and is idempotent; export honors the configured mapping; preview creates nothing.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions