Skip to content

mcp-data-platform-v1.85.0

Choose a tag to compare

@github-actions github-actions released this 13 Jun 08:47
b7e8667

Adds a known-users directory that makes sharing assets and prompts with teammates easier, and closes a gap so users with an editor share can edit asset metadata, not just content.

Highlights

  • Known-users directory for sharing (#614). A record of people (first name, last name, email) so the share picker can suggest teammates by name, while still accepting any free-typed email. Anyone who signs in is recorded automatically; admins can pre-add people by email before they have ever logged in.
  • Shared editors can edit asset metadata (#611). A user holding an active editor share can now edit an asset's metadata, matching the content-edit path that already worked.

Known-users directory (#614)

A directory of known people keyed by email. It is not an authorization layer and grants no access. Its only job is to give the share picker names to resolve and suggest, so collaborating with teammates no longer means remembering and retyping exact email addresses.

A directory entry comes to exist two ways:

  • Auto-recorded on authentication. Every OIDC/OAuth sign-in records the person from their token claims. This is wired at the single authentication chokepoint plus the browser-session login path, so it covers both MCP/token clients and portal/admin web logins. API-key and anonymous sessions are excluded, since they are not people to share with.
  • Admin pre-add. An admin can add someone by email (with optional first and last name) before they have ever logged in, so they are immediately selectable for sharing. They appear with an Invited status until their first sign-in flips them to Active.

Behavior and safeguards:

  • Admin-entered names take precedence. A later sign-in only fills blank name fields, so a name an admin set is never overwritten by token claims.
  • Best-effort and non-blocking. Directory writes run in the background behind a short throttle, so authentication is never blocked or slowed, and a database hiccup never affects sign-in.
  • Two access levels. Admins manage the directory at GET/POST/PUT/DELETE /api/v1/admin/users (writes require database config mode). The picker reads a name-only list at GET /api/v1/portal/users, available to any authenticated user.
  • New admin Users page. Add, edit, delete, and search the directory, with Active vs Invited status badges.
  • Smarter share dialog. The recipient field is now a keyboard-navigable autocomplete that suggests known teammates as you type, while still accepting any email that is not in the directory.

Names taken from token claims (and the admin form) are length-bounded and stripped of control characters before storage, since the directory is shown to every authenticated user.

Shared editors can edit asset metadata (#611)

A user with an active editor share saw the "Shared (Editor)" badge but had no way to edit the asset's metadata, because metadata edits were owner-only at both the API and UI layers, even though content edits already worked for editors.

  • PUT /api/v1/portal/assets/{id} now authorizes the owner or an active editor share, matching the content-update path, and adds the missing soft-deleted (410) guard.
  • The asset viewer's edit button now shows for owners and shared editors alike.

Upgrade notes

  • Database migration 000067_users is applied automatically on startup. The directory and share-picker suggestions auto-enable when a database is configured; with no database the feature is disabled and the share dialog keeps working with free-typed email.
  • No new required configuration. No platform.yaml changes are needed.
  • New endpoints: /api/v1/admin/users (admin CRUD) and /api/v1/portal/users (authenticated read for the picker). The portal list returns email and name only.
  • New admin UI: a Users page under Settings.

Changelog

Features

  • feat(users): known-users directory keyed by email for share pickers (#614) (#615) (@cjimti)

Bug Fixes

  • fix(portal): let shared editors edit assets, not just owners (#611) (#612) (@cjimti)

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

Verification

All release artifacts are signed with Cosign. Verify with:

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