Skip to content

mcp-data-platform-v0.33.2

Choose a tag to compare

@github-actions github-actions released this 06 Mar 08:07
· 301 commits to main since this release
c7e71a4

Bug Fixes

This release fixes three portal bugs discovered during production deployment, all related to the portal artifact system.

Nil S3Client panic (crash) — pkg/portal/handler.go, pkg/portal/public.go

When no s3_connection was configured, both getAssetContent and fetchPublicAsset called S3Client.GetObject() on a nil pointer, causing repeated panics (panic: nil pointer dereference). Both endpoints now return HTTP 503 with "content storage not configured" instead of crashing.

Additionally, the toolkit's write paths (handleSaveArtifact and uploadContentUpdate in pkg/toolkits/portal/toolkit.go) silently skipped S3 uploads when the client was nil, creating ghost assets in the metadata store that pointed to non-existent S3 content. These now fail early with a clear error instead of silently producing broken assets.

Admin section not visible — pkg/portal/handler.go, cmd/mcp-data-platform/main.go

The /api/v1/portal/me endpoint hardcoded slices.Contains(user.Roles, "admin") but OIDC roles arrive with a configured prefix (e.g., dp_admin). The check now uses AdminRoles populated from the admin persona's configured roles via the PersonaRegistry, so any role prefix scheme works correctly. When no admin persona is configured, the behavior is fail-closed (no admin access granted).

Wrong deep link URL from save_artifactpkg/toolkits/portal/toolkit.go

The buildSaveOutput function generated portal URLs with path /artifacts/{id} but the portal UI serves assets at /portal/assets/{id}. Fixed the path to match the actual route.

Changed Files

File Change
cmd/mcp-data-platform/main.go Populate AdminRoles from admin persona config via PersonaRegistry
pkg/portal/handler.go Add AdminRoles to Deps; nil-guard S3Client; use hasAnyRole for admin check
pkg/portal/handler_test.go Tests for nil S3Client, prefixed admin roles, hasAnyRole edge cases
pkg/portal/public.go Nil-guard S3Client in fetchPublicAsset, return 503
pkg/portal/public_test.go Test for nil S3Client in public view path
pkg/toolkits/portal/toolkit.go Fail early on nil S3Client in write paths; fix deep link URL
pkg/toolkits/portal/toolkit_test.go Tests for nil S3Client in save/update, buildSaveOutput URL

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:v0.33.2

Verification

All release artifacts are signed with Cosign. Verify with:

cosign verify-blob --bundle mcp-data-platform_0.33.2_linux_amd64.tar.gz.sigstore.json \
  mcp-data-platform_0.33.2_linux_amd64.tar.gz