94 lines
4.0 KiB
JSON
94 lines
4.0 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"id": "workspace-control-plane",
|
|
"title": "Workspace control-plane owner and non-owner review",
|
|
"baseUrl": "${WEB_UX_BASE_URL}",
|
|
"locale": "en-US",
|
|
"timezone": "UTC",
|
|
"colorScheme": "light",
|
|
"reducedMotion": "reduce",
|
|
"redact": {
|
|
"selectors": ["[data-web-ux-redact]", "input[type=password]"],
|
|
"text": []
|
|
},
|
|
"personas": [
|
|
{
|
|
"id": "owner",
|
|
"label": "Workspace owner",
|
|
"auth": { "kind": "storage-state", "path": "${XDG_STATE_HOME}/yoi/web-ux/auth/owner.json" },
|
|
"login": { "path": "/", "successUrl": "/w/" }
|
|
},
|
|
{
|
|
"id": "non-owner",
|
|
"label": "Authenticated non-owner",
|
|
"auth": {
|
|
"kind": "storage-state",
|
|
"path": "${XDG_STATE_HOME}/yoi/web-ux/auth/non-owner.json"
|
|
},
|
|
"login": { "path": "/", "successUrl": "/w/" }
|
|
}
|
|
],
|
|
"viewports": [
|
|
{ "label": "desktop", "width": 1440, "height": 1000, "deviceScaleFactor": 1 },
|
|
{ "label": "narrow", "width": 900, "height": 900, "deviceScaleFactor": 1 }
|
|
],
|
|
"routes": [
|
|
{
|
|
"id": "workspace-home",
|
|
"label": "Workspace overview",
|
|
"path": "/w/${WORKSPACE_ID}",
|
|
"goal": "Orient the user and expose the highest-value Workspace actions without internal authority noise.",
|
|
"dataState": "Dogfood Workspace with current Runtime and Ticket data.",
|
|
"ready": { "kind": "selector", "selector": "main", "timeoutMs": 20000 },
|
|
"capturePoints": [{ "id": "initial", "label": "Initial viewport", "fullPage": true }]
|
|
},
|
|
{
|
|
"id": "tickets",
|
|
"label": "Ticket lanes",
|
|
"path": "/w/${WORKSPACE_ID}/tickets",
|
|
"goal": "Scan actionable Ticket lanes and reach the primary authoring action in the initial viewport.",
|
|
"dataState": "Planning, ready, queued, in-progress, and completed Tickets from the selected Workspace.",
|
|
"ready": { "kind": "selector", "selector": "main", "timeoutMs": 30000 },
|
|
"capturePoints": [{ "id": "initial", "label": "Loaded Ticket lanes", "fullPage": true }]
|
|
},
|
|
{
|
|
"id": "workers",
|
|
"label": "Workers",
|
|
"path": "/w/${WORKSPACE_ID}/workers",
|
|
"goal": "Find current Worker state and the new-Worker action without exposing transport internals as the primary content.",
|
|
"dataState": "Current Workspace Worker projection with mixed lifecycle states.",
|
|
"ready": { "kind": "selector", "selector": "main", "timeoutMs": 20000 },
|
|
"capturePoints": [{ "id": "initial", "label": "Worker list", "fullPage": true }]
|
|
},
|
|
{
|
|
"id": "settings",
|
|
"label": "Workspace settings",
|
|
"path": "/w/${WORKSPACE_ID}/settings",
|
|
"goal": "Reach the relevant Workspace settings area without presenting owner-only destinations as usable actions to a non-owner.",
|
|
"dataState": "Current permission projection for the selected Workspace.",
|
|
"ready": { "kind": "selector", "selector": "main", "timeoutMs": 20000 },
|
|
"capturePoints": [{ "id": "initial", "label": "Workspace settings", "fullPage": true }]
|
|
},
|
|
{
|
|
"id": "repositories",
|
|
"label": "Repository settings",
|
|
"path": "/w/${WORKSPACE_ID}/settings/repositories",
|
|
"goal": "Review repository access as an owner and verify non-owner composition does not expose unusable owner actions.",
|
|
"dataState": "Workspace repository catalog projected through current permissions.",
|
|
"ready": { "kind": "selector", "selector": "main", "timeoutMs": 20000 },
|
|
"capturePoints": [{ "id": "initial", "label": "Repository settings", "fullPage": true }]
|
|
},
|
|
{
|
|
"id": "repository-access",
|
|
"label": "Repository access",
|
|
"path": "/w/${WORKSPACE_ID}/settings/repository-access",
|
|
"goal": "Review credential and host-trust bindings as an owner and verify non-owner composition fails closed without secret material.",
|
|
"dataState": "Configured repository access bindings projected without credential bytes.",
|
|
"ready": { "kind": "selector", "selector": "main", "timeoutMs": 20000 },
|
|
"capturePoints": [
|
|
{ "id": "initial", "label": "Repository access settings", "fullPage": true }
|
|
]
|
|
}
|
|
]
|
|
}
|