Skip to content

mcp-datahub-v0.7.3

Choose a tag to compare

@github-actions github-actions released this 20 Feb 00:23
· 70 commits to main since this release
Immutable release. Only release title and notes can be modified.
634fd69

What's New

Fix: AddGlossaryTerm and AddLink 422 Errors (P1)

AddGlossaryTerm() and AddLink() both returned HTTP 422 from DataHub's ingestProposal REST API. Root causes identified by reading the upstream DataHub PDL schemas for DataHub 1.3.0+.

Missing required auditStamp on GlossaryTerms

GlossaryTerms.pdl defines auditStamp: AuditStamp as a required field. Our glossaryTermsAspect struct omitted it entirely, causing DataHub to reject every glossary term write with 422.

Fix: Added AuditStamp field to glossaryTermsAspect. Both AddGlossaryTerm() and RemoveGlossaryTerm() now populate it with the current epoch milliseconds before writing.

Wrong JSON field name on InstitutionalMemory

InstitutionalMemoryMetadata.pdl defines the audit stamp field as createStamp. Our linkElement struct used json:"created", so the field was silently dropped during JSON serialization and DataHub rejected the payload.

Fix: Renamed to CreateStamp with json:"createStamp" tag.

Hardcoded time: 0 in audit stamps

AuditStamp.pdl requires time: Time (epoch milliseconds). The previous code hardcoded 0 with a comment "DataHub will fill this in" — it doesn't.

Fix: New newAuditStamp() helper uses time.Now().UnixMilli(). All write paths now use real timestamps.

Affected methods:

  • AddGlossaryTerm() — now works
  • RemoveGlossaryTerm() — now works
  • AddLink() — now works
  • RemoveLink() — now works (read path fixed for existing links with createStamp)
// These now succeed against DataHub 1.3.0+
err := client.AddGlossaryTerm(ctx,
    "urn:li:dataset:(urn:li:dataPlatform:trino,catalog.schema.table,PROD)",
    "urn:li:glossaryTerm:CustomerPII",
)

err = client.AddLink(ctx,
    "urn:li:dataset:(urn:li:dataPlatform:trino,catalog.schema.table,PROD)",
    "https://wiki.example.com/data-dictionary",
    "Data dictionary for customer tables",
)

Changelog

Bug Fixes

  • e61d7d5 fix: align glossaryTerms and institutionalMemory aspects with DataHub PDL schemas (#60)

Upgrading

This is a backwards-compatible patch release. No configuration changes required.

Go module:

go get github.com/txn2/mcp-datahub@v0.7.3

Breaking change for direct struct users: If you construct linkElement or glossaryTermsAspect structs directly (outside of the provided Add*/Remove* methods), note:

  • linkElement.Created is now linkElement.CreateStamp (JSON tag changed from "created" to "createStamp")
  • glossaryTermsAspect now has a required AuditStamp field

If you only use the public Client methods (AddGlossaryTerm, AddLink, etc.), no code changes are needed.

Installation

Claude Desktop (macOS/Windows)

Download the .mcpb bundle for your platform and double-click to install:

  • macOS Apple Silicon (M1/M2/M3/M4): mcp-datahub_0.7.3_darwin_arm64.mcpb
  • macOS Intel: mcp-datahub_0.7.3_darwin_amd64.mcpb
  • Windows: mcp-datahub_0.7.3_windows_amd64.mcpb

Homebrew (macOS)

brew install txn2/tap/mcp-datahub

Claude Code CLI

claude mcp add datahub \
  -e DATAHUB_URL=https://your-datahub.example.com/api/graphql \
  -e DATAHUB_TOKEN=your-token \
  -- mcp-datahub

Docker

docker pull ghcr.io/txn2/mcp-datahub:v0.7.3

Verification

All release artifacts are signed with Cosign. Verify with:

cosign verify-blob --bundle mcp-datahub_0.7.3_linux_amd64.tar.gz.sigstore.json \
  mcp-datahub_0.7.3_linux_amd64.tar.gz