Context. surface studio · domain yemaya · route /studio/yemaya/pipeline-step-types · auth signed-in + studio entitlement · source apps/oshun/web/src/app/studio/yemaya/pipeline-step-types/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 lane console wired to the @yemaya/orchestration DAG analyzers: browse
the production step-type catalog and validate a pipeline step graph — detect
dependency cycles and compute the parallel execution waves (topological levels)
the orchestrator would run.
Entry points#
- Studio index quick-actions.
- No breadcrumb panel on this page.
- This page links out to
/studio/yemaya/cross-domain-integration; reachable inbound from/studio/yemaya/external-tool-integrations. - Direct URL / bookmark (signed-in + studio entitlement).
Layout regions#
page.tsx renders ShellLayout active="studio" and:
- Workspace panel (
StudioYemayaPipelineStepTypesWorkspace,data-yemaya-pipeline-step-types-workspace):<h1>"Yemaya Pipeline Step Types Workspace".- Summary
<p data-yemaya-pipeline-step-types-summary>(browse catalog + validate step graph for cycles and parallel waves). - Analyze lane — loading / unauthorized / error / ready-form / result;
data-yemaya-pst-cataloglists the step types.
- Route Map panel (
data-yemaya-pipeline-step-types-route-map):<h2>"Route Map" with five entries. - Quick-action panel: two
quickActionlinks.
States#
- Loading —
data-yemaya-pst-loading("Loading step-type catalog…"). - Unauthorized — 401/403 →
data-yemaya-pst-unauthorizedwith reason "Yemaya workspace scope required to view pipeline step types.". - Error — non-OK / malformed catalog →
data-yemaya-pst-error. - Ready-form — catalog (
stepTypes) loaded; the analyze form renders. - Result — 200 →
data-yemaya-pst-resultwithdata-yemaya-pst-cycle(node count + acyclic/cycle), and when acyclicdata-yemaya-pst-waves(eachdata-yemaya-pst-wave). - Validation error — invalid JSON, empty/non-array graph, or a non-200
POST →
data-yemaya-pst-analyze-error.
Interactions#
Analyze lane#
<form data-yemaya-pst-analyze-form>:
- Step graph (JSON) —
<textarea data-yemaya-pst-field-nodes>(aria-label "step graph json"), seeded with a diamond DAG[{ id, dependsOn[] }]. - "Analyze step graph" submit (
data-yemaya-pst-analyze-submit) — POSTs{ nodes }.
Route map#
data-yemaya-pipeline-step-types-route-map — five entries:
-
/studio/yemaya/pipeline-step-types -
/studio/yemaya/pipeline-step-types/scenes/[sceneId] -
/studio/yemaya/pipeline-step-types/exports/[exportId] -
/studio/yemaya/pipeline-step-types/revisions/[revisionId] -
/studio/yemaya/pipeline-step-types/governance/[policyId]
Quick actions#
- "Open Yemaya Cross-Domain Integration workspace" →
/studio/yemaya/cross-domain-integration. - "Back to Studio workspace index" →
/studio.
Data & contracts#
- Reads:
GET /v1/admin/yemaya/pipeline-step-types(catalog;stepTypes) on mount withbuildBffAuthHeaders(),cache: 'no-store'. - Writes:
POST /v1/admin/yemaya/pipeline-step-types/analyze→{ analysis: { nodeCount, hasCycle, cycles[], parallelGroups[] } }. - Realtime: None.
- Caching: client
fetchon mount, no-store; aborted on unmount. - Auth/role check: admin-scoped, fail-closed; route additionally signed-in + studio via the proxy gate.
Cross-references#
- Workspace source:
apps/oshun/web/src/components/studio/StudioYemayaPipelineStepTypesWorkspace.tsx - Route map source:
apps/oshun/web/src/components/studio/StudioYemayaPipelineStepTypesRouteMap.ts - Page source:
apps/oshun/web/src/app/studio/yemaya/pipeline-step-types/page.tsx - Sibling:
studio-yemaya-external-tool-integrations.md - Studio overview:
studio-overview.md - Feature spec:
V1/features.md
Open questions / known gaps#
- Step graph is entered as raw JSON; verify whether a visual DAG editor is planned.
- Route-map children (
scenes/exports/revisions/governance) are a sitemap contract; confirm which dynamic pages exist.