Skip to content

mcp-data-platform-v1.94.1

Choose a tag to compare

@github-actions github-actions released this 29 Jun 17:08
d067ec9

Overview

A data-integrity patch for the knowledge curation write path (apply_knowledge, sink=datahub). It closes four ways that curating a DataHub entity could silently lose or misreport metadata, and makes flag_quality_issue details verifiable on the entity.

Upgrade recommended for anyone using apply_knowledge writes. On v1.94.0, applying tags or glossary terms, and rolling changesets back, could silently drop metadata the entity already had.

Requires mcp-datahub v1.10.2+ (bundled). The resulting_state fix reads the globalTags/glossaryTerms aspects of GraphQL-only entity types through the entity query that landed in mcp-datahub v1.10.2.

Highlights

Stop silent tag loss on add_tag (#721)

apply_knowledge add_tag wrote each tag with its own read-modify-write of DataHub's globalTags aspect. Because those reads are eventually consistent, back-to-back tag writes read stale state and the last write overwrote the rest, so a multi-tag apply ended with only one tag, a later single add_tag wiped prior tags, and a rollback could leave zero tags. Tags are now merged into a single read-modify-write per changeset, so a multi-tag apply and its rollback are lossless. The flag_quality_issue QualityIssue tag is part of the same batch, so co-applying it with other tags no longer clobbers either.

Stop silent glossary-term loss on add_glossary_term (#729)

The identical read-modify-write clobber existed for the glossaryTerms aspect: applying several glossary terms in one changeset kept only the last. Glossary-term changes are now batched into one read-modify-write per changeset (apply and rollback), preserving the required auditStamp.

Complete resulting_state and close the rollback before-image data-loss (#723)

resulting_state came back empty for non-dataset entities (data products, glossary terms, and others), making a successful write look like a no-op. The same incomplete read fed the changeset before-image, so rolling back could remove a pre-existing tag or term, or blank a real description. apply_knowledge now assembles complete metadata per entity type: description and owners from dedicated getters for data products and glossary terms (and the entity query for datasets and dashboards), and tags and glossary terms from the authoritative aspects for every type that exposes them (including domain/glossaryTerm/glossaryNode via the new mcp-datahub v1.10.2 aspects read). For the few fields that still cannot be read for a given entity type, rollback now refuses with a clear "prior state not captured" message rather than writing an empty value over real data.

Make flag_quality_issue detail verifiable (#722)

flag_quality_issue accepted a detail description that went nowhere visible on the entity. It now also raises a "Data quality issue" DataHub incident carrying the detail (on entity types DataHub supports incidents for), so a reviewer can verify what was recorded. Re-applying the same detail reuses the existing open incident instead of creating duplicates, and rolling the changeset back removes the QualityIssue tag and resolves the incident it created. On entity types that do not support incidents, only the tag is set.

Changelog

Features

Bug Fixes

  • 1695619: fix(knowledge): batch glossary-term writes into one read-modify-write to stop clobber (#729) (#733) (@cjimti)
  • 4ec610b: fix(knowledge): batch tag writes into one read-modify-write to stop clobber (#721) (#730) (@cjimti)
  • b9f6053: fix(knowledge): complete resulting_state metadata and close the rollback before-image data-loss (#735) (@cjimti)

Others

Installation

Homebrew (macOS)

brew install txn2/tap/mcp-data-platform

Claude Code CLI

claude mcp add mcp-data-platform -- mcp-data-platform

Docker

docker pull ghcr.io/txn2/mcp-data-platform:v1.94.1

Verification

All release artifacts are signed with Cosign. Verify with:

cosign verify-blob --bundle mcp-data-platform_1.94.1_linux_amd64.tar.gz.sigstore.json \
  mcp-data-platform_1.94.1_linux_amd64.tar.gz