Context. surface studio · domain isis · route /studio/isis/video-production-workflows · auth signed-in + Studio Isis AAA boundary; localhost E2E lane bypass for focused workspace automation · source apps/oshun/web/src/app/studio/isis/video-production-workflows/page.tsx
Last walked. 2026-07-23 exact production BFF + Playwright desktop/mobile walk — hard production gate, exact/no-store catalog and validation contracts, valid and invalid results, adversarial rejection, pending/offline/auth states, responsive containment, 44-pixel controls, and applicable axe coverage passed; manual screen-reader and installed-PWA checks remain open
Purpose#
Request-local, non-authoritative preview that validates a caller-supplied
workflow definition against the canonical @isis/workflows schema. Invalid
definitions surface the real per-path schema errors; valid ones expose only a
normalized header. This route does not register, execute, persist, govern,
publish, or release a workflow or media artifact.
Entry points#
- Embedded as the "Video Production Workflows Lane" inside
/studio/isis/ai-video - Sibling quick-action card from
/studio/isis/topaz-enhancement - Studio index (
/studio) - Direct URL / bookmark (production Studio Isis boundary applies; focused
workspace automation uses the localhost-only
?__oshunStudioIsisLaneE2E=1lane bypass)
Layout regions#
page.tsx mounts ShellLayout active="studio" and three panels (no breadcrumb
panel).
- Workspace panel (
data-isis-video-production-workflows-workspace):<h1>"Isis Video Production Workflows Workspace" (WorkspaceHeading)- Summary paragraph (
data-isis-video-production-workflows-summary) - The "Workflow definition (JSON)" form (
data-isis-vw-form) listing the catalogrequiredFields; exposesdata-isis-vw-form-state="idle|pending" - Result block (
data-isis-vw-result) withdata-isis-vw-verdict,data-isis-vw-header(valid) ordata-isis-vw-errors(invalid)
- Route map panel (
data-isis-video-production-workflows-route-map):<h2>"Route Map" enumeratingSTUDIO_ISIS_VIDEO_PRODUCTION_WORKFLOWS_ROUTE_MAPwithdata-isis-vw-route-map-count="5"and onedata-isis-vw-route-map-entryper contract path: onemounted, fourdocumented-contract. - Quick-actions panel (
data-isis-vw-quick-actions,data-isis-vw-quick-action-count="2"):quickActionlinks to/studio/isis/topaz-enhancement(data-isis-vw-quick-action="topaz-enhancement") and "Back to Studio workspace index" →/studio(data-isis-vw-quick-action="studio-index").
States#
- Loading —
data-isis-vw-loading"Loading workflow validator…" - Unauthorized —
data-isis-vw-unauthorized(admin-scope fail-closed on 401/403) - Error —
data-isis-vw-erroron the mount GET - Ready (form) — workflow textarea + submit render; form and submit expose idle state.
- Pending submit — submit disabled with
data-isis-vw-submit-state="pending",aria-disabled="true", andaria-busy="true"while the live BFF validate call is held. - Result —
data-isis-vw-verdict(valid →data-isis-vw-header, invalid →data-isis-vw-errorsofdata-isis-vw-error-row) ordata-isis-vw-validate-error - Network-unreachable validate — aborted validate POST renders
data-isis-vw-validate-error"Could not reach the workflow service." - Anonymous/gated navigation — unauthenticated direct navigation
redirects to
/welcome?redirect=%2Fstudio%2Fisis%2Fvideo-production-workflows&signedOut=1before the workspace renders; signed-in non-bypass navigation hard-blocks under the Studio Isis boundary. - Standalone PWA — installed-shell launch still needs a manual pass.
Interactions#
Validate workflow (data-isis-vw-form)#
- Workflow definition (JSON) —
data-isis-vw-workflowtextarea; client and server cap the request at 256 KiB and 256 nodes - Validate workflow —
data-isis-vw-submitsubmit; POSTs to/v1/admin/isis/video-production-workflows/validate
Route map#
- Mounted validator route ×1
- Documented-contract-only route shapes ×4
Quick-actions#
- Open Isis Topaz Enhancement workspace →
/studio/isis/topaz-enhancement - Back to Studio workspace index →
/studio
Data & contracts#
- Reads:
GET /v1/admin/isis/video-production-workflows, returning exactly{generatedAt, canonicalNodeFormat, requiredFields, inputBounds, disposition} - Writes:
POST /v1/admin/isis/video-production-workflows/validateaccepts exactly{workflow}and returns exactly{ok, input, result, disposition}on success - Realtime: None
- Bounds: serialized workflow 2–262,144 UTF-8 bytes; 0–256 object-map nodes
- Disposition:
request_local_non_authoritative_workflow_schema_validation_preview; persistencenone, retentionrequest_only, caller-supplied definition, deterministic Isis schema validator, no registration/execution/provider, artifact, governance, release, or authoritative state - Caching: authenticated GET and POST responses are
no-store; the client also usescache: 'no-store' - Validation: the browser independently requires the exact catalog, bounds, disposition, normalized input summary, and valid/invalid result invariants; malformed, extra, incorrectly summarized, or authority-inflated success responses fail closed
- Auth: admin-scoped fail-closed (401/403 → unauthorized state); route sits
behind the signed-in + Studio Isis proxy boundary. The focused Playwright
workspace path uses the localhost-only
?__oshunStudioIsisLaneE2E=1bypass already established for Isis lane automation; the production direct route is separately asserted as hard-blocked for a signed-in non-AAA session. - Component sources:
apps/oshun/web/src/components/studio/StudioIsisVideoProductionWorkflowsWorkspace.tsxapps/oshun/web/src/components/studio/StudioIsisVideoProductionWorkflowsRouteMap.ts
Cross-references#
- Studio overview:
../../studio-overview.md - Parent aggregator:
studio-isis-ai-video.md - Sibling routes:
E2E coverage#
apps/oshun/web/e2e/studio-isis-video-production-workflows.spec.tsuses the shared Playwright/axe fixture, blocks service workers for deterministic route forwarding, enters through the localhost-only lane bypass, and proxies the browser calls to the exact built production BFF with signed production JWTs, all 32 migrations, and isolated Redis.- Covered: production hard-block for signed-in direct navigation without the
bypass; E2E lane navigation; catalog bearer forwarding; required-field hint;
44 px editor, submit, and quick-action affordances; all five route-map
entries; both quick-actions; default valid workflow header; missing
workflow_info/output_specschema errors; invalidschema_versionschema error; client malformed JSON/non-object rejection with zero POSTs; direct exact/no-store BFF 400; aborted validate POST; catalog loading and 503 error; non-admin fail-closed state; anonymous redirect-before-render; Pixel 7 containment and live result; shared axe gate. - Not covered by automation yet: live screen-reader pass, installed-PWA launch, and telemetry delivery for validator use.
Open questions / known gaps#
- No workflow registration or durable version history
- No workflow/provider execution or media artifact output
- No governance record, approval, publication, or release authority
- Manual live screen-reader, installed-PWA, and telemetry-delivery checks remain open