Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-api-catalogs-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-assets-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-audit-health-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-audit-mcp-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-changelog-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-connections-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-dashboard-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-description-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-key-create-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-keys-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-persona-create-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-personas-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-prompts-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-resources-dark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/screenshots/dark/admin-admin-tools-tryit-dark.webp
Binary file modified docs/images/screenshots/dark/admin-admin-users-dark.webp
Binary file modified docs/images/screenshots/dark/admin-catalog-spec-modal-dark.webp
Binary file modified docs/images/screenshots/dark/user-activity-dark.webp
Binary file modified docs/images/screenshots/dark/user-asset-csv-dark.webp
Binary file modified docs/images/screenshots/dark/user-asset-feedback-dark.webp
Binary file modified docs/images/screenshots/dark/user-asset-html-dark.webp
Binary file modified docs/images/screenshots/dark/user-asset-jsx-dark.webp
Binary file modified docs/images/screenshots/dark/user-asset-markdown-dark.webp
Binary file modified docs/images/screenshots/dark/user-asset-share-dark.webp
Binary file modified docs/images/screenshots/dark/user-asset-svg-dark.webp
Binary file modified docs/images/screenshots/dark/user-assets-shared-dark.webp
Binary file modified docs/images/screenshots/dark/user-collection-asset-dark.webp
Binary file modified docs/images/screenshots/dark/user-collection-edit-dark.webp
Binary file modified docs/images/screenshots/dark/user-collection-view-dark.webp
Binary file modified docs/images/screenshots/dark/user-collections-dark.webp
Binary file modified docs/images/screenshots/dark/user-feedback-dark.webp
Binary file modified docs/images/screenshots/dark/user-knowledge-insights-dark.webp
Binary file modified docs/images/screenshots/dark/user-knowledge-knowledge-dark.webp
Binary file modified docs/images/screenshots/dark/user-knowledge-memory-dark.webp
Binary file modified docs/images/screenshots/dark/user-my-assets-dark.webp
Binary file modified docs/images/screenshots/dark/user-prompt-create-dark.webp
Binary file modified docs/images/screenshots/dark/user-prompt-view-dark.webp
Binary file modified docs/images/screenshots/dark/user-prompts-dark.webp
Binary file modified docs/images/screenshots/dark/user-resource-upload-dark.webp
Binary file modified docs/images/screenshots/dark/user-resources-dark.webp
Binary file modified docs/images/screenshots/dark/user-shared-asset-dark.webp
Binary file modified docs/images/screenshots/light/admin-admin-assets-light.webp
Binary file modified docs/images/screenshots/light/admin-admin-audit-health-light.webp
Binary file modified docs/images/screenshots/light/admin-admin-audit-mcp-light.webp
Binary file modified docs/images/screenshots/light/admin-admin-changelog-light.webp
Binary file modified docs/images/screenshots/light/admin-admin-dashboard-light.webp
Binary file modified docs/images/screenshots/light/admin-admin-description-light.webp
Binary file modified docs/images/screenshots/light/admin-admin-key-create-light.webp
Binary file modified docs/images/screenshots/light/admin-admin-keys-light.webp
Binary file modified docs/images/screenshots/light/admin-admin-personas-light.webp
Binary file modified docs/images/screenshots/light/admin-admin-prompts-light.webp
Binary file modified docs/images/screenshots/light/admin-admin-resources-light.webp
Binary file modified docs/images/screenshots/light/admin-admin-tools-tryit-light.webp
Binary file modified docs/images/screenshots/light/admin-admin-users-light.webp
Binary file modified docs/images/screenshots/light/admin-catalog-spec-modal-light.webp
Binary file modified docs/images/screenshots/light/user-activity-light.webp
Binary file modified docs/images/screenshots/light/user-asset-csv-light.webp
Binary file modified docs/images/screenshots/light/user-asset-feedback-light.webp
Binary file modified docs/images/screenshots/light/user-asset-html-light.webp
Binary file modified docs/images/screenshots/light/user-asset-jsx-light.webp
Binary file modified docs/images/screenshots/light/user-asset-markdown-light.webp
Binary file modified docs/images/screenshots/light/user-asset-share-light.webp
Binary file modified docs/images/screenshots/light/user-asset-svg-light.webp
Binary file modified docs/images/screenshots/light/user-assets-shared-light.webp
Binary file modified docs/images/screenshots/light/user-collection-asset-light.webp
Binary file modified docs/images/screenshots/light/user-collection-edit-light.webp
Binary file modified docs/images/screenshots/light/user-collection-view-light.webp
Binary file modified docs/images/screenshots/light/user-collections-light.webp
Binary file modified docs/images/screenshots/light/user-feedback-light.webp
Binary file modified docs/images/screenshots/light/user-knowledge-insights-light.webp
Binary file modified docs/images/screenshots/light/user-knowledge-memory-light.webp
Binary file modified docs/images/screenshots/light/user-my-assets-light.webp
Binary file modified docs/images/screenshots/light/user-prompt-create-light.webp
Binary file modified docs/images/screenshots/light/user-prompt-view-light.webp
Binary file modified docs/images/screenshots/light/user-prompts-light.webp
Binary file modified docs/images/screenshots/light/user-resource-upload-light.webp
Binary file modified docs/images/screenshots/light/user-resources-light.webp
Binary file modified docs/images/screenshots/light/user-shared-asset-light.webp
2 changes: 1 addition & 1 deletion docs/llms-full.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2173,7 +2173,7 @@ Structured feedback from reviewers (including non-agent subject-matter experts a
The single home for the Memory to Insight to Knowledge lifecycle (formerly the separate Knowledge Pages, Knowledge & Memory, and admin Knowledge & Memory routes, which now redirect here). A header teaches the model: everything learned is a Memory; a memory others would benefit from becomes an Insight (a proposal awaiting review); whoever holds the `apply_knowledge` capability promotes good insights into Knowledge (business/domain facts become knowledge pages, technical/entity facts go to the DataHub catalog). Three tabs, with review/promote affordances gated on the `apply_knowledge` tool (a capability, not an admin role). Knowledge (default): unified search across every accessible source grouped by source with a coverage summary (the same federation as the `search` tool, over `GET /api/v1/portal/search`); with an empty query, browse of canonical knowledge pages (create/edit/remove for `apply_knowledge` holders); and for `apply_knowledge` holders the changesets (the record of insights promoted into knowledge, with rollback) since a changeset is created only at apply time and belongs with the promoted knowledge, not the unpromoted insights. Insights: the review pipeline only (insights are the one memory type that crosses between users) - your captured insights with status and relevance search, plus for `apply_knowledge` holders the full review queue (approve/reject); a pending-review count is badged on the sidebar Knowledge item and the Insights tab. Memory: personal, scoped to your own records (the cross-user unit is the insight), classified by lifecycle class (`sink_class`: Preference, Event, Business knowledge, Operational rule, Schema/entity). The Knowledge tab also has Catalog and Context Docs sub-tabs (#719/#720), first-class routes at `/knowledge/catalog` and `/knowledge/context-docs`, that surface the DataHub catalog and context documents in the portal. Catalog: pick a connection, browse/search datasets, open one to see description, tags, owners, glossary terms, domain, and columns, and edit each facet inline when the persona grants `datahub_update` and the connection is writable (no dataset create/delete since datasets originate in source systems). Context Docs: browse/search and full create/edit/delete of markdown context documents through a markdown editor, gated on `datahub_create`/`datahub_update`/`datahub_delete`; a document attaches only to Dataset/GlossaryTerm/GlossaryNode/Container. Both are backed by the portal DataHub REST API at `/api/v1/portal/datahub/{connection}/...` (`GET .../connections` lists connections with a writable flag): reads require DataHub access on the persona; a write requires the matching MCP tool grant AND a write-enabled connection (`read_only: false`), both enforced server-side and recorded in the audit log. Tag and glossary-term edits use batched add/remove sets (the clobber-safe write path, #721/#729).

## Prompts
Personal, available, and shared prompt templates. Three tabs: Personal (create/edit/delete own prompts), Available (global/persona prompts), and Shared (prompts other users shared with you). Search ranks approved prompts by relevance to a phrase (semantic vector similarity when an embedding provider is configured, keyword fallback otherwise) across the caller's full visibility, best-first; browse mode keeps sortable columns. The same ranking backs the MCP tool `manage_prompt list query=...`. Approved prompts are embedded off the request path by the shared index-jobs framework (source_kind `prompts`); editing a prompt's title, description, body, or tags clears its vector so it re-embeds against the new text. Visibility (own personal, global, matching-persona; all approved for admins) is applied before ranking, so a prompt you cannot read is never returned. Sortable columns, expandable rows with full content and copy button. Scope badges: Personal, Global, Persona, System. Lifecycle status badge (draft, approved, deprecated, superseded) and comma-separated tags on create/edit. Request Promotion on a personal prompt asks an admin to promote it to a chosen persona or to global; the prompt stays personal with a "Promotion requested" badge until an admin approves or rejects it. Share sends a personal prompt directly to another user by email (owner-initiated, no approval): the recipient gets a real runnable prompt, not a markdown snapshot, and it appears on the Prompts page's Shared tab. Personal prompt names are unique per owner; when served over MCP, names carry a scope prefix computed at serve time: `personal-<name>`, `<persona>-<name>` (one per persona), `global-<name>`, or `shared-<name>` for prompts shared with the caller, keeping the surface collision-free by construction; every descriptor carries a `title` from display_name. Users never need machine names: agents resolve any handle (stored name, display name, `mcp:prompt:<id>`, or free text) to a ready-to-run prompt with the `manage_prompt` `use` command, which returns rendered content, argument specs, and provenance (including version, approver, and approval time), or ranked candidates when ambiguous. Every database prompt is versioned (#1009): each mutation of content, display name, description, arguments, or tags snapshots an immutable `prompt_versions` row with its author, and approval stamps bind to the specific version approved (approving v5 never alters v4's recorded approval). Editing the content or arguments of an approved global or persona prompt does not change what is served: the edit lands as a pending draft version (manage_prompt update returns status pending_approval; a gated content edit cannot be combined with scope/status changes in one call) and the approved snapshot keeps serving until an admin approves the draft via `POST /api/v1/admin/prompts/{id}/versions/{version}/approve` (reject with `.../reject`; full history with author and content via `GET /api/v1/admin/prompts/{id}/versions`, owner-readable per prompt via `GET /api/v1/portal/prompts/{id}/versions`). Metadata-only edits (tags, category, description, display name) apply directly; personal prompts version silently. Served prompts carry provenance: `prompts/get` stamps `prompt_version` / `prompt_approved_by` / `prompt_approved_at` / `prompt_reference` into `_meta`. Usage stats are aggregated from `prompt_serve` audit events (emitted on every database-prompt `prompts/get` and resolved `use`, within the audit retention window): `manage_prompt get` reports `run_count` and `last_run_at`, and `GET /api/v1/admin/prompts/usage` / `GET /api/v1/portal/prompts/usage` return the per-prompt rollup (portal scoped to the caller's visible prompts) for library curation and dead-prompt detection.
The organization's prompt library, presented as two buckets (#1010): My Prompts (the caller's personal prompts plus prompts shared with them, each attributed to its sharer) and Library (the approved shared prompts visible to the caller, grouped by collection). The scope taxonomy (global/persona/personal) appears only inside the promote and admin flows, never in the user-facing library. Collections are named groups organizing the library by team, domain, or workflow (`prompt_collections` table; a prompt belongs to at most one via `prompts.collection_id`, released to the default General group when its collection is deleted). Any user creates collections; renaming/deleting is creator-or-admin; assignment follows the prompt's own mutation rule (owner for personal, admin for shared) and is organizational metadata: it never versions or triggers review. REST: `GET/POST /api/v1/portal/prompt-collections`, `PUT/DELETE /api/v1/portal/prompt-collections/{id}`, `PUT /api/v1/portal/prompts/{id}/collection` (admin-prefixed equivalents exist). Facets narrow by collection, tag, status (My Prompts), owner (Library), and usage; rows show run count and last-run age with sorts by name, runs, and last run, and prompts never run or unrun for 60+ days carry an inactive badge for dead-prompt detection. Search ranks approved prompts by relevance to a phrase (semantic vector similarity when an embedding provider is configured, keyword fallback otherwise) across the caller's full visibility, best-first; browse mode keeps sortable columns. The same ranking backs the MCP tool `manage_prompt list query=...`. Approved prompts are embedded off the request path by the shared index-jobs framework (source_kind `prompts`); editing a prompt's title, description, body, or tags clears its vector so it re-embeds against the new text. Visibility (own personal, global, matching-persona; all approved for admins) is applied before ranking, so a prompt you cannot read is never returned. Sortable columns, expandable rows with full content and copy button. Scope badges: Personal, Global, Persona, System. Lifecycle status badge (draft, approved, deprecated, superseded) and comma-separated tags on create/edit. Request Promotion on a personal prompt asks an admin to promote it to a chosen persona or to global; the prompt stays personal with a "Promotion requested" badge until an admin approves or rejects it. Share sends a personal prompt directly to another user by email (owner-initiated, no approval): the recipient gets a real runnable prompt, not a markdown snapshot, and it appears in the Prompts page's My Prompts bucket with a shared-by attribution. Personal prompt names are unique per owner; when served over MCP, names carry a scope prefix computed at serve time: `personal-<name>`, `<persona>-<name>` (one per persona), `global-<name>`, or `shared-<name>` for prompts shared with the caller, keeping the surface collision-free by construction; every descriptor carries a `title` from display_name. Users never need machine names: agents resolve any handle (stored name, display name, `mcp:prompt:<id>`, or free text) to a ready-to-run prompt with the `manage_prompt` `use` command, which returns rendered content, argument specs, and provenance (including version, approver, and approval time), or ranked candidates when ambiguous. Every database prompt is versioned (#1009): each mutation of content, display name, description, arguments, or tags snapshots an immutable `prompt_versions` row with its author, and approval stamps bind to the specific version approved (approving v5 never alters v4's recorded approval). Editing the content or arguments of an approved global or persona prompt does not change what is served: the edit lands as a pending draft version (manage_prompt update returns status pending_approval; a gated content edit cannot be combined with scope/status changes in one call) and the approved snapshot keeps serving until an admin approves the draft via `POST /api/v1/admin/prompts/{id}/versions/{version}/approve` (reject with `.../reject`; full history with author and content via `GET /api/v1/admin/prompts/{id}/versions`; `GET /api/v1/portal/prompts/{id}/versions` serves history to any caller who can view the prompt (own personal prompts and enabled shared prompts), since history is the library's verification surface; non-admin viewers of a shared prompt get the served history only: applied snapshots in full, the pending draft as a content-redacted stub, and rejected/superseded drafts omitted). The portal prompt page renders this history with per-version approval provenance, flags a pending draft (readers keep being served the approved version), and diffs any version against the current content as a line diff; it also shows point-of-use invocation help (a copyable natural-language invocation built from the stable name and required arguments, resolved by agents via `manage_prompt use`). Metadata-only edits (tags, category, description, display name) apply directly; personal prompts version silently. Served prompts carry provenance: `prompts/get` stamps `prompt_version` / `prompt_approved_by` / `prompt_approved_at` / `prompt_reference` into `_meta`. Usage stats are aggregated from `prompt_serve` audit events (emitted on every database-prompt `prompts/get` and resolved `use`, within the audit retention window): `manage_prompt get` reports `run_count` and `last_run_at`, and `GET /api/v1/admin/prompts/usage` / `GET /api/v1/portal/prompts/usage` return the per-prompt rollup (portal scoped to the caller's visible prompts, including prompts shared person-to-person with them) for library curation and dead-prompt detection.

---

Expand Down
2 changes: 1 addition & 1 deletion docs/llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ mcp-data-platform is the orchestration layer for the txn2 MCP ecosystem. DataHub

## Administration

- [User Portal](https://mcp-data-platform.txn2.com/server/portal-user/): User-facing portal pages: activity analytics, saved assets and collections (each with Mine / Shared / All ownership scopes and per-share access modes: restricted to a recipient, any signed-in user, or public; refused share links land on a branded page offering sign-in with return, and email-share recipients without an account can request single-use, 15-minute view links that open a view-only guest session scoped to that share), resources, feedback threads, knowledge and memory views, and a searchable prompt library
- [User Portal](https://mcp-data-platform.txn2.com/server/portal-user/): User-facing portal pages: activity analytics, saved assets and collections (each with Mine / Shared / All ownership scopes and per-share access modes: restricted to a recipient, any signed-in user, or public; refused share links land on a branded page offering sign-in with return, and email-share recipients without an account can request single-use, 15-minute view links that open a view-only guest session scoped to that share), resources, feedback threads, knowledge and memory views, and a searchable prompt library presented as two buckets (My Prompts with shared-by attribution, and a Library grouped into collections) with usage-based facets and sorting, dead-prompt identification, per-version approval provenance with diffs, and point-of-use invocation help
- [Admin Portal](https://mcp-data-platform.txn2.com/server/admin-portal/): Web dashboard for operating the platform: activity dashboards, tool explorer, audit log, knowledge governance, indexing health, connections, personas, API keys, known users, and configuration entries
- [Admin API](https://mcp-data-platform.txn2.com/server/admin-api/): REST endpoints backing the admin portal: system info, config, personas, keys, users, audit, knowledge, connections, and index-jobs health. Interactive Swagger UI at /api/v1/admin/docs/
- [Email Notifications](https://mcp-data-platform.txn2.com/server/notifications/): Branded email notifications for shares and feedback: admin-configured SMTP with encrypted password and send-test action, per-user preferences (off, immediate, daily digest), a durable database-backed queue with a retrying send worker, a no-login unsubscribe footer link plus RFC 8058 one-click List-Unsubscribe headers for recipients without an account, Message-ID stamped with the From-address domain, optional terms/privacy footer links, and direct transactional delivery of one-time guest view links
Expand Down
Loading
Loading