mcp-data-platform-v0.22.2
What's New
Fix: Complete Knowledge Pipeline — All Change Types Now Work
v0.22.1 fixed column-level update_description but left five other change types broken. This release completes the pipeline — every apply_knowledge change type now works end-to-end against DataHub.
Before (v0.22.1):
add_tagwithdetail: "pii"→ DataHub rejected it (not a valid URN)add_glossary_term→ 422 error from DataHub (missing requiredauditStamp)add_documentation→ 422 error (wrong JSON field name in upstream library)flag_quality_issue→ produced invalidquality_issue:free text with spacesstringadd_glossary_termwith short names → no URN normalization
After (v0.22.2): All six change types succeed:
| Change Type | What Changed |
|---|---|
update_description |
Already working (dataset + column) |
add_tag |
Auto-normalizes "pii" → urn:li:tag:pii; full URNs pass through |
add_glossary_term |
Auto-normalizes short names → urn:li:glossaryTerm:<name> |
add_documentation |
Params swapped: detail = description, target = URL (consistent with all other types) |
flag_quality_issue |
Creates valid urn:li:tag:quality_issue_<sanitized_slug> tags |
Upstream Fix: mcp-datahub v0.7.3
Upgrades to mcp-datahub v0.7.3 which fixes two root causes discovered by reading the actual DataHub PDL schemas:
AddGlossaryTerm422:GlossaryTerms.pdlrequires anauditStampfield withtime(epoch ms) andactor(entity URN) — was missing entirelyAddLink422:InstitutionalMemoryMetadata.pdldefines the audit stamp field ascreateStamp— the library usedcreated(wrong JSON tag)
Security: All gosec Findings Resolved
Resolved all 20 gosec findings that were causing make verify to fail:
| Rule | Hits | Fix |
|---|---|---|
| G117 (exported secret fields) | 14 | #nosec with RFC/spec justification — OAuth 2.1, Trino, S3, config struct fields that must exist by protocol |
| G704 (SSRF) | 3 | #nosec — URLs from admin-controlled OIDC issuer and upstream IdP config |
| G706 (log injection) | 1 | Added sanitizeLogValue() to strip \n\r\t from session IDs before logging |
| G115 (integer overflow) | 1 | Changed formatRowCount to iterate bytes directly, avoiding rune→byte cast |
Also added golangci-lint exclusions for G101 (hardcoded test credentials) and G705 (XSS in httptest handlers) in _test.go files.
Schema Improvements
Tool schemas for capture_insight and apply_knowledge now have clearer target/detail field descriptions documenting the semantics for each change type. Enum constraints for category, confidence, source, action_type, change_type, and action were already present from v0.22.1.
Breaking Changes
add_documentation parameter swap: If you were passing detail = URL and target = description (the old, counterintuitive mapping), you need to swap them. The new convention matches all other change types: detail is always the content, target is always where it goes.
Changelog
Bug Fixes
- fix: knowledge pipeline apply — URN normalization, gosec, mcp-datahub v0.7.3 (#119)
Installation
Homebrew (macOS)
brew install txn2/tap/mcp-data-platformClaude Code CLI
claude mcp add mcp-data-platform -- mcp-data-platformDocker
docker pull ghcr.io/txn2/mcp-data-platform:v0.22.2Verification
All release artifacts are signed with Cosign. Verify with:
cosign verify-blob --bundle mcp-data-platform_0.22.2_linux_amd64.tar.gz.sigstore.json \
mcp-data-platform_0.22.2_linux_amd64.tar.gz