Skip to main content

Integrate with Alation

Status: shipped (outbound-only) — issue #404. Measured Cloud pushes validation results to Alation as DataQuality health signals. The connector does not read objects back from Alation.

Measured Cloud ships a first-party connector for Alation that pushes every ValidationResult to the matching Alation table object as a DataQuality value:

  • a pass/fail status (GOOD / ALERT) Alation colours on the object's health panel, and
  • a pass-rate score (0–100) Alation charts over time (each emit appends one point to the score history Alation keeps server-side),
  • with a description naming the validation and the passed/total counts.

The connector talks to Alation's REST API directly over HTTP — no Alation SDK dependency in the worker image. It authenticates with Alation's Token header (not Authorization: Bearer).

Prerequisites​

  • An Alation instance and its base URL (e.g. https://alation.example.com), reachable from the worker process.
  • An API access token with permission to write DataQuality fields.
  • The numeric Alation data-source id each Measured Cloud datasource maps onto (Alation's "data source ID mapping").

Configure the integration​

Create the catalog_integrations row as a super admin or technical admin, through the settings API (or the Settings → Catalog integrations page):

curl -X POST "$BASE_URL/api/v1/organizations/$ORG_ID/catalog-integrations" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"kind": "alation",
"endpoint": "https://alation.example.com",
"auth_token": "<alation-api-token>"
}'

The auth token is AES-256-GCM-encrypted under the org's DEK before it hits Postgres; the API never returns it back.

Map a Measured Cloud asset to an Alation object​

For each asset you want pushed, set the Alation data-source id on the asset's catalog config:

  • config["catalog"]["alation_datasource_id"] — the numeric Alation data-source id, e.g. "7".

Measured Cloud builds the object key as <datasource_id>.<schema>.<table> from the asset's dotted name (a three-part db.schema.table drops the database, since the data-source scope already pins it). An asset missing alation_datasource_id is skipped (a emit_to_catalog_alation_no_datasource_id log line lands).

What it looks like in Alation​

After every ValidationResult commit, the emit_to_catalog ARQ job PATCHes PATCH /integration/v1/data_quality/ with one DataQuality value keyed to the table object. The object's health panel shows the GOOD / ALERT flag, and the pass-rate value joins the score history.

Verify​

  • In Settings → Catalog integrations, the Alation row shows Enabled.
  • On the Alation table object, the data-health panel shows the pass/fail flag and the pass-rate trend after the next validation run.