Context. surface studio · domain isis · route /studio/isis/lineage-graph · auth signed-in + studio entitlement (NOT AAA-gated) · source apps/oshun/web/src/app/studio/isis/lineage-graph/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#
Read-only admin lane console over the §24.10 provenance DAG. For any generated output it shows the provenance parents (what it was derived from), the derivative children, and the full descendant reach — the set a takedown would cascade to. The graph and per-output neighborhood are read live from the lineage service.
Entry points#
- Sibling quick-action card from
/studio/isis/provenance-tracking - Studio index (
/studio) - Direct URL / bookmark
Layout regions#
page.tsx mounts ShellLayout active="studio" and three panels (no breadcrumb
panel).
- Workspace panel (
data-isis-lineage-graph-workspace):<h1>"Isis Lineage Graph Workspace" (WorkspaceHeading)- Summary paragraph (
data-isis-lineage-graph-summary) - Graph summary (
data-lineage-summary): output count, edge count, generatedAt - Two-column body: output picker (
data-lineage-outputs,<h2>) ofdata-lineage-output={id}buttons, and neighborhood detail (data-lineage-detail,<h2>) withdata-lineage-parents,data-lineage-children,data-lineage-descendants
- Route map panel (
data-isis-lineage-graph-route-map):<h2>"Route Map" enumeratingSTUDIO_ISIS_LINEAGE_GRAPH_ROUTE_MAP - Quick-actions panel:
quickActionlinks to/studio/isis/provenance-trackingand "Back to Studio workspace index" →/studio
States#
- Loading —
data-lineage-loading"Loading lineage graph…" - Unauthorized —
data-lineage-unauthorized(admin-scope fail-closed on 401/403) - Error —
data-lineage-erroron non-OK / malformed response - Ready — graph summary + output picker render; selecting an output loads its neighborhood
- Neighborhood —
data-lineage-detailshows parents / children / descendants (descendants empty → "no downstream derivatives")
Interactions#
Output navigation#
- Output buttons —
data-lineage-output={id}(active markeddata-lineage-output-active); click fetches that output's neighborhood viaGET /v1/admin/isis/output-lineage/{outputId} - Descendant rows —
data-lineage-descendant={id}(read-only takedown reach)
Route map#
- Route-map articles — non-interactive path + purpose entries
Quick-actions#
- Open Isis Provenance Tracking workspace →
/studio/isis/provenance-tracking - Back to Studio workspace index →
/studio
Data & contracts#
- Reads:
GET /v1/admin/isis/output-lineage(LINEAGE_ENDPOINT) on mount — graph (outputs + edges);GET /v1/admin/isis/output-lineage/{outputId}on selection — neighborhood (parents/children/descendants) - Writes: None (read-only provenance view)
- Realtime: None
- Caching: client
fetch,cache: 'no-store',buildBffAuthHeaders() - Auth: admin-scoped fail-closed (401/403 → unauthorized state); route behind the signed-in + studio proxy gate
- Component sources:
apps/oshun/web/src/components/studio/StudioIsisLineageGraphWorkspace.tsxapps/oshun/web/src/components/studio/StudioIsisLineageGraphRouteMap.ts
Cross-references#
- Studio overview:
../../studio-overview.md - Sibling routes:
Open questions / known gaps#
- Read-only — initiating a takedown that cascades over the descendant reach happens elsewhere; this view only previews the reach
- Output picker is the full graph node set; confirm how very large DAGs paginate / scope