Context. surface studio · domain isis · route /studio/isis/provenance-tracking · auth signed-in + studio entitlement (NOT AAA-gated) · source apps/oshun/web/src/app/studio/isis/provenance-tracking/page.tsx
Last walked. 2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data (2xx), console/page-errors, expected content, screenshot verified; live screen-reader, touch, offline, and telemetry-delivery checks pending a manual AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; body re-derived 2026-06-03 from current source (lane-console architecture)
Purpose#
Admin §24.9 lane console that seals 3D output provenance bundles over the real
three-d-pipelines buildThreeDProvenance — binding the source 2D refs, the
registered pipeline-class hash, the model version, and the watermark token into
one SHA-256 bundle hash, and rejecting bundles whose watermark token diverged
through the post-process chain. All reads and seals flow through
/v1/admin/isis/3d-provenance; it is admin-scoped and fails closed.
Entry points#
- Sibling quick-action from
/studio/isis/output-manifest - Studio index (
/studio) - Direct URL / bookmark
Layout regions#
page.tsx mounts <ShellLayout active="studio"> (no breadcrumb panel) and three
panels: the workspace, the Route Map, and sibling quick-actions.
- Header: shell header
- Workspace panel (
data-isis-provenance-tracking-workspace):<h1>(WorkspaceHeading) "Isis Provenance Tracking Workspace"- Summary paragraph (
data-provenance-summary) - Registered pipeline classes list (
data-provenance-classes, eachdata-provenance-class=<classId>) - "Seal a provenance bundle" form (
data-provenance-form) - Sealed-bundles list (
data-provenance-bundles, eachdata-provenance-bundle); empty statedata-provenance-bundles-empty
- Route Map panel (
data-isis-provenance-tracking-route-map):<h2>Route Map</h2>overSTUDIO_ISIS_PROVENANCE_TRACKING_ROUTE_MAP(5 entries) - Sibling quick-actions panel:
/studio/isis/output-manifest,/studio
States#
- Loading —
data-provenance-loading - Unauthorized — 401/403 admin-scope fail-closed;
data-provenance-unauthorized - Error — non-OK or malformed response;
data-provenance-error - Ready (form) — response present; pipeline classes + seal form + bundles render
- Result — after a seal POST,
data-provenance-result(data-provenance-status); a watermark token that diverged through the chain is rejected (Seal failed)
Interactions#
Seal a provenance bundle (data-provenance-form)#
- Output id (
data-provenance-outputid, text input) - Provider (
data-provenance-provider,<select>) - Mode (
data-provenance-mode,<select>) - Pipeline class (
data-provenance-classid,<select>from the registered pipeline classes) - Source 2D asset ids (comma-separated) (
data-provenance-sources, text input) - Model version (
data-provenance-modelversion, text input) - Watermark token (
data-provenance-watermark, text input) - Watermark after each step (comma-separated) (
data-provenance-chain, text input) - Seal bundle (
data-provenance-seal, button; "Sealing…" while in flight) — disabled until valid;POST /v1/admin/isis/3d-provenance
Route Map#
- Route-map articles ×5
Sibling quick-actions#
- Open Isis Output Manifest workspace →
/studio/isis/output-manifest - Back to Studio workspace index →
/studio
Data & contracts#
- Reads:
GET /v1/admin/isis/3d-provenance(registered pipeline classes + sealed bundles) - Writes:
POST /v1/admin/isis/3d-provenance(seal a provenance bundle viabuildThreeDProvenance; returns the SHA-256 bundle hash or a rejection when the watermark token diverged) - Realtime: none
- Caching: client fetch on mount,
cache: 'no-store',buildBffAuthHeaders() - Auth/role check: admin-scoped, fail-closed (401/403); route gated on signed-in + studio entitlement
- Component sources:
apps/oshun/web/src/components/studio/StudioIsisProvenanceTrackingWorkspace.tsxapps/oshun/web/src/components/studio/StudioIsisProvenanceTrackingRouteMap.ts
Cross-references#
- Studio overview:
../../studio-overview.md - Sibling routes:
Open questions / known gaps#
- No breadcrumb on this route — navigation is via sibling quick-actions
- The seal binds provenance at the bundle level; confirm where the resulting
bundle hash is persisted and surfaced to downstream consumers (e.g. the
GeneratedArtifactProvenanceInspectorin the Output Registry / Outputs hubs)