Skip to content

mcp-data-platform-v0.37.0

Choose a tag to compare

@github-actions github-actions released this 08 Mar 23:16
· 289 commits to main since this release
ba9f4cd

What's Changed

Three improvements spanning OIDC auth, portal UX, and admin capabilities (#203).

Bug Fix

OIDC logout redirect

Keycloak (and many OIDC providers) rejects relative post_logout_redirect_uri values, causing a "Invalid redirect uri" error when users clicked Sign Out. The logout handler now sends an absolute URL constructed from PublicBaseURL, matching how the login callback already works.

A new PostLogoutRedirect field on FlowConfig separates the OIDC post-logout URI from the general PostLoginRedirect. When PostLogoutRedirect is empty, it falls back to PostLoginRedirect for backward compatibility.

Files: pkg/browsersession/oidcflow.go, pkg/platform/platform.go

New Features

Asset sharing indicators on My Assets

My Assets cards now display sharing status at a glance:

  • Users icon — asset is shared with one or more specific users
  • Globe icon — asset has an active public link

Sharing status is fetched via a new batch ListActiveShareSummaries query that uses BOOL_OR aggregation grouped by asset_id, avoiding N+1 lookups regardless of how many assets are on the page.

Files: pkg/portal/types.go, pkg/portal/store.go, pkg/portal/handler.go, ui/src/pages/assets/MyAssetsPage.tsx, ui/src/api/portal/types.ts

Admin assets management

Admins can now browse, inspect, edit, and delete any platform asset regardless of owner. This provides full visibility into all user-created assets from the admin interface.

API endpoints (5 new routes):

Method Path Description
GET /api/v1/admin/assets List all assets with filters (owner, content type, tag) and pagination
GET /api/v1/admin/assets/{id} Get asset metadata
GET /api/v1/admin/assets/{id}/content Retrieve asset content from S3
PUT /api/v1/admin/assets/{id} Update asset name, description, or tags
DELETE /api/v1/admin/assets/{id} Soft-delete an asset

All endpoints are protected by the admin auth middleware. The list endpoint includes share summaries for each asset, so admins can see sharing status in the table view.

UI pages (2 new):

  • Admin Assets page — table view with content type icons, owner column, sharing indicators (Users/Globe), and size/date columns. Accessible from the new "Assets" sidebar item under Admin.
  • Admin Asset Viewer — full asset viewer with content rendering, metadata sidebar (edit/delete), owner badge, and provenance panel.

Files: pkg/admin/assets.go, pkg/admin/handler.go, cmd/mcp-data-platform/main.go, ui/src/pages/assets/AdminAssetsPage.tsx, ui/src/pages/viewer/AdminAssetViewerPage.tsx, ui/src/api/admin/hooks.ts, ui/src/api/admin/types.ts, ui/src/components/layout/Sidebar.tsx, ui/src/components/layout/AppShell.tsx

Test Coverage

  • 3 new OIDC logout tests — PostLogoutRedirect used in redirect URL, default fallback to PostLoginRedirect, no-end-session fallback
  • 17 new admin asset tests — route registration, list/get/content/update/delete success and error paths, validation, nil share store
  • 5 new store tests — ListActiveShareSummaries postgres implementation (success, empty input, query error, scan error, row iteration error)
  • 1 new portal handler test — listAssets includes share_summaries in response

Stats

  • 20 files changed, 1,613 additions, 20 deletions

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.37.0

Verification

All release artifacts are signed with Cosign. Verify with:

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