Integrate with Data.world
Status: shipped (outbound-only) — issue #403. DQ Cloud pushes validation results to a Data.world dataset's activity stream. The connector does not read assets back from Data.world.
DQ Cloud ships a first-party connector for
Data.world that posts a quality insight to a
dataset's activity stream after every ValidationResult:
- a titled insight (
DQ Cloud quality check: <asset>) whose body carries the pass/fail status, pass/total counts, pass-rate percentage, the suite name, and the run timestamp, and - (optional) a dataset-level annotation — a
dq-passed/dq-failedtag plus a one-line summary — so consumers can filter the catalog for quality-failing datasets.
The connector talks to the Data.world REST API directly over HTTP — no Data.world SDK dependency in the worker image.
Prerequisites
- A Data.world account and the API root (
https://api.data.world). - A read/write API token (Data.world → Settings → Advanced).
- The owner (your org or user
agentid) and the dataset slug the quality events should land on.
Configure the integration
Create the catalog_integrations row through the org-admin 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": "data.world",
"endpoint": "https://api.data.world",
"auth_token": "<data-world-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 DQ Cloud asset to a Data.world dataset
For each asset you want pushed, set the target dataset on the asset's catalog config:
config["catalog"]["dataworld_owner"]— the dataset owner (agentid), e.g.acme.config["catalog"]["dataworld_dataset"]— the dataset slug, e.g.sales.
An asset missing either is skipped (a emit_to_catalog_dataworld_no_dataset
log line lands). The asset's name rides into the insight body as the
table reference, so many DQ Cloud assets can feed one Data.world
dataset's feed.
What it looks like in Data.world
After every ValidationResult commit, the emit_to_catalog ARQ job
posts to POST /v0/insights/{owner}/{dataset}. The insight shows up on
the dataset's activity stream with the structured quality body. The
optional dataset annotation (PATCH /v0/datasets/{owner}/{dataset})
adds the dq-<status> tag.
Verify
- In Settings → Catalog integrations, the Data.world row shows Enabled.
- On the Data.world dataset, the activity feed shows a new
DQ Cloud quality checkinsight after the next checkpoint run.