feat(web): advisory/vex onboarding setup wizard

Sprint SPRINT_20260417_001_Platform_setup_advisory_vex_onboarding
(Platform backend landed in commit 9393baf1a).

- Setup wizard feature: components (setup-wizard, step-content,
  step-content.defaults.spec), models, services
  (setup-wizard-api.service, setup-wizard-state.service) + specs.
- Advisory source catalog component + behavior spec.
- Live setup-wizard first-run bootstrap script + playwright auth/state
  output fixtures.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
master
2026-04-19 14:41:08 +03:00
parent fcf9cc1b77
commit 0b7ba36f30
15 changed files with 1589 additions and 95 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,104 @@
{
"generatedAtUtc": "2026-04-19T11:21:17.727Z",
"baseUrl": "https://stella-ops.local",
"adminUsername": "admin",
"adminEmail": "admin@stella-ops.local",
"mode": "already-configured",
"steps": [
{
"action": "setup-entry-after-authentication",
"ok": true,
"resolvedSurface": "authenticated-reconfigure",
"initialAnonymousSession": {
"status": 401,
"ok": false,
"sessionId": null,
"currentStepId": "",
"sessionStatus": "",
"completedAtUtc": null,
"steps": [],
"raw": {
"status": 401,
"ok": false,
"payload": null,
"bodyText": ""
}
},
"authenticatedSetupSessionProbe": {
"status": 401,
"ok": false,
"sessionId": null,
"currentStepId": "",
"sessionStatus": "",
"completedAtUtc": null,
"steps": [],
"raw": {
"status": 401,
"ok": false,
"payload": null,
"bodyText": ""
}
},
"initialSnapshot": {
"label": "initial",
"url": "https://stella-ops.local/setup-wizard/wizard",
"title": "Wizard - StellaOps",
"heading": "Setup",
"alerts": [],
"visibleButtons": [
"Apply and ContinueWelcome"
]
},
"snapshot": {
"label": "setup-already-complete",
"url": "https://stella-ops.local/setup-wizard/wizard",
"title": "Wizard - StellaOps",
"heading": "Setup",
"alerts": [],
"visibleButtons": [
"Validate Connection",
"Apply and ContinueValkey/Redis Cache"
]
}
}
],
"runtime": {
"consoleErrors": [],
"pageErrors": [],
"requestFailures": [],
"responseErrors": [
{
"page": "https://stella-ops.local/setup-wizard/wizard",
"method": "POST",
"status": 401,
"url": "https://stella-ops.local/api/v1/setup/sessions"
}
],
"setupApiEvents": [
{
"page": "https://stella-ops.local/setup-wizard/wizard",
"method": "POST",
"status": 401,
"url": "https://stella-ops.local/api/v1/setup/sessions"
},
{
"page": "https://stella-ops.local/setup-wizard/wizard",
"method": "POST",
"status": 201,
"url": "https://stella-ops.local/api/v1/setup/sessions"
},
{
"page": "https://stella-ops.local/setup-wizard/wizard",
"method": "POST",
"status": 200,
"url": "https://stella-ops.local/api/v1/setup/sessions/setup-installation-20260419111949/steps/database/checks/run"
}
]
},
"postSetupAuthentication": {
"finalUrl": "https://stella-ops.local/?tenant=default&regions=apac,eu-west,us-east",
"title": "Dashboard - StellaOps",
"reportPath": "C:\\dev\\New folder\\git.stella-ops.org\\src\\Web\\StellaOps.Web\\output\\playwright\\live-setup-wizard-first-run-bootstrap.auth.json",
"statePath": "C:\\dev\\New folder\\git.stella-ops.org\\src\\Web\\StellaOps.Web\\output\\playwright\\live-setup-wizard-first-run-bootstrap.state.json"
}
}

File diff suppressed because one or more lines are too long