Skip to main content

ODGS Databricks Bridge

License ODGS PyPI Python

Transform your Databricks Unity Catalog into active ODGS runtime enforcement schemas.

Unity Catalog describes your data. ODGS enforces it.

The ODGS Databricks Bridge is an institutional connector that translates Databricks Unity Catalog table and column metadata into cryptographically addressable ODGS enforcement schemas. It converts passive catalog definitions — column constraints, non-nullable fields, type assertions — into mechanically executable governance rules enforced at pipeline runtime.

Architecturally aligned with federated data sovereignty principles, and on a path toward standardization.

See it in action

Watch the Databricks bridge sync a real schema and enforce a signed rule pack

Real bridge, real engine, real ES256-signed rule pack, real Ed25519 audit seal — click to watch on GitHub. Only the Unity Catalog REST API is mocked; see examples/marketplace-demo/ for the full honest-accounting demo rig.


Architecture

flowchart LR
    subgraph UC["Databricks Unity Catalog"]
        CAT["Catalogs & Schemas"]
        TBL["Tables & Columns"]
        CON["Constraints\n(NOT NULL, Types)"]
    end

    subgraph Bridge["odgs-databricks-bridge"]
        T["DatabricksBridge\n.sync()"]
        TR["Transformer\n→ ODGS Schema"]
    end

    subgraph ODGS["ODGS Protocol (odgs>=6.1.0)"]
        I["Universal Interceptor\nHARD_STOP / SOFT_STOP / WARNING / LOG_ONLY"]
        WB["Write-Back\n→ Unity Catalog Comments"]
    end

    subgraph MP["Metric Provenance (Commercial)"]
        SC["S-Cert Registry\n(JWS Audit Seal)"]
    end

    CAT & TBL & CON --> T --> TR --> I
    I -->|"sovereign_audit.log"| WB --> UC
    I -->|"Certified S-Cert"| SC

What Gets Generated

Unity Catalog Input ODGS Output Type Rule Example (literal generated logic_expression)
Table metadata metrics Metric definitions with full column schemas
Non-nullable columns rules, severity = your --severity flag amount != None
Column data type rules, severity always INFO type(amount) == 'numeric'

Note on TYPE_CHECK rules: severity is always INFO regardless of --severity — the generated logic_expression uses type(), which the ODGS engine's sandboxed evaluator doesn't allow, so these rules can't actually block a pipeline today. Binding them for real enforcement needs a custom evaluator extension.


Install

pip install odgs-databricks-bridge

Quick Start

Python API

from odgs_databricks import DatabricksBridge

bridge = DatabricksBridge(
    workspace_url="https://adb-1234567890.azuredatabricks.net",
    token="dapi...",
    organization="acme_corp",
)

# Sync all tables from a catalog → ODGS metric definitions
bridge.sync(
    catalog="production",
    output_dir="./schemas/custom/",
    output_type="metrics",
)

# Sync column constraints → ODGS enforcement rules
bridge.sync(
    catalog="production",
    schema_filter="finance",
    output_dir="./schemas/custom/",
    output_type="rules",
    severity="HARD_STOP",
)

CLI

# Using standard Databricks SDK environment variables
export DATABRICKS_HOST=https://adb-1234567890.azuredatabricks.net
export DATABRICKS_TOKEN=dapi...

odgs-databricks sync \
    --org acme_corp \
    --catalog production \
    --schema finance \
    --type rules \
    --severity HARD_STOP \
    --output ./schemas/custom/

# Push compliance results back to Unity Catalog table comments
odgs-databricks write-back \
    --log-path ./sovereign_audit.log \
    --url https://adb-1234567890.azuredatabricks.net \
    --token dapi...

Output Schema

{
  "$schema": "https://metricprovenance.com/schemas/odgs/v5",
  "metadata": {
    "source": "databricks",
    "organization": "acme_corp",
    "tables_processed": 12,
    "items_generated": 47
  },
  "items": [
    {
      "rule_urn": "urn:odgs:custom:acme_corp:rule:revenue_amount_not_null",
      "name": "revenue.amount NOT NULL",
      "severity": "HARD_STOP",
      "constraint_type": "NOT_NULL",
      "target_table": "production.finance.revenue",
      "plain_english_description": "The revenue amount field must never be null in financial transaction records",
      "content_hash": "a1b2c3..."
    }
  ]
}

Bi-Directional Write-Backs

The bridge supports Bi-Directional Sync: it parses your sovereign_audit.log offline and pushes compliance results back into Unity Catalog table comments — creating a deterministic feedback loop for Data Stewards without compromising the air-gapped nature of the core ODGS protocol.


Authentication

Method CLI Flag Environment Variable
Personal Access Token --token DATABRICKS_TOKEN
Workspace URL --url DATABRICKS_HOST

Regulatory Alignment

This bridge is designed for organisations governed by:

Regulation Relevance
DORA (Regulation EU 2022/2554) ICT resilience — data lineage and operational incident traceability across Databricks workloads
EU AI Act (2024/1689) Articles 10 & 12 Training data governance and audit trail requirements for High-Risk AI Systems built on Databricks
Basel Committee BCBS 239 Risk data aggregation — accuracy and integrity of data sourced from Unity Catalog

For cryptographic attestation (Ed25519 JWS audit seals and signed .odgs-bundle Regulation Packs for EU AI Act, DORA, and CSRD), see the Metric Provenance Enterprise Platform.

Get started: metricprovenance.com/executive-brief (Executive Brief) · Certified packs: metricprovenance.com/#suite


Requirements

  • Python ≥ 3.9
  • odgs ≥ 6.1.0 (core protocol)
  • Databricks workspace with Unity Catalog enabled


License

Apache 2.0 — Metric Provenance | The Hague, NL 🇳🇱

Metadata

Release files for odgs-databricks-bridge 0.4.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for odgs-databricks-bridge 0.4.4
File Size Uploaded Provenance Actions
odgs_databricks_bridge-0.4.4.tar.gz 30.1 kB Without provenance Details for odgs_databricks_bridge-0.4.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for odgs-databricks-bridge 0.4.4
File Interpreter ABI Platform Actions
odgs_databricks_bridge-0.4.4-py3-none-any.whl Python 3 none any Details for odgs_databricks_bridge-0.4.4-py3-none-any.whl

Total release size: 49.2 kB

Release files / odgs_databricks_bridge-0.4.4.tar.gz

Download URL odgs_databricks_bridge-0.4.4.tar.gz
Size 30.1 kB
Tags Source
SHA-256 checksum
How to use checksums
23e78be378106bab3c382d5c41e103038f19e8b539b38b44f040b214832b6bbf
BLAKE2b-256 checksum
How to use checksums
57310afe93b6283caae124b1dbeda90c56206d8e3dba1511042f9c213b9558a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / odgs_databricks_bridge-0.4.4-py3-none-any.whl

Download URL odgs_databricks_bridge-0.4.4-py3-none-any.whl
Size 19.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e53ed440bd54190afba1b248567fa0219fd8954008d222cc3d5d03b0b311b532
BLAKE2b-256 checksum
How to use checksums
3015f759324b250da6aec77cbe311dc5d648efe2412eac5dd52f8f912d439a47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for odgs-databricks-bridge 0.4.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page