diff --git a/docs/modules/concelier/operations/source-credentials.md b/docs/modules/concelier/operations/source-credentials.md
index 76f25d4f8..66054c3fa 100644
--- a/docs/modules/concelier/operations/source-credentials.md
+++ b/docs/modules/concelier/operations/source-credentials.md
@@ -29,6 +29,16 @@ Then:
Sensitive fields never round-trip back to the browser. A stored secret is shown only as retained state. Leaving a password field blank keeps the retained secret. Explicitly checking the clear control removes the stored secret.
+### Blocked or sleeping sources
+
+If an operator enables a source that still lacks required credentials or required URIs, Concelier now preserves the enable intent but marks the source as `blocked` instead of pretending it is runnable.
+
+- `enabled=true` means the operator wants the source scheduled once it becomes usable.
+- `syncState=blocked` means the source is intentionally on hold because required configuration is still missing.
+- Manual or batch sync attempts will report that the source is blocked and will echo the missing-configuration reason, typically `SOURCE_CONFIG_REQUIRED`.
+
+This is the expected state for credential-gated sources that have been selected before the upstream token or client-secret values are available.
+
### CLI
Inspect current persisted source configuration:
diff --git a/src/Web/StellaOps.Web/docs/ACCESSIBILITY_AUDIT_BINARY_RESOLUTION.md b/src/Web/StellaOps.Web/docs/ACCESSIBILITY_AUDIT_BINARY_RESOLUTION.md
deleted file mode 100644
index 85d21d5a2..000000000
--- a/src/Web/StellaOps.Web/docs/ACCESSIBILITY_AUDIT_BINARY_RESOLUTION.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# Accessibility Audit: Binary Resolution UI
-
-**Sprint:** SPRINT_1227_0003_0001 (Backport-Aware Resolution UI)
-**Task:** T10 — Accessibility audit
-**Standard:** WCAG 2.1 Level AA
-
----
-
-## Scope
-
-This audit covers the following components:
-- `ResolutionChipComponent`
-- `EvidenceDrawerComponent`
-- `FunctionDiffComponent`
-- `AttestationViewerComponent`
-- Updated `VulnerabilityDetailComponent`
-
----
-
-## Audit Results Summary
-
-| Criterion | Status | Notes |
-|-----------|--------|-------|
-| 1.1.1 Non-text Content | ✅ Pass | Icons have aria-hidden, text alternatives provided |
-| 1.3.1 Info and Relationships | ✅ Pass | Semantic HTML, proper heading hierarchy |
-| 1.4.1 Use of Color | ✅ Pass | Status not conveyed by color alone (text + icons) |
-| 1.4.3 Contrast (Minimum) | ✅ Pass | All text meets 4.5:1 contrast ratio |
-| 1.4.11 Non-text Contrast | ✅ Pass | UI components meet 3:1 ratio |
-| 2.1.1 Keyboard | ✅ Pass | All functions keyboard accessible |
-| 2.1.2 No Keyboard Trap | ✅ Pass | Escape closes drawer, Tab cycles through |
-| 2.4.3 Focus Order | ✅ Pass | Logical tab order |
-| 2.4.4 Link Purpose | ✅ Pass | Links have descriptive text |
-| 2.4.6 Headings and Labels | ✅ Pass | Descriptive headings in drawer |
-| 2.4.7 Focus Visible | ✅ Pass | Focus indicators visible |
-| 4.1.2 Name, Role, Value | ✅ Pass | ARIA attributes properly set |
-
----
-
-## Detailed Findings
-
-### 1. ResolutionChipComponent
-
-#### Passes
-
-**1.1.1 Non-text Content**
-```html
-{{ icon() }}
-```
-- Icons are decorative and marked with `aria-hidden="true"`
-- Accessible text provided via `aria-label` on the chip
-
-**1.4.1 Use of Color**
-- Status communicated via:
- - Color (visual cue)
- - Icon (🔍, ✅, ⚠️, ❓)
- - Text label ("Fixed (backport)", "Vulnerable")
-
-**2.4.7 Focus Visible**
-```scss
-&:focus-within {
- box-shadow: 0 0 0 2px currentColor;
-}
-```
-- Visible focus ring on chip interaction
-
-**4.1.2 Name, Role, Value**
-```html
-
-```
-- `role="status"` for screen reader announcements
-- Comprehensive `aria-label` including confidence percentage
-
----
-
-### 2. EvidenceDrawerComponent
-
-#### Passes
-
-**1.3.1 Info and Relationships**
-```html
-
-```
-- Semantic ``, ``, ``, `` elements
-- Proper heading hierarchy (h3 → h4)
-
-**2.1.1 Keyboard**
-- All interactive elements focusable
-- Escape key closes drawer
-- Tab navigates through content
-
-**2.1.2 No Keyboard Trap**
-```typescript
-private handleKeydown(event: KeyboardEvent): void {
- if (event.key === 'Escape' && this.isOpen()) {
- this.onClose();
- }
-}
-```
-- Escape key always available to close
-- Tab cycles naturally through focusable elements
-
-**2.4.3 Focus Order**
-Focus order follows visual layout:
-1. Close button
-2. Content sections (top to bottom)
-3. Copy button
-4. Action buttons
-
-**2.4.4 Link Purpose**
-```html
-
- {{ ev.distroAdvisoryId }}
- ↗
-
-```
-- Link text describes destination (advisory ID)
-- External indicator is decorative
-
----
-
-### 3. Confidence Gauge
-
-#### Passes
-
-**1.4.11 Non-text Contrast**
-- Gauge fill colors meet 3:1 contrast:
- - High (green): #28a745 on #e0e0e0 = 3.2:1 ✅
- - Medium (yellow): #ffc107 on #e0e0e0 = 3.8:1 ✅
- - Low (red): #dc3545 on #e0e0e0 = 4.1:1 ✅
-
-**4.1.2 Name, Role, Value**
-```html
-{{ confidencePercent() }}%
-```
-- Percentage always visible as text
-- Color is supplementary, not sole indicator
-
----
-
-### 4. Function List
-
-#### Passes
-
-**1.4.1 Use of Color**
-```scss
-.function-list__item--modified {
- border-left: 3px solid #ffc107;
-}
-```
-- Color-coded borders are supplementary
-- Change type explicitly stated in `.function-list__type` badge
-
-**2.4.4 Link Purpose**
-- "View Diff" buttons clearly labeled
-- Function name provides context
-
----
-
-### 5. Dark Mode Support
-
-#### Passes
-
-**1.4.3 Contrast (Minimum)**
-Dark mode colors verified:
-- Text on background: #e0e0e0 on #1e1e1e = 12.6:1 ✅
-- Secondary text: #999 on #1e1e1e = 5.3:1 ✅
-- Links: #6db3f2 on #1e1e1e = 7.8:1 ✅
-
----
-
-## Keyboard Shortcuts
-
-| Key | Action |
-|-----|--------|
-| `Tab` | Navigate to next focusable element |
-| `Shift + Tab` | Navigate to previous focusable element |
-| `Escape` | Close evidence drawer |
-| `Enter` / `Space` | Activate focused button |
-
----
-
-## Screen Reader Announcements
-
-### Resolution Chip
-> "Resolution status: Fixed. Fixed via backport detection from DSA-5343-1. Confidence: 87 percent"
-
-### Evidence Drawer Open
-> "Resolution evidence details, complementary"
-
-### Copy Success
-> (Button text changes to "Copied!" - visual feedback only, consider adding live region)
-
----
-
-## Recommendations for Future Improvement
-
-### P1 (Should Fix)
-
-1. **Copy Feedback Announcement**
- Add `aria-live="polite"` region for copy success:
- ```html
-
- {{ copied() ? 'Attestation copied to clipboard' : '' }}
-
- ```
-
-2. **Focus Trap in Drawer**
- Consider implementing focus trap when drawer is open to prevent focus escaping to background content.
-
-### P2 (Nice to Have)
-
-1. **Reduce Motion**
- Add support for `prefers-reduced-motion`:
- ```scss
- @media (prefers-reduced-motion: reduce) {
- .evidence-drawer {
- transition: none;
- }
- }
- ```
-
-2. **High Contrast Mode**
- Test and ensure visibility in Windows High Contrast Mode.
-
----
-
-## Testing Tools Used
-
-- **axe DevTools** - Automated accessibility testing
-- **NVDA** - Screen reader testing (Windows)
-- **VoiceOver** - Screen reader testing (macOS)
-- **Keyboard-only navigation** - Manual testing
-- **Colour Contrast Analyser** - Color contrast verification
-
----
-
-## Certification
-
-All components pass WCAG 2.1 Level AA requirements for the tested scenarios.
-
-**Auditor:** StellaOps Accessibility Team
-**Date:** 2025-12-28
-**Next Review:** With next major UI update
diff --git a/src/Web/StellaOps.Web/docs/DeterministicInstall.md b/src/Web/StellaOps.Web/docs/DeterministicInstall.md
deleted file mode 100644
index efe7ccf94..000000000
--- a/src/Web/StellaOps.Web/docs/DeterministicInstall.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# Deterministic Install & Headless Chromium
-
-Offline runners must avoid ad-hoc network calls while staying reproducible. The Angular workspace now ships a locked dependency graph and helpers for provisioning a Chromium binary without embedding it directly in `npm install`.
-
-## Prerequisites
-
-- Node.js **20.11.0** or newer (matches the `engines` constraint).
-- npm **10.2.0** or newer.
-- Local npm cache location available to both the connected “seed” machine and the offline runner (for example, `/opt/stellaops/npm-cache`).
-
-## One-Time Cache Priming (Connected Host)
-
-```bash
-export NPM_CONFIG_CACHE=/opt/stellaops/npm-cache
-npm run ci:install
-```
-
-`ci:install` executes `npm ci --prefer-offline --no-audit --no-fund` so every package and integrity hash lands in the cache without touching arbitrary registries afterwards.
-
-If you plan to bundle a Chromium binary, download it while still connected:
-
-```bash
-npx @puppeteer/browsers install chrome@stable --path .cache/chromium
-```
-
-Archive both the npm cache and `.cache/chromium/` directory; include them in your Offline Kit transfer.
-
-## Offline Runner Execution
-
-1. Extract the pre-warmed npm cache to the offline host and export `NPM_CONFIG_CACHE` to that directory.
-2. Optionally copy the `.cache/chromium/` folder next to `package.json` (the Karma launcher auto-detects platform-specific paths inside this directory).
-3. Run `npm run ci:install` to restore dependencies without network access.
-4. Validate Chromium availability with `npm run verify:chromium`. This command exits non-zero and prints the search paths if no binary is discovered.
-5. Execute tests via `npm run test:ci` (internally calls `verify:chromium` before running `ng test --watch=false`).
-
-## Chromium Options
-
-- **System package** – Install `chromium`, `chromium-browser`, or `google-chrome-stable` via your distribution repository or the Offline Kit. The launcher checks `/usr/bin/chromium-browser`, `/usr/bin/chromium`, and `/usr/bin/google-chrome(-stable)` automatically.
-- **Environment override** – Set `CHROME_BIN` or `STELLAOPS_CHROMIUM_BIN` to the executable path if you host Chromium in a custom location.
-- **Offline cache drop** – Place the extracted archive under `.cache/chromium/` (`chrome-linux64/chrome`, `chrome-win64/chrome.exe`, or `chrome-mac/Chromium.app/...`). The Karma harness resolves these automatically.
-
-Consult `src/Web/StellaOps.Web/README.md` for a shortened operator flow overview.
diff --git a/src/Web/StellaOps.Web/docs/HelmReadiness.md b/src/Web/StellaOps.Web/docs/HelmReadiness.md
deleted file mode 100644
index 02d89b3bf..000000000
--- a/src/Web/StellaOps.Web/docs/HelmReadiness.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Helm Readiness & Probes
-
-This app serves static health endpoints for platform probes:
-
-- `/assets/health/liveness.json`
-- `/assets/health/readiness.json`
-- `/assets/health/version.json`
-
-These are packaged with the Angular build. Configure Helm/Nginx to route the probes directly to the web pod.
-
-## Suggested Helm values
-
-```yaml
-livenessProbe:
- httpGet:
- path: /assets/health/liveness.json
- port: http
-readinessProbe:
- httpGet:
- path: /assets/health/readiness.json
- port: http
-```
-
-## Updating
-
-- Edit the JSON under `src/assets/health/*.json` for environment-specific readiness details.
-- Run `npm run build` (or CI pipeline) to bake the files into the image.
diff --git a/src/Web/StellaOps.Web/docs/TrivyDbSettings.md b/src/Web/StellaOps.Web/docs/TrivyDbSettings.md
deleted file mode 100644
index d34068bb6..000000000
--- a/src/Web/StellaOps.Web/docs/TrivyDbSettings.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# WEB1.TRIVY-SETTINGS – Backend Contract & UI Wiring Notes
-
-## 1. Known backend surfaces
-
-- `POST /jobs/export:trivy-db`
- Payload is wrapped as `{ "trigger": "", "parameters": { ... } }` and accepts the overrides shown in `TrivyDbExportJob` (`publishFull`, `publishDelta`, `includeFull`, `includeDelta`).
- Evidence: `src/Cli/StellaOps.Cli/Commands/CommandHandlers.cs:263`, `src/Cli/StellaOps.Cli/Services/Models/Transport/JobTriggerRequest.cs:5`, `src/Concelier/StellaOps.Concelier.PluginBinaries/StellaOps.Concelier.Exporter.TrivyDb/TrivyDbExportJob.cs:27`.
-- Export configuration defaults sit under `TrivyDbExportOptions.Oras` and `.OfflineBundle`. Both booleans default to `true`, so overriding to `false` must be explicit.
- Evidence: `src/Concelier/StellaOps.Concelier.PluginBinaries/StellaOps.Concelier.Exporter.TrivyDb/TrivyDbExportOptions.cs:8`.
-
-## 2. Clarifications needed from Concelier backend
-
-| Topic | Questions to resolve | Suggested owner |
-| --- | --- | --- |
-| Settings endpoint surface | `Program.cs` only exposes `/jobs/*` and health endpoints—there is currently **no** `/exporters/trivy-db/settings` route. Confirm the intended path (`/api/v1/concelier/exporters/trivy-db/settings`?), verbs (`GET`/`PUT` or `PATCH`), and DTO schema (flat booleans vs nested `oras`/`offlineBundle`). | Concelier WebService |
-| Auth scopes | Verify required roles (likely `concelier.export` or `concelier.admin`) and whether UI needs to request additional scopes beyond existing dashboard access. | Authority & Concelier teams |
-| Concurrency control | Determine if settings payload includes an ETag or timestamp we must echo (`If-Match`) to avoid stomping concurrent edits. | Concelier WebService |
-| Validation & defaults | Clarify server-side validation rules (e.g., must `publishDelta` be `false` when `publishFull` is `false`?) and shape of Problem+JSON responses. | Concelier WebService |
-| Manual run trigger | Confirm whether settings update should immediately kick an export or if UI should call `POST /jobs/export:trivy-db` separately (current CLI behaviour suggests a separate call). | Concelier WebService |
-
-## 3. Proposed Angular implementation (pending contract lock)
-
-- **Feature module**: `app/concelier/trivy-db-settings/` with a standalone routed page (`TrivyDbSettingsPage`) and a reusable form component (`TrivyDbSettingsForm`).
-- **State & transport**:
- - Client wrapper under `core/api/concelier-exporter.client.ts` exposing `getTrivyDbSettings`, `updateTrivyDbSettings`, and `runTrivyDbExport`.
- - Store built with `@ngrx/signals` keeping `settings`, `isDirty`, `lastFetchedAt`, and error state; optimistic updates gated on ETag confirmation once the backend specifies the shape.
- - Shared DTOs generated from the confirmed schema to keep Concelier/CLI alignment.
-- **UX flow**:
- - Load settings on navigation; show inline info about current publish/bundle defaults.
- - “Run export now” button opens confirmation modal summarising overrides, then calls `runTrivyDbExport` (separate API call) while reusing local state.
- - Surface Problem+JSON errors via existing toast/notification pattern and capture correlation IDs for ops visibility.
-- **Offline posture**: cache latest successful settings payload in IndexedDB (read-only when offline) and disable the run button when token/scopes are missing.
-
-## 4. Next steps
-
-1. Share section 2 with Concelier WebService owners to confirm the REST contract (blocking before scaffolding DTOs).
-2. Once confirmed, scaffold the Angular workspace and feature shell, keeping deterministic build outputs per `src/Web/StellaOps.Web/AGENTS.md`.
diff --git a/src/Web/StellaOps.Web/output/playwright/live-frontdoor-auth-failure.png b/src/Web/StellaOps.Web/output/playwright/live-frontdoor-auth-failure.png
index 2db582924..370d1f0d1 100644
Binary files a/src/Web/StellaOps.Web/output/playwright/live-frontdoor-auth-failure.png and b/src/Web/StellaOps.Web/output/playwright/live-frontdoor-auth-failure.png differ
diff --git a/src/Web/StellaOps.Web/output/playwright/live-frontdoor-auth-report.json b/src/Web/StellaOps.Web/output/playwright/live-frontdoor-auth-report.json
index 42f6134f7..1b3c9d2fd 100644
--- a/src/Web/StellaOps.Web/output/playwright/live-frontdoor-auth-report.json
+++ b/src/Web/StellaOps.Web/output/playwright/live-frontdoor-auth-report.json
@@ -1,52 +1,31 @@
{
- "authenticatedAtUtc": "2026-04-19T10:08:12.266Z",
- "authenticated": true,
- "error": null,
+ "authenticatedAtUtc": "2026-04-22T13:30:43.515Z",
+ "authenticated": false,
+ "error": "Frontdoor authentication did not establish a Stella Ops session. finalUrl=https://stella-ops.local/connect/authorize?response_type=code&client_id=stella-ops-ui&redirect_uri=https%3A%2F%2Fstella-ops.local%2Fauth%2Fcallback&scope=openid+profile+email+offline_access+ui.read+ui.admin+ui.preferences.read+ui.preferences.write+authority%3Atenants.read+authority%3Atenants.write+authority%3Ausers.read+authority%3Ausers.write+authority%3Aroles.read+authority%3Aroles.write+authority%3Aclients.read+authority%3Aclients.write+authority%3Atokens.read+authority%3Atokens.revoke+authority%3Abranding.read+authority%3Abranding.write+authority.audit.read+graph%3Aread+sbom%3Aread+scanner%3Aread+policy%3Aread+policy%3Asimulate+policy%3Aauthor+policy%3Areview+policy%3Aapprove+policy%3Arun+policy%3Aactivate+policy%3Aaudit+policy%3Aedit+policy%3Aoperate+policy%3Apublish+airgap%3Aseal+airgap%3Astatus%3Aread+orch%3Aread+orch%3Aoperate+orch%3Aquota+analytics.read+advisory%3Aread+advisory-ai%3Aview+advisory-ai%3Aoperate+vex%3Aread+vexhub%3Aread+exceptions%3Aread+exceptions%3Aapprove+aoc%3Averify+findings%3Aread+release%3Aread+release%3Awrite+release%3Apublish+scheduler%3Aread+scheduler%3Aoperate+notify.viewer+notify.operator+notify.admin+notify.escalate+evidence%3Aread+export.viewer+export.operator+export.admin+vuln%3Aview+vuln%3Ainvestigate+vuln%3Aoperate+vuln%3Aaudit+platform.context.read+platform.context.write+doctor%3Arun+doctor%3Aadmin+ops.health+integration%3Aread+integration%3Awrite+integration%3Aoperate+packs.read+packs.write+packs.run+packs.approve+registry.admin+timeline%3Aread+timeline%3Awrite+trust%3Aread+trust%3Awrite+trust%3Aadmin+signer%3Aread+signer%3Asign+signer%3Arotate+signer%3Aadmin&state=1269a403-5e2c-4ba7-9948-44d0e6935ed0&nonce=57471c05-a18a-428d-8afa-07e2c7631ffc&code_challenge=wmOzukXEyXLpc_qKn1BqWu-ix7Wr6YqWoSubfYb8MOA&code_challenge_method=S256&audience=stella-ops-api signInVisible=true",
"baseUrl": "https://stella-ops.local",
- "finalUrl": "https://stella-ops.local/auth/callback?code=eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZDQkMtSFM1MTIiLCJraWQiOiJZV0pPRVlCSzU3UEpSQTFTSFhFWkM3NEFRQktRWFdEQjZaWlVPV0dVIiwidHlwIjoib2lfYXVjK2p3dCIsImN0eSI6IkpXVCJ9.IDXJmN_y55KXyQfQck2Fk2g49Mwgi6qrbu4GFQBt-Rsq0Ja-td8huvXXbB4ZH0DTPpAjFdDLqGxCVVEurC9WuxTJ2BqdQjXgHBVz7HEat_l3wITTSC5IjQiprxE43W0wJ-18u82uc_b3eA7k_TBOkaETA6K85h-r0aWHPk21eLUFJ6RsMbkY_uGi8T098-9UNvKiJ-r2Em3KXzs5uhBgUWjv_eUlxXqy1I3kL4VwKb-Owv6D1I_4N_v02wLlJjLmj40I4rc6AC01-QnnWGDAXQqXbz8GvarIUxGRlVvd_siGDaZHqKaMScV_6k3mzK8AyQMfmH1GzKDJtHpHmbBItw.wl-qD35iFGQCPthi9hlXGQ.OKdcas-sptgtseIuePWdXeHzO4Itv_Gm2FVPPKh96Isuo_GBkXHs4vgmnANz7sq-_o1dMJLUREOWR964NV7AQaq1vvIK3xkcyvkQCVrXHte1rcTXdIYXz6J89SyUN0lJ1NnSWusjYFXnFLt3T1OznwFBo_ry_hgmnieHKYn_deAFXOAj_cisYG9DgTZ9DADecU6a9_TeDEKFgRc-WTXKUlvjsn4XSMnq_lD26dyGP-iGVYfXd21bdzZIo2DzOSzYtchA_CWF42cz5VchrBH19yPJbKJBoh0BDIw5uVRrfk6yw0EZndglVOAoxQdiKinIxOhYeryhc2qoYeT4tdEKB-zJcQ7XUHKYsT4crsjzgKwNr7m0pKUpSMRS-T2ttqHMl7tDMKsVYSsngpVl3bII-RSqBK7cSSzjwCyd0TbBuCSM2aRKhbD5yGzEhhuIA85TOgIlnLJmG_XmGX9P3b0KjPZEQoYZU30aYvf4lB84KbyMX9WHBi0kGDVOleuQK7ZqMOXqRDo8mt9aVKkDJaV7nwNJYTw2omgNGepFz5_0euprC7PZZBnRrw7L494AngJUR3Ku1qKtxvNwXv8Inm9G-q7B9CtFMYU8UA4YBLmVtnIeFrJgxzIeDxEKRHC8U6EKs1ZipxCalGudjAMR4drJoBjYAGazKU85rlR0SLBomH-YtY7MLHXWaiDSOeOCZpf1CDCMI-vJADNGovBRXczd_xIjKEquzlsuK0FfE1IXQBxwYLKEw6CaTqgP4LsdSWWYyf9g5vUpfgvFlnMPEOoWmmzR-Ul-5LoS_OY52_f32adYRlODwL84_kM00JPxh4xzLIUup3BLP01SRo5-1o18QtCihs1IfzFvWKoPq76YiQ00s51FwqRzd_SDc9Fh8Zd7zgjCtZ0wEKYaU2wRmPeI7UNroT_p2I3L8aKE_fcdlEIjRvT-bb893S7YDYAVaihyS1NTi3O-C7TdWx85UIMjeuBzhPw2iKfSuuSa5GJzPUMtZBoq0U_Eo2SnLLzva1n2N-jtlpv5N5gnPJV17CDHHeTBbSQkjBg8OIbTQcGsSEp02feFQ6DQ5uFM1mj7yEIaejMbeXdIDksmwPDitUoO4BwNOGOFVyboU2XpXPxA-FzdM3APC4UOGUHhaA4u2e-S0zKV_gKT9G1mEbD9axO8IvfMdV_Sk8xUejqas3vHk0yo8-mNP-MzlYdnEnQZDzTezEcIhOkUUH-p94DAAZq-L32Y3XxeFxkZsbvQn01_o6jJHnCLQYuND19d9Uak4oOK_y3KVFiGwN6xdqJMIbHF6ULnMkFFbqsOAmg0Fb9ktg1Eu0o4gywTKNQg-ynYTZ2SLDcfZouheP1y2vZODTe9dEh6HYdAptThS0ayQWLUW7hcFR9vQtmZi0jS2CZf8QBjPQ69J6D-aj8X9FNCJvvhMq2mo8zOQEQc1Yj7MF2FwQSs7vZjHEFcyo6tO81N-c36ufgKK2F1zIVzDyOYPFLQK9tcH2yY8Wmndvo9pv3YTHlgUhideDBObfX7wW7-Oe7A_-JvwakHdWY21qBmY68R-AfYhPyUbMQ6k6X_prQhdobFl51rxDUbNeMEOiwl4sistfrDvoLzotUxSY1fZEI2tJJPhkFvsR5WXwQMmKw65_sbuln_uSzuSErWtGPYfyzsma_cRlycTi0OqkRvBn-1gyynbXwaYGHyx-lcrn3ePARewzIKv5eJhgZLgxscttf1GHpw9x4yeRgNOqpC1pr9zOaA0x0bgl-VWRJ_LR8ZyjnkjX9NDjhWHmwBvxacbrGSWlVC7wAu4SHWjZYTuKPJrGaq1XFEWwdbxFdWCx1T4wayzUF12HokprZMXg20JhKa6OJi3rIHblQlAgoq_m3vyfcs2EGtOCw6s6t1VzviUue7EKsR4H_eTo3oqlv1VuSrqycpzNeUJcF8N43utSNVEhIQnt6Ec20S6jaMVfPdRaCOmI113Y75laM6Dz41Mc0xp_rEp9B-B1x9pmy5k7C93e44M-hAgRQcVNEc81rjSC6Tgpt_vXqobFvIu68tMeJ0JxgAfixc2KbIYbvxolV9yy1Y9WIVX6Fmn2jNrRQfwu9N4M-2U4cMH6K83Ltsgq8qgGffnGUq5aOu9WUpSiHRiu_jiE1N63RB8Ys60YK969J6o_f2eBzpP8oJfldMHfJ7nXzVL_Diql_Gt_yZdTzks83tMnNRS0XCrUTRRC8zec7960xywgC6nvn3lMS5J9aInnUSNp7v92m3C5Esw20UTnv8dsuEjnHqEa3uVGaZg-b0xp5d8oklmOgJqGsVlZ8XcFxsgxhVT574-_G2qPGr3azF1DDUXSqQI5g8BNBSHJOuiYq89TwS-uRlyti-mhB6Qommo1zKlfOKHNdEk9VWGoYH4LouhWRXBNE3Ez282oAl-c-gAWtIdI1hwCl0bnG3HsMpSApexF6PuX3QtwTq33glR7Ovw_i8BTtYRUWC4evgidDJeBv7opgo75xNwXg9bDZypbjZxLsT-kjUNu7Epw8BAEf-I1YmBJZQboqVwFtJLwS3bb5V0NjP5IXwf5lUp6zkxe7Wq50jnLOQwa_0p3K2PKpAm-_nl5begrS368DdEMhQ2CvuOh4D7Qkmsn59OsdkQNla2_N16JKc7iPN7xrvQcDnAmNsVRVIgmyyE5oGQfrHUAwVbnNQgb6IQyACWG8cCt_HFsdxp-tOOZYXW_X8sKi0uYhbkrJtePlc3vu4gU3MYilo0CwM8RUzRBXn_QLc1QKhSbFHkIx7C3GjjtWM_CeTyA9dGhjnrt6wR_SKMuk8MB8XFy39IMhOR75S8PAZpL5zSX10Xohou09SHR_mrqHWy5sP_VHx2RRQWnWuCQBPiXwl0eQeQh0X7PGIeNqzgkPRjVc-OwSS2-9gc6YEtvmZYtKI8yh2zNWHgSoBJk9zf-9393s7wcDY-7gZU61W4yFYxI_oZplBXbD6b24IOcsRjiHlYaWEvfASMEGH7svXtiq5ia2e7Gu4v66sWOntAGaFlo8Lq-5uM9L3CJ0kMnZ9llGbQ0bIRT5DsVHmgA7VuOrCt7IkFc1l4U8ezQUYgIxtWpT7QpTzDQRKQzOKYYeEKOwoZv7jWKE1ytExnHy6KRyXeklol4IkXXJlJoPMvAmH67qiRqTf0tcxzsZoK2Ss6iKBHIQshmm7q6bC2F98cedeaE0-5WapKsZWq-J7RGgZ-b7eaaJyohHY14-iXPeYaNEp5RRwanKb9vD-PXP5r6MvTjW89EDVDyZI2f-SM_Nc0lQg8um56TB1d1hbXYOu5jLv__GjDatsaUM8OcC0YgvixzuWjO-JkZg84dvS9EoeygPw33FgfxuFJrhrfIVbaLmK3Pf_0zFE2-Gf7_OK-7auRFO_PbQ2jkeViusQWwPUKfV4Ew0gpaRvXHLkdl5mkCnlxvg9ENHYi5p18hiP8K0c2HcJSDOIkxbMHHz43RzJtX3-LAAFxIcFFLr8GaRnzqfnOZvs07afm9ymUo4v4Tf8TwulTq1xhswtWVHABmIdrc0kOm2IWyPlYFEvNDS1jHJrZCtbs0wH13PeMDAHHrRNj13ThERQNi4icfJyJ9lKoZeATLLtDZ-PFK1GbGDHI7HcCfI6-2r6MZJ7ZVrjGtAJa0hVhymgK70GCJtnctV5OMzKGB0LSNlNnpt0v4TDpbzz9FLo1rjIPv-UNrH5Gmsbl7tKoW8fOniFJHkSakUpyfdiDzAqDy8NxPRggGPsz5Yuqc4YdL-EWqshUf_WhCmnK-D1QDfCLsNpxK8HQBbFMVSqH5nIo9Ey2D-eSU9Udgz2WWtSra-YPsy-GOZiYaJlt0__npOYfp86AkbuBKbhNnksoHes-S_mlLTxlW7Svc64QOAvSgunqlvaFjVrognkxHAsOuarNtay-o6SJkWcjkqJt3qK90tj3lSf_8_3EYVfCVCJCi-KVI0Cnln9AOmoLGw_lzKe3_AfUJzk569b8EsLzM2d6JFpdgn95fNWb7nVxRf_NIVonjlgyVPuuJcJzgDGlM-GruNfLwoVj81bBZrG4X5OMYEdhb7nAItOj3eio6dAWqPnAfxSlzlVoXCnl6fIDl5H64c_nrOGkE1FFCf-2_GSEby2fPawSNqFrJgkj2DIv9-I9ZP7nW6ONq9kCWEo1UchpXhl5KVLfoMEce18xJi8jgLC6lLewcru47oUX2UcY-urUrNVawY8s6JEiqnCnJ6PkU_HAo1HDL8Mo19tKXEaIakQXS5WKbCsyhviD08evyrv3ZFOUdFbHOuJ8WlKKWX20eg-bYUDzFghEDRsuJoP8d-9NTZ6vKWEniHgLkIrAh74bJKzpJQB5xBmeRPE6KjeUUbD9XcflDWa8Xvqb8q2dX_zr05oiB75lEwzemzITzWigRLhbbJSb23OrPgTEHTjoqEXb62suM6-tWZFyFKOtQgjLZpj5Fngrh4Axfx6hpznPedZ3o4bDY0IhlYoHLCaEk20GXMkre6gRfp9llmVJGtrPCoC_5P9ofKZrx253OSIF_DIWz5mmK3X4XUvb_kGL24eegRKL9JdYr_hmKCuMUB6YzBiK79X9Nx28O9I7j9zvJHwbYbEOoPqXyXfF4tC_psL.GJk49TeQyEpyH4Q2BwlvJ4ZzD5mLAOHjN7xjD7dcvdk&state=3625aa20-9cb3-48c6-83dd-6dde75733845&iss=https:%2F%2Fauthority.stella-ops.local%2F",
- "title": "Callback - StellaOps",
- "bodyText": "Stella Ops\ndefault\nf945f00811f44f008058268a264ed015\n\nCompleting sign-in…\n\nSecurely verifying your credentials",
+ "finalUrl": "https://stella-ops.local/connect/authorize?response_type=code&client_id=stella-ops-ui&redirect_uri=https%3A%2F%2Fstella-ops.local%2Fauth%2Fcallback&scope=openid+profile+email+offline_access+ui.read+ui.admin+ui.preferences.read+ui.preferences.write+authority%3Atenants.read+authority%3Atenants.write+authority%3Ausers.read+authority%3Ausers.write+authority%3Aroles.read+authority%3Aroles.write+authority%3Aclients.read+authority%3Aclients.write+authority%3Atokens.read+authority%3Atokens.revoke+authority%3Abranding.read+authority%3Abranding.write+authority.audit.read+graph%3Aread+sbom%3Aread+scanner%3Aread+policy%3Aread+policy%3Asimulate+policy%3Aauthor+policy%3Areview+policy%3Aapprove+policy%3Arun+policy%3Aactivate+policy%3Aaudit+policy%3Aedit+policy%3Aoperate+policy%3Apublish+airgap%3Aseal+airgap%3Astatus%3Aread+orch%3Aread+orch%3Aoperate+orch%3Aquota+analytics.read+advisory%3Aread+advisory-ai%3Aview+advisory-ai%3Aoperate+vex%3Aread+vexhub%3Aread+exceptions%3Aread+exceptions%3Aapprove+aoc%3Averify+findings%3Aread+release%3Aread+release%3Awrite+release%3Apublish+scheduler%3Aread+scheduler%3Aoperate+notify.viewer+notify.operator+notify.admin+notify.escalate+evidence%3Aread+export.viewer+export.operator+export.admin+vuln%3Aview+vuln%3Ainvestigate+vuln%3Aoperate+vuln%3Aaudit+platform.context.read+platform.context.write+doctor%3Arun+doctor%3Aadmin+ops.health+integration%3Aread+integration%3Awrite+integration%3Aoperate+packs.read+packs.write+packs.run+packs.approve+registry.admin+timeline%3Aread+timeline%3Awrite+trust%3Aread+trust%3Awrite+trust%3Aadmin+signer%3Aread+signer%3Asign+signer%3Arotate+signer%3Aadmin&state=1269a403-5e2c-4ba7-9948-44d0e6935ed0&nonce=57471c05-a18a-428d-8afa-07e2c7631ffc&code_challenge=wmOzukXEyXLpc_qKn1BqWu-ix7Wr6YqWoSubfYb8MOA&code_challenge_method=S256&audience=stella-ops-api",
+ "title": "Sign In — StellaOps",
+ "bodyText": "StellaOps\n\nSign in to continue\n\nInvalid username or password.\nUSERNAME\nPASSWORD\n Sign In",
"cookies": [],
"storage": {
- "localStorageEntries": [
- [
- "stellaops.auth.session.info",
- "{\"subject\":\"f945f00811f44f008058268a264ed015\",\"expiresAtEpochMs\":1776595090118,\"issuedAtEpochMs\":1776593289124,\"dpopKeyThumbprint\":\"knhtz_ieCuFgS2A6bYdUWWhbWQNMcly969VVWFBQoAA\",\"tenantId\":\"default\"}"
- ],
- [
- "stellaops.auth.session.full",
- "{\"tokens\":{\"accessToken\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjdLUks4OUw1UTNESkVQR09IV1NPSDNMVDktTVdNWVVJRS1aSU1VX1EiLCJ0eXAiOiJhdCtqd3QifQ.eyJpc3MiOiJodHRwczovL2F1dGhvcml0eS5zdGVsbGEtb3BzLmxvY2FsLyIsImV4cCI6MTc3NjU5NTA4OCwiaWF0IjoxNzc2NTkzMjg4LCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIG9mZmxpbmVfYWNjZXNzIHVpLnJlYWQgdWkuYWRtaW4gdWkucHJlZmVyZW5jZXMucmVhZCB1aS5wcmVmZXJlbmNlcy53cml0ZSBhdXRob3JpdHk6dGVuYW50cy5yZWFkIGF1dGhvcml0eTp0ZW5hbnRzLndyaXRlIGF1dGhvcml0eTp1c2Vycy5yZWFkIGF1dGhvcml0eTp1c2Vycy53cml0ZSBhdXRob3JpdHk6cm9sZXMucmVhZCBhdXRob3JpdHk6cm9sZXMud3JpdGUgYXV0aG9yaXR5OmNsaWVudHMucmVhZCBhdXRob3JpdHk6Y2xpZW50cy53cml0ZSBhdXRob3JpdHk6dG9rZW5zLnJlYWQgYXV0aG9yaXR5OnRva2Vucy5yZXZva2UgYXV0aG9yaXR5OmJyYW5kaW5nLnJlYWQgYXV0aG9yaXR5OmJyYW5kaW5nLndyaXRlIGF1dGhvcml0eS5hdWRpdC5yZWFkIGdyYXBoOnJlYWQgc2JvbTpyZWFkIHNjYW5uZXI6cmVhZCBwb2xpY3k6cmVhZCBwb2xpY3k6c2ltdWxhdGUgcG9saWN5OmF1dGhvciBwb2xpY3k6cmV2aWV3IHBvbGljeTphcHByb3ZlIHBvbGljeTpydW4gcG9saWN5OmFjdGl2YXRlIHBvbGljeTphdWRpdCBwb2xpY3k6ZWRpdCBwb2xpY3k6b3BlcmF0ZSBwb2xpY3k6cHVibGlzaCBhaXJnYXA6c2VhbCBhaXJnYXA6c3RhdHVzOnJlYWQgb3JjaDpyZWFkIG9yY2g6b3BlcmF0ZSBvcmNoOnF1b3RhIGFuYWx5dGljcy5yZWFkIGFkdmlzb3J5OnJlYWQgYWR2aXNvcnktYWk6dmlldyBhZHZpc29yeS1haTpvcGVyYXRlIHZleDpyZWFkIHZleGh1YjpyZWFkIGV4Y2VwdGlvbnM6cmVhZCBleGNlcHRpb25zOmFwcHJvdmUgYW9jOnZlcmlmeSBmaW5kaW5nczpyZWFkIHJlbGVhc2U6cmVhZCByZWxlYXNlOndyaXRlIHJlbGVhc2U6cHVibGlzaCBzY2hlZHVsZXI6cmVhZCBzY2hlZHVsZXI6b3BlcmF0ZSBub3RpZnkudmlld2VyIG5vdGlmeS5vcGVyYXRvciBub3RpZnkuYWRtaW4gbm90aWZ5LmVzY2FsYXRlIGV2aWRlbmNlOnJlYWQgZXhwb3J0LnZpZXdlciBleHBvcnQub3BlcmF0b3IgZXhwb3J0LmFkbWluIHZ1bG46dmlldyB2dWxuOmludmVzdGlnYXRlIHZ1bG46b3BlcmF0ZSB2dWxuOmF1ZGl0IHBsYXRmb3JtLmNvbnRleHQucmVhZCBwbGF0Zm9ybS5jb250ZXh0LndyaXRlIGRvY3RvcjpydW4gZG9jdG9yOmFkbWluIG9wcy5oZWFsdGggaW50ZWdyYXRpb246cmVhZCBpbnRlZ3JhdGlvbjp3cml0ZSBpbnRlZ3JhdGlvbjpvcGVyYXRlIHBhY2tzLnJlYWQgcGFja3Mud3JpdGUgcGFja3MucnVuIHBhY2tzLmFwcHJvdmUgcmVnaXN0cnkuYWRtaW4gdGltZWxpbmU6cmVhZCB0aW1lbGluZTp3cml0ZSB0cnVzdDpyZWFkIHRydXN0OndyaXRlIHRydXN0OmFkbWluIHNpZ25lcjpyZWFkIHNpZ25lcjpzaWduIHNpZ25lcjpyb3RhdGUgc2lnbmVyOmFkbWluIiwianRpIjoiZTk1MGE0NGUtZmMyZC00YTJkLWFkNDAtM2YwMmVjYjRiNjQ2Iiwic3ViIjoiZjk0NWYwMDgxMWY0NGYwMDgwNTgyNjhhMjY0ZWQwMTUiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiIsInJvbGUiOiJhZG1pbiIsInN0ZWxsYW9wczp0ZW5hbnQiOiJkZWZhdWx0IiwiYXV0aF90aW1lIjoxNzc2NTkzMjcyLCJvaV9wcnN0Ijoic3RlbGxhLW9wcy11aSIsImNsaWVudF9pZCI6InN0ZWxsYS1vcHMtdWkifQ.UQHuPO8JY_GQUzB-pPcos1eZJqPcbl3BaygXNnGUdlL1tz4C5P9PkHEPGH1LyNrJuPIzPSLI8Jx9vbXOF5VlTo2qfb2-NvalYkmuz8RTxDoevWpOfaFtoZLqWuOMy198pC_HKpxw6LMe9OxwRtN7n6OHB1jqGZWCmlJvEkWLvrrCqhIpnvFLcuC6l1Q54S2DFTEw1ahMYKMMmwtAFqAnfY5IPIZAdVJ9t7Ax8-Jski3vteSf1z-YIrdpEzEUv-5SXqNsgeNhHcE7-cdujOb4CMJsK4cLvBBZd2miZBkbRHs9ass19hXFPxhv4PgjuyrD9FNy2xzvPevbc2ykuvf6hw\",\"tokenType\":\"Bearer\",\"refreshToken\":\"eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZDQkMtSFM1MTIiLCJraWQiOiJZV0pPRVlCSzU3UEpSQTFTSFhFWkM3NEFRQktRWFdEQjZaWlVPV0dVIiwidHlwIjoib2lfcmVmdCtqd3QiLCJjdHkiOiJKV1QifQ.J7ia8dvkcB0Bs0Z7yx_-BwUPECUq397tiuUOpc-tGIdWSNs9CvHHRj_yPGlU06Fmpr1bkelR5wpD7jy_8f-xc1OZmOWVCk4qrJSoCB_VhA8M5rf28xbLswNhj2OhP5_Lj9b9obaqzWwpLNAPl4wDaJBgOPW5hYNoVsoDcAZH3DB4jeALVLu6J7B3q5BLNAw-QRIgaEF7z8uutLrvs8-Dv0PgI-XcEGKQonmlml079_5jKEkKdiEAVCionn-2ksFkvLcDhK8DkDuPTvieHmnnz6Oi55XlBjlOr6-w_zV_3VA7L0zHozTKDFMUaVPqpU2rZU1ggA-hGMkb1zoBddoYiw.yFzbv7Vg3lA28Fu7wpT0Vg.TgCK7wAm6_JSQgq5ZL2YGNfNRNbAfsjx2_8WqtNwjRFiXg-dJt3OrOIljaz8bGivi3QLBOuyCrG4z_UXBITf5gcWd--BlW_XG8tvRfyXRFp9JsJqWxFl4_CwNZZNBCQpZVAy8g_oNSDhQhOyCW_rKK12GuRRv7swXkJKqkwTBLmAcHP6u-ewPheFufWSqWtf_-l1JdvaM69GoSOeiU9fx9ZWZabq2bKu8v1CM5D9_xVqq-RzKNP_DefvAn-nsElnNmVaTlKNmnu1R3K93mKorvL6aOpE1QtEzAkPyzEu7vrV3bJcoVv8YKHnJKuO7zT6gXJe5WHtcJDgHGjdjQd_Ca-fQ2nDaDk7PXmbOL8gLOUZRf1duuN5DAvlKqCehMEil_luv9w9aUX7dgHgZq3cJu6hM68Gr_TuPdCpPlQauTEyO81dFMD4ACNTwDWrnHpL36ChOl4znQ_gXjUS07T3ls8cG4FFu3v84FDUSJBPDjUIFoNZ5aR2LHrR8K5JhROb4fwu4wQf_EQPeNBTnMfmm_TeeSJUGkx7U2vD2IAPm_r3UgAmt9lS2ry4t8Xk8Alzg32ijARHAC8Tgu301p6RH0MgmbllwGbNBH1AwTyabytngpfda0Nu37NzKPZHha4AdotX4GjVKBXqA0TRzmgQR9Y_crlmQbjdGNselt7DD_OUpVgIX6uU4pnf2YoiyhAE6LwmFvLyAElgEf7d2rYe1q_Nb_rYerSWf4E73I2nwlsHs7Rcq9C3_z2y5mb35bMLj8chOiRAlW7rY5g2G6ybwAEz0RiUgxgULk6VHbfZgAoBHnCG0yB6hjbYjIrpA3bg3LJhHPcZGER8kU6p9bAZx5zR7AQ9xoO0wrwTQiyuHFRgHct2YYQqvjewzw8oDRsjx_jiNKg38vyXgccZgCVgSjQF6-xQYu-6-GU0CgNzgjPdl9UuQW4cN_ewwb5S9MZWcMPNXGKsyuG_hDemD1-n3B2bXyx2RaXi8c_QRWVj8BMY0cmTBiAvm-dPacbj4Gqk1SU7sqR-yyAH9L9MkSx0ok9p7VvvwjbPmXSfY8Savvls0ziWJOld21vPKDVbKD8PVWDWOKTsSSGbWXIyJTSVWfULDk3i2UjysL5JOhtcZrKokj3ERHvZKHMNMqckHz_MM-nRfS6aItguhBz8anl73WRcE9vTDdmAUUjP-XFyb_BG7ZZ545CTR9UUB3LQAPbbMQkFpmSUtdGvb4lL2AOWfQNMY9dpCkC7SlS4XDYDYcKe5rzjbNhG3cHfgvPxFkyygj5-JZ3hjIPpqytBl2omD3IQ05uRTWcvPLPc22FVb2E7UTDzOFASWTyKbfT9lBFNDemOQrw5EtNUYuc5RPKxUx0Uj_NFWiXjuxTmjl1db3ka-wWwQIEuUlQ4XACo7tWgJQNHN9VbAIobImoOMRB4K4JNN9ekJ4R2Mn_Zcz8B85Zjxn1ajwtmUyTszCPpXKorRG3eMR1kPFJO5eoYWFs1TLlXIAQYtv9niv-NitzVoOmAYkcanVB0hfN9q-g8hCRV4YvgjJzFQtcKcKSkaTFMYuB2wNT0yfag_nSpZM15aClopt1aFcEb2BaLZ3KgHxiAnU-3M3FjIgp4PK4XbT-shJJO3EsYDRtFpYLQZSaWuIopd3PheQNOIQCX_-__giM7xB7zOTv5NUkO5kzDWxRdMtbxua7jf6Xh_R715K0feg7WXu_t0GI-0E1E5AhzIqfSHOn4LDqi4muG4TMLtAt7qHbHgLOHrGvWUTWm65rKWo3rSCH_bb8mM_qRq5wRrxNjgWP-389Z7w2uTwvuqHlyrk9_5F16zcTBFYsrdsyNpsdNetv0B9_ukaBR8pZhHmqcwjKN8mwBdcxk7aSieUhSzLQ5WyZoaV0i0JKHeGX9uhjQEzZ2PjzHmP0UUEqc_lxpxLIm67p7wkT-Qf988PwqzUOqNLbXy-7KHkB9HeJMxWHRpNTo85hsCw3580E7oC5je4rDmzPSb8IPgLylZzwT3zA9We4K2kJWxv14hPLPbbRn3R0bhmx3FrAjrfiC14Rc7mrMdFatWI5kWk9H-QHhlIdOhlfmGMDmZdgxecsQqYUNAp-S2KH97KX5G8UqSVPaT8VJWz6KIAegjlo4-mJDOmyhAYELlsX1eNceO8RsY1mreb0JSXxuE1L_E0KrqfXKlqaIxZptlwtbFYKUo0A9lhImct9W0CyzRUNoPSk9efy1RUIYMwITMyzhfSYWOBPqEH3O3fbS_TOG7K2BrLC5_0HpATFMp3kWIZIPREvGfwNSHUrMVhNdukewix3zxdfGRsE2bG1C2xBIWnRHsdKcZa_DoLf6EHomz9OlGnYsrqtBV3vB6MzDGgb4Es6A9HTxynhtEEaTeuO_BAEmGuPBYGmNfaE8cx37LmRL33nK9v9zQvlaqSmeJeE53G_tTNsv98aDR9dtWlJgsIU5U9lTwepYSz6unzUf3-e0yDO0sE1nmyGIqvknAO6bxhPfmTE9xDQTZyU0YVjAL6XfOeQidaconqfh9DEFfqKxfbskymACi2WSE_4YjJYlEw1gfn-w3t5yggj8mQ7jeH_rWY6mxb7kaNFvMoVjUaqaJxtoGZEsgQVd0K3eFoAMC4tfzbX9oGwKNr-27e_5DbugDqlunZLBchhlM5o5gsBQqv3-JNk69erVOKWctI79yTIIUoKWtxqlLMMVSo2dcIb2TthKyyk0XKnKs7nLxT5lSsOJ3K8qeA8bF8_ikEi9YLnp88EoQOp-O7VEQ6JOgDy9Kv_NlV_jYrBpjJZsNe2kGzaTpw0Nf7ncfLvc90CsdcWylJTN_s9do2vJtpP1Kwa-nc8hdLqTyrt5G_oImjy62qcvDWE-G6bLjLGXkIcmAE-Lic_AXk7Fy86u6fxKs3pSDQK03zKOmsethMJ3meOz6mmjH4e2kcsK8V1UVJtffbW0h1dhv9aT96ODpL50udZUkyyk_iJVnEqhFJ6-ayHBGUVjBHrK5T1FbG7P0PoI7uTHkpYnRkqr9LOUBBdtBE6W0evjgWLLlVVjvK-QyDaVmLzY5YsU_nHwHOUB0n-iqPbsgf6Pnu0-e7qf081jXSr7LRnt8lB2BY1CwGWdnDVdapM4vjVxa7Kg4thKbm_ktcwtPJAUiXn_JkV7OF6M4YX2-N32JN6-3EKW5e9wnig-xjo4XjNEKFQ5Ln40iK2KjKfkLBbyRmhE1v3d7YON-uIAff0yI2ip4X_nW-PTOydWFcsgRcGOUR4VArzfZHKl17J8fSwJM4EGfE56do70PaAUcy1yHZfklIlZ-dvUQJEqkY6zqMdeZGtI0JAaIBi5vnNiXFWhXf2jZ8t9MpHq37w96CguhnV4pDoT9W3MsOqiJxTC256FDj-zWbfx7FDDPJ-VmtDnJjY2SluPLR4YRwLVcNLlhbjzAv2qaw1TrmNh_TBNPs0qLypdRpKMYyrjaLtLRoEjkFfR8nmt_5DR8X6GgcU2O55lFEn8Uzz9LqeLeaWaGuHQJqFQboY8tdVHvV8R9ijTRzG-P3vSWX6K8F9Y7FAbm25MJwWEJf6VWaHLDKY-wxs6OPdSBOdK--zWfNeRHg4gCt_L1Rk0j81PslGKe71cthqy8E4yIJErXWczUtcKx0pT4gynkT0viifpvisyTeXpW9_0gTKG6b71FFConwwomUwpZpoY0nO7xc4PT07Ph6f4FpgjkOtIWCukBf-LXwhaio_bAYQL34GPFusr92AypxO_9ZHkcY-SYt3H02PkjdDazert9k_XCSkahdiWnmYtC-2yDY8we-H1OHD4XyQbb2ReMRo9hMSrWv3StwSlHDJO0FT_TSHzWJnRk2rJPpoxaCnY53zfCkzsiViVrE5m4Ys3pBQBpIUQFcUNqmEt3d6-vuissmQAsEb9oBpmWaqC3cGV-6qz-uFD47VUYii7_3HDxtkc23FbcItpLKn0ECL2bf8AVbmou7qwI4KBU3R_tSI-DQtlms1tSpA4Bs1X6Z30a4wsl1nn4DEHC2Ln4lJ6CKixZaElcHlueDL-bUo13X5onWnP3xuhMdBBBpQcR_UidK3WPNfOKdsrrSmit6zyLJHX4CXA07LC__BzW8ZFX2IHQiXsxbMD7CN8tyiayPi-iDj25No-bCvWLV0SRQf_rB2Gt0tvObDHr4gNW6hCI1KRaBlKVfh5y5XfrNu8eFJW0KAi1Cxl4IKBQooS7DgbVRdt17EuOeR9AHrd7h5TqtV2UL5GzH-_n_02CzU47pZ3CACHQfbXVWpW11-YQo112p0P1gXb_kgpsSfxktzg9RofQ6Y1uAX84AkFyUw3Y1T50MBZR27XNq7WA1ovhaheEqvgfDL-kmLfqBoQl6OZ5b6L433rC0HKRQV5JtKxoulOEckKGIL7NAss6-ogKq582M3rkMjFuppcpKKZR_ix8lhAXLzniJMHqpxnyhuUK5mMAG_CzOSTlL-YSL2VWjMs3gmzOjqTAcs-JiRMzD_eMEsCoLSZ_otth8Aw4_Cj6tISca62_OFNPGvtcGCuGeNDsIxmx2doWXJ65yuAR2BekymdBe1tTiUWE9FrUCXZt20DxZB4eVvOAYainfUwPR-GKhHQXSHqVLcg-O45BaUHJ1Se_eXEJy2fSNaKOjfD_M2XVSUR_xo0LC9nUGzVBmY.3_UfBuwJIBsAgxZEYYD1TG0u_JsZbiZDqPwdoP-3_8E\",\"scope\":\"openid profile email offline_access ui.read ui.admin ui.preferences.read ui.preferences.write authority:tenants.read authority:tenants.write authority:users.read authority:users.write authority:roles.read authority:roles.write authority:clients.read authority:clients.write authority:tokens.read authority:tokens.revoke authority:branding.read authority:branding.write authority.audit.read graph:read sbom:read scanner:read policy:read policy:simulate policy:author policy:review policy:approve policy:run policy:activate policy:audit policy:edit policy:operate policy:publish airgap:seal airgap:status:read orch:read orch:operate orch:quota analytics.read advisory:read advisory-ai:view advisory-ai:operate vex:read vexhub:read exceptions:read exceptions:approve aoc:verify findings:read release:read release:write release:publish scheduler:read scheduler:operate notify.viewer notify.operator notify.admin notify.escalate evidence:read export.viewer export.operator export.admin vuln:view vuln:investigate vuln:operate vuln:audit platform.context.read platform.context.write doctor:run doctor:admin ops.health integration:read integration:write integration:operate packs.read packs.write packs.run packs.approve registry.admin timeline:read timeline:write trust:read trust:write trust:admin signer:read signer:sign signer:rotate signer:admin\",\"expiresAtEpochMs\":1776595090118},\"identity\":{\"subject\":\"f945f00811f44f008058268a264ed015\",\"roles\":[],\"idToken\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjdLUks4OUw1UTNESkVQR09IV1NPSDNMVDktTVdNWVVJRS1aSU1VX1EiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2F1dGhvcml0eS5zdGVsbGEtb3BzLmxvY2FsLyIsImV4cCI6MTc3NjU5NjU4OCwiaWF0IjoxNzc2NTkzMjg4LCJhdWQiOiJzdGVsbGEtb3BzLXVpIiwic3ViIjoiZjk0NWYwMDgxMWY0NGYwMDgwNTgyNjhhMjY0ZWQwMTUiLCJhenAiOiJzdGVsbGEtb3BzLXVpIiwibm9uY2UiOiIyNGNiYWZhNS03ZDNhLTQ0ZDMtODgzNy00NTIyYTQyOTk0NzUiLCJhdF9oYXNoIjoiSzZqRXhqdDFmMFZZVlVtbWF6T09JQSJ9.EcbkBfurdz6gfBT_5_TP6vz2aNARKP5BiEhDoBKkY4esokvWoCxPQfT6NozP4sEde-lofT4W1w1GNavRDO7QN51C6YFM25DplqcX_QWGC_UhinUd2w_WkNtzYRDjVdpTMI7gnEch77IZ0pKAKaSTNwSTLIeGG-q-SZr1M_HiIjbG0x2-kzwolGrXxVuA5XXQbWNoFW0W9PdFKpz6SNicVi_D3WM2rvRkSF_-gZ4byilC7uIZ-o45HllQceM1EAlUObQMG01b-XDMaFCAY243GY0NzRZ2pgvPD6X6SuZPtAAzBPWGm71EU2w_DyVlZt7hTGyKl-SGt_hwSrXMQ1oDdA\"},\"dpopKeyThumbprint\":\"knhtz_ieCuFgS2A6bYdUWWhbWQNMcly969VVWFBQoAA\",\"issuedAtEpochMs\":1776593289124,\"tenantId\":\"default\",\"scopes\":[\"advisory-ai:operate\",\"advisory-ai:view\",\"advisory:read\",\"airgap:seal\",\"airgap:status:read\",\"analytics.read\",\"aoc:verify\",\"authority.audit.read\",\"authority:branding.read\",\"authority:branding.write\",\"authority:clients.read\",\"authority:clients.write\",\"authority:roles.read\",\"authority:roles.write\",\"authority:tenants.read\",\"authority:tenants.write\",\"authority:tokens.read\",\"authority:tokens.revoke\",\"authority:users.read\",\"authority:users.write\",\"doctor:admin\",\"doctor:run\",\"email\",\"evidence:read\",\"exceptions:approve\",\"exceptions:read\",\"export.admin\",\"export.operator\",\"export.viewer\",\"findings:read\",\"graph:read\",\"integration:operate\",\"integration:read\",\"integration:write\",\"notify.admin\",\"notify.escalate\",\"notify.operator\",\"notify.viewer\",\"offline_access\",\"openid\",\"ops.health\",\"orch:operate\",\"orch:quota\",\"orch:read\",\"packs.approve\",\"packs.read\",\"packs.run\",\"packs.write\",\"platform.context.read\",\"platform.context.write\",\"policy:activate\",\"policy:approve\",\"policy:audit\",\"policy:author\",\"policy:edit\",\"policy:operate\",\"policy:publish\",\"policy:read\",\"policy:review\",\"policy:run\",\"policy:simulate\",\"profile\",\"registry.admin\",\"release:publish\",\"release:read\",\"release:write\",\"sbom:read\",\"scanner:read\",\"scheduler:operate\",\"scheduler:read\",\"signer:admin\",\"signer:read\",\"signer:rotate\",\"signer:sign\",\"timeline:read\",\"timeline:write\",\"trust:admin\",\"trust:read\",\"trust:write\",\"ui.admin\",\"ui.preferences.read\",\"ui.preferences.write\",\"ui.read\",\"vex:read\",\"vexhub:read\",\"vuln:audit\",\"vuln:investigate\",\"vuln:operate\",\"vuln:view\"],\"audiences\":[],\"authenticationTimeEpochMs\":1776593272000,\"freshAuthActive\":false,\"freshAuthExpiresAtEpochMs\":null}"
- ],
- [
- "stellaops.theme",
- "system"
- ]
- ],
+ "localStorageEntries": [],
"sessionStorageEntries": [
[
- "stellaops.auth.session.full",
- "{\"tokens\":{\"accessToken\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjdLUks4OUw1UTNESkVQR09IV1NPSDNMVDktTVdNWVVJRS1aSU1VX1EiLCJ0eXAiOiJhdCtqd3QifQ.eyJpc3MiOiJodHRwczovL2F1dGhvcml0eS5zdGVsbGEtb3BzLmxvY2FsLyIsImV4cCI6MTc3NjU5NTA4OCwiaWF0IjoxNzc2NTkzMjg4LCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIG9mZmxpbmVfYWNjZXNzIHVpLnJlYWQgdWkuYWRtaW4gdWkucHJlZmVyZW5jZXMucmVhZCB1aS5wcmVmZXJlbmNlcy53cml0ZSBhdXRob3JpdHk6dGVuYW50cy5yZWFkIGF1dGhvcml0eTp0ZW5hbnRzLndyaXRlIGF1dGhvcml0eTp1c2Vycy5yZWFkIGF1dGhvcml0eTp1c2Vycy53cml0ZSBhdXRob3JpdHk6cm9sZXMucmVhZCBhdXRob3JpdHk6cm9sZXMud3JpdGUgYXV0aG9yaXR5OmNsaWVudHMucmVhZCBhdXRob3JpdHk6Y2xpZW50cy53cml0ZSBhdXRob3JpdHk6dG9rZW5zLnJlYWQgYXV0aG9yaXR5OnRva2Vucy5yZXZva2UgYXV0aG9yaXR5OmJyYW5kaW5nLnJlYWQgYXV0aG9yaXR5OmJyYW5kaW5nLndyaXRlIGF1dGhvcml0eS5hdWRpdC5yZWFkIGdyYXBoOnJlYWQgc2JvbTpyZWFkIHNjYW5uZXI6cmVhZCBwb2xpY3k6cmVhZCBwb2xpY3k6c2ltdWxhdGUgcG9saWN5OmF1dGhvciBwb2xpY3k6cmV2aWV3IHBvbGljeTphcHByb3ZlIHBvbGljeTpydW4gcG9saWN5OmFjdGl2YXRlIHBvbGljeTphdWRpdCBwb2xpY3k6ZWRpdCBwb2xpY3k6b3BlcmF0ZSBwb2xpY3k6cHVibGlzaCBhaXJnYXA6c2VhbCBhaXJnYXA6c3RhdHVzOnJlYWQgb3JjaDpyZWFkIG9yY2g6b3BlcmF0ZSBvcmNoOnF1b3RhIGFuYWx5dGljcy5yZWFkIGFkdmlzb3J5OnJlYWQgYWR2aXNvcnktYWk6dmlldyBhZHZpc29yeS1haTpvcGVyYXRlIHZleDpyZWFkIHZleGh1YjpyZWFkIGV4Y2VwdGlvbnM6cmVhZCBleGNlcHRpb25zOmFwcHJvdmUgYW9jOnZlcmlmeSBmaW5kaW5nczpyZWFkIHJlbGVhc2U6cmVhZCByZWxlYXNlOndyaXRlIHJlbGVhc2U6cHVibGlzaCBzY2hlZHVsZXI6cmVhZCBzY2hlZHVsZXI6b3BlcmF0ZSBub3RpZnkudmlld2VyIG5vdGlmeS5vcGVyYXRvciBub3RpZnkuYWRtaW4gbm90aWZ5LmVzY2FsYXRlIGV2aWRlbmNlOnJlYWQgZXhwb3J0LnZpZXdlciBleHBvcnQub3BlcmF0b3IgZXhwb3J0LmFkbWluIHZ1bG46dmlldyB2dWxuOmludmVzdGlnYXRlIHZ1bG46b3BlcmF0ZSB2dWxuOmF1ZGl0IHBsYXRmb3JtLmNvbnRleHQucmVhZCBwbGF0Zm9ybS5jb250ZXh0LndyaXRlIGRvY3RvcjpydW4gZG9jdG9yOmFkbWluIG9wcy5oZWFsdGggaW50ZWdyYXRpb246cmVhZCBpbnRlZ3JhdGlvbjp3cml0ZSBpbnRlZ3JhdGlvbjpvcGVyYXRlIHBhY2tzLnJlYWQgcGFja3Mud3JpdGUgcGFja3MucnVuIHBhY2tzLmFwcHJvdmUgcmVnaXN0cnkuYWRtaW4gdGltZWxpbmU6cmVhZCB0aW1lbGluZTp3cml0ZSB0cnVzdDpyZWFkIHRydXN0OndyaXRlIHRydXN0OmFkbWluIHNpZ25lcjpyZWFkIHNpZ25lcjpzaWduIHNpZ25lcjpyb3RhdGUgc2lnbmVyOmFkbWluIiwianRpIjoiZTk1MGE0NGUtZmMyZC00YTJkLWFkNDAtM2YwMmVjYjRiNjQ2Iiwic3ViIjoiZjk0NWYwMDgxMWY0NGYwMDgwNTgyNjhhMjY0ZWQwMTUiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiIsInJvbGUiOiJhZG1pbiIsInN0ZWxsYW9wczp0ZW5hbnQiOiJkZWZhdWx0IiwiYXV0aF90aW1lIjoxNzc2NTkzMjcyLCJvaV9wcnN0Ijoic3RlbGxhLW9wcy11aSIsImNsaWVudF9pZCI6InN0ZWxsYS1vcHMtdWkifQ.UQHuPO8JY_GQUzB-pPcos1eZJqPcbl3BaygXNnGUdlL1tz4C5P9PkHEPGH1LyNrJuPIzPSLI8Jx9vbXOF5VlTo2qfb2-NvalYkmuz8RTxDoevWpOfaFtoZLqWuOMy198pC_HKpxw6LMe9OxwRtN7n6OHB1jqGZWCmlJvEkWLvrrCqhIpnvFLcuC6l1Q54S2DFTEw1ahMYKMMmwtAFqAnfY5IPIZAdVJ9t7Ax8-Jski3vteSf1z-YIrdpEzEUv-5SXqNsgeNhHcE7-cdujOb4CMJsK4cLvBBZd2miZBkbRHs9ass19hXFPxhv4PgjuyrD9FNy2xzvPevbc2ykuvf6hw\",\"tokenType\":\"Bearer\",\"refreshToken\":\"eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZDQkMtSFM1MTIiLCJraWQiOiJZV0pPRVlCSzU3UEpSQTFTSFhFWkM3NEFRQktRWFdEQjZaWlVPV0dVIiwidHlwIjoib2lfcmVmdCtqd3QiLCJjdHkiOiJKV1QifQ.J7ia8dvkcB0Bs0Z7yx_-BwUPECUq397tiuUOpc-tGIdWSNs9CvHHRj_yPGlU06Fmpr1bkelR5wpD7jy_8f-xc1OZmOWVCk4qrJSoCB_VhA8M5rf28xbLswNhj2OhP5_Lj9b9obaqzWwpLNAPl4wDaJBgOPW5hYNoVsoDcAZH3DB4jeALVLu6J7B3q5BLNAw-QRIgaEF7z8uutLrvs8-Dv0PgI-XcEGKQonmlml079_5jKEkKdiEAVCionn-2ksFkvLcDhK8DkDuPTvieHmnnz6Oi55XlBjlOr6-w_zV_3VA7L0zHozTKDFMUaVPqpU2rZU1ggA-hGMkb1zoBddoYiw.yFzbv7Vg3lA28Fu7wpT0Vg.TgCK7wAm6_JSQgq5ZL2YGNfNRNbAfsjx2_8WqtNwjRFiXg-dJt3OrOIljaz8bGivi3QLBOuyCrG4z_UXBITf5gcWd--BlW_XG8tvRfyXRFp9JsJqWxFl4_CwNZZNBCQpZVAy8g_oNSDhQhOyCW_rKK12GuRRv7swXkJKqkwTBLmAcHP6u-ewPheFufWSqWtf_-l1JdvaM69GoSOeiU9fx9ZWZabq2bKu8v1CM5D9_xVqq-RzKNP_DefvAn-nsElnNmVaTlKNmnu1R3K93mKorvL6aOpE1QtEzAkPyzEu7vrV3bJcoVv8YKHnJKuO7zT6gXJe5WHtcJDgHGjdjQd_Ca-fQ2nDaDk7PXmbOL8gLOUZRf1duuN5DAvlKqCehMEil_luv9w9aUX7dgHgZq3cJu6hM68Gr_TuPdCpPlQauTEyO81dFMD4ACNTwDWrnHpL36ChOl4znQ_gXjUS07T3ls8cG4FFu3v84FDUSJBPDjUIFoNZ5aR2LHrR8K5JhROb4fwu4wQf_EQPeNBTnMfmm_TeeSJUGkx7U2vD2IAPm_r3UgAmt9lS2ry4t8Xk8Alzg32ijARHAC8Tgu301p6RH0MgmbllwGbNBH1AwTyabytngpfda0Nu37NzKPZHha4AdotX4GjVKBXqA0TRzmgQR9Y_crlmQbjdGNselt7DD_OUpVgIX6uU4pnf2YoiyhAE6LwmFvLyAElgEf7d2rYe1q_Nb_rYerSWf4E73I2nwlsHs7Rcq9C3_z2y5mb35bMLj8chOiRAlW7rY5g2G6ybwAEz0RiUgxgULk6VHbfZgAoBHnCG0yB6hjbYjIrpA3bg3LJhHPcZGER8kU6p9bAZx5zR7AQ9xoO0wrwTQiyuHFRgHct2YYQqvjewzw8oDRsjx_jiNKg38vyXgccZgCVgSjQF6-xQYu-6-GU0CgNzgjPdl9UuQW4cN_ewwb5S9MZWcMPNXGKsyuG_hDemD1-n3B2bXyx2RaXi8c_QRWVj8BMY0cmTBiAvm-dPacbj4Gqk1SU7sqR-yyAH9L9MkSx0ok9p7VvvwjbPmXSfY8Savvls0ziWJOld21vPKDVbKD8PVWDWOKTsSSGbWXIyJTSVWfULDk3i2UjysL5JOhtcZrKokj3ERHvZKHMNMqckHz_MM-nRfS6aItguhBz8anl73WRcE9vTDdmAUUjP-XFyb_BG7ZZ545CTR9UUB3LQAPbbMQkFpmSUtdGvb4lL2AOWfQNMY9dpCkC7SlS4XDYDYcKe5rzjbNhG3cHfgvPxFkyygj5-JZ3hjIPpqytBl2omD3IQ05uRTWcvPLPc22FVb2E7UTDzOFASWTyKbfT9lBFNDemOQrw5EtNUYuc5RPKxUx0Uj_NFWiXjuxTmjl1db3ka-wWwQIEuUlQ4XACo7tWgJQNHN9VbAIobImoOMRB4K4JNN9ekJ4R2Mn_Zcz8B85Zjxn1ajwtmUyTszCPpXKorRG3eMR1kPFJO5eoYWFs1TLlXIAQYtv9niv-NitzVoOmAYkcanVB0hfN9q-g8hCRV4YvgjJzFQtcKcKSkaTFMYuB2wNT0yfag_nSpZM15aClopt1aFcEb2BaLZ3KgHxiAnU-3M3FjIgp4PK4XbT-shJJO3EsYDRtFpYLQZSaWuIopd3PheQNOIQCX_-__giM7xB7zOTv5NUkO5kzDWxRdMtbxua7jf6Xh_R715K0feg7WXu_t0GI-0E1E5AhzIqfSHOn4LDqi4muG4TMLtAt7qHbHgLOHrGvWUTWm65rKWo3rSCH_bb8mM_qRq5wRrxNjgWP-389Z7w2uTwvuqHlyrk9_5F16zcTBFYsrdsyNpsdNetv0B9_ukaBR8pZhHmqcwjKN8mwBdcxk7aSieUhSzLQ5WyZoaV0i0JKHeGX9uhjQEzZ2PjzHmP0UUEqc_lxpxLIm67p7wkT-Qf988PwqzUOqNLbXy-7KHkB9HeJMxWHRpNTo85hsCw3580E7oC5je4rDmzPSb8IPgLylZzwT3zA9We4K2kJWxv14hPLPbbRn3R0bhmx3FrAjrfiC14Rc7mrMdFatWI5kWk9H-QHhlIdOhlfmGMDmZdgxecsQqYUNAp-S2KH97KX5G8UqSVPaT8VJWz6KIAegjlo4-mJDOmyhAYELlsX1eNceO8RsY1mreb0JSXxuE1L_E0KrqfXKlqaIxZptlwtbFYKUo0A9lhImct9W0CyzRUNoPSk9efy1RUIYMwITMyzhfSYWOBPqEH3O3fbS_TOG7K2BrLC5_0HpATFMp3kWIZIPREvGfwNSHUrMVhNdukewix3zxdfGRsE2bG1C2xBIWnRHsdKcZa_DoLf6EHomz9OlGnYsrqtBV3vB6MzDGgb4Es6A9HTxynhtEEaTeuO_BAEmGuPBYGmNfaE8cx37LmRL33nK9v9zQvlaqSmeJeE53G_tTNsv98aDR9dtWlJgsIU5U9lTwepYSz6unzUf3-e0yDO0sE1nmyGIqvknAO6bxhPfmTE9xDQTZyU0YVjAL6XfOeQidaconqfh9DEFfqKxfbskymACi2WSE_4YjJYlEw1gfn-w3t5yggj8mQ7jeH_rWY6mxb7kaNFvMoVjUaqaJxtoGZEsgQVd0K3eFoAMC4tfzbX9oGwKNr-27e_5DbugDqlunZLBchhlM5o5gsBQqv3-JNk69erVOKWctI79yTIIUoKWtxqlLMMVSo2dcIb2TthKyyk0XKnKs7nLxT5lSsOJ3K8qeA8bF8_ikEi9YLnp88EoQOp-O7VEQ6JOgDy9Kv_NlV_jYrBpjJZsNe2kGzaTpw0Nf7ncfLvc90CsdcWylJTN_s9do2vJtpP1Kwa-nc8hdLqTyrt5G_oImjy62qcvDWE-G6bLjLGXkIcmAE-Lic_AXk7Fy86u6fxKs3pSDQK03zKOmsethMJ3meOz6mmjH4e2kcsK8V1UVJtffbW0h1dhv9aT96ODpL50udZUkyyk_iJVnEqhFJ6-ayHBGUVjBHrK5T1FbG7P0PoI7uTHkpYnRkqr9LOUBBdtBE6W0evjgWLLlVVjvK-QyDaVmLzY5YsU_nHwHOUB0n-iqPbsgf6Pnu0-e7qf081jXSr7LRnt8lB2BY1CwGWdnDVdapM4vjVxa7Kg4thKbm_ktcwtPJAUiXn_JkV7OF6M4YX2-N32JN6-3EKW5e9wnig-xjo4XjNEKFQ5Ln40iK2KjKfkLBbyRmhE1v3d7YON-uIAff0yI2ip4X_nW-PTOydWFcsgRcGOUR4VArzfZHKl17J8fSwJM4EGfE56do70PaAUcy1yHZfklIlZ-dvUQJEqkY6zqMdeZGtI0JAaIBi5vnNiXFWhXf2jZ8t9MpHq37w96CguhnV4pDoT9W3MsOqiJxTC256FDj-zWbfx7FDDPJ-VmtDnJjY2SluPLR4YRwLVcNLlhbjzAv2qaw1TrmNh_TBNPs0qLypdRpKMYyrjaLtLRoEjkFfR8nmt_5DR8X6GgcU2O55lFEn8Uzz9LqeLeaWaGuHQJqFQboY8tdVHvV8R9ijTRzG-P3vSWX6K8F9Y7FAbm25MJwWEJf6VWaHLDKY-wxs6OPdSBOdK--zWfNeRHg4gCt_L1Rk0j81PslGKe71cthqy8E4yIJErXWczUtcKx0pT4gynkT0viifpvisyTeXpW9_0gTKG6b71FFConwwomUwpZpoY0nO7xc4PT07Ph6f4FpgjkOtIWCukBf-LXwhaio_bAYQL34GPFusr92AypxO_9ZHkcY-SYt3H02PkjdDazert9k_XCSkahdiWnmYtC-2yDY8we-H1OHD4XyQbb2ReMRo9hMSrWv3StwSlHDJO0FT_TSHzWJnRk2rJPpoxaCnY53zfCkzsiViVrE5m4Ys3pBQBpIUQFcUNqmEt3d6-vuissmQAsEb9oBpmWaqC3cGV-6qz-uFD47VUYii7_3HDxtkc23FbcItpLKn0ECL2bf8AVbmou7qwI4KBU3R_tSI-DQtlms1tSpA4Bs1X6Z30a4wsl1nn4DEHC2Ln4lJ6CKixZaElcHlueDL-bUo13X5onWnP3xuhMdBBBpQcR_UidK3WPNfOKdsrrSmit6zyLJHX4CXA07LC__BzW8ZFX2IHQiXsxbMD7CN8tyiayPi-iDj25No-bCvWLV0SRQf_rB2Gt0tvObDHr4gNW6hCI1KRaBlKVfh5y5XfrNu8eFJW0KAi1Cxl4IKBQooS7DgbVRdt17EuOeR9AHrd7h5TqtV2UL5GzH-_n_02CzU47pZ3CACHQfbXVWpW11-YQo112p0P1gXb_kgpsSfxktzg9RofQ6Y1uAX84AkFyUw3Y1T50MBZR27XNq7WA1ovhaheEqvgfDL-kmLfqBoQl6OZ5b6L433rC0HKRQV5JtKxoulOEckKGIL7NAss6-ogKq582M3rkMjFuppcpKKZR_ix8lhAXLzniJMHqpxnyhuUK5mMAG_CzOSTlL-YSL2VWjMs3gmzOjqTAcs-JiRMzD_eMEsCoLSZ_otth8Aw4_Cj6tISca62_OFNPGvtcGCuGeNDsIxmx2doWXJ65yuAR2BekymdBe1tTiUWE9FrUCXZt20DxZB4eVvOAYainfUwPR-GKhHQXSHqVLcg-O45BaUHJ1Se_eXEJy2fSNaKOjfD_M2XVSUR_xo0LC9nUGzVBmY.3_UfBuwJIBsAgxZEYYD1TG0u_JsZbiZDqPwdoP-3_8E\",\"scope\":\"openid profile email offline_access ui.read ui.admin ui.preferences.read ui.preferences.write authority:tenants.read authority:tenants.write authority:users.read authority:users.write authority:roles.read authority:roles.write authority:clients.read authority:clients.write authority:tokens.read authority:tokens.revoke authority:branding.read authority:branding.write authority.audit.read graph:read sbom:read scanner:read policy:read policy:simulate policy:author policy:review policy:approve policy:run policy:activate policy:audit policy:edit policy:operate policy:publish airgap:seal airgap:status:read orch:read orch:operate orch:quota analytics.read advisory:read advisory-ai:view advisory-ai:operate vex:read vexhub:read exceptions:read exceptions:approve aoc:verify findings:read release:read release:write release:publish scheduler:read scheduler:operate notify.viewer notify.operator notify.admin notify.escalate evidence:read export.viewer export.operator export.admin vuln:view vuln:investigate vuln:operate vuln:audit platform.context.read platform.context.write doctor:run doctor:admin ops.health integration:read integration:write integration:operate packs.read packs.write packs.run packs.approve registry.admin timeline:read timeline:write trust:read trust:write trust:admin signer:read signer:sign signer:rotate signer:admin\",\"expiresAtEpochMs\":1776595090118},\"identity\":{\"subject\":\"f945f00811f44f008058268a264ed015\",\"roles\":[],\"idToken\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjdLUks4OUw1UTNESkVQR09IV1NPSDNMVDktTVdNWVVJRS1aSU1VX1EiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2F1dGhvcml0eS5zdGVsbGEtb3BzLmxvY2FsLyIsImV4cCI6MTc3NjU5NjU4OCwiaWF0IjoxNzc2NTkzMjg4LCJhdWQiOiJzdGVsbGEtb3BzLXVpIiwic3ViIjoiZjk0NWYwMDgxMWY0NGYwMDgwNTgyNjhhMjY0ZWQwMTUiLCJhenAiOiJzdGVsbGEtb3BzLXVpIiwibm9uY2UiOiIyNGNiYWZhNS03ZDNhLTQ0ZDMtODgzNy00NTIyYTQyOTk0NzUiLCJhdF9oYXNoIjoiSzZqRXhqdDFmMFZZVlVtbWF6T09JQSJ9.EcbkBfurdz6gfBT_5_TP6vz2aNARKP5BiEhDoBKkY4esokvWoCxPQfT6NozP4sEde-lofT4W1w1GNavRDO7QN51C6YFM25DplqcX_QWGC_UhinUd2w_WkNtzYRDjVdpTMI7gnEch77IZ0pKAKaSTNwSTLIeGG-q-SZr1M_HiIjbG0x2-kzwolGrXxVuA5XXQbWNoFW0W9PdFKpz6SNicVi_D3WM2rvRkSF_-gZ4byilC7uIZ-o45HllQceM1EAlUObQMG01b-XDMaFCAY243GY0NzRZ2pgvPD6X6SuZPtAAzBPWGm71EU2w_DyVlZt7hTGyKl-SGt_hwSrXMQ1oDdA\"},\"dpopKeyThumbprint\":\"knhtz_ieCuFgS2A6bYdUWWhbWQNMcly969VVWFBQoAA\",\"issuedAtEpochMs\":1776593289124,\"tenantId\":\"default\",\"scopes\":[\"advisory-ai:operate\",\"advisory-ai:view\",\"advisory:read\",\"airgap:seal\",\"airgap:status:read\",\"analytics.read\",\"aoc:verify\",\"authority.audit.read\",\"authority:branding.read\",\"authority:branding.write\",\"authority:clients.read\",\"authority:clients.write\",\"authority:roles.read\",\"authority:roles.write\",\"authority:tenants.read\",\"authority:tenants.write\",\"authority:tokens.read\",\"authority:tokens.revoke\",\"authority:users.read\",\"authority:users.write\",\"doctor:admin\",\"doctor:run\",\"email\",\"evidence:read\",\"exceptions:approve\",\"exceptions:read\",\"export.admin\",\"export.operator\",\"export.viewer\",\"findings:read\",\"graph:read\",\"integration:operate\",\"integration:read\",\"integration:write\",\"notify.admin\",\"notify.escalate\",\"notify.operator\",\"notify.viewer\",\"offline_access\",\"openid\",\"ops.health\",\"orch:operate\",\"orch:quota\",\"orch:read\",\"packs.approve\",\"packs.read\",\"packs.run\",\"packs.write\",\"platform.context.read\",\"platform.context.write\",\"policy:activate\",\"policy:approve\",\"policy:audit\",\"policy:author\",\"policy:edit\",\"policy:operate\",\"policy:publish\",\"policy:read\",\"policy:review\",\"policy:run\",\"policy:simulate\",\"profile\",\"registry.admin\",\"release:publish\",\"release:read\",\"release:write\",\"sbom:read\",\"scanner:read\",\"scheduler:operate\",\"scheduler:read\",\"signer:admin\",\"signer:read\",\"signer:rotate\",\"signer:sign\",\"timeline:read\",\"timeline:write\",\"trust:admin\",\"trust:read\",\"trust:write\",\"ui.admin\",\"ui.preferences.read\",\"ui.preferences.write\",\"ui.read\",\"vex:read\",\"vexhub:read\",\"vuln:audit\",\"vuln:investigate\",\"vuln:operate\",\"vuln:view\"],\"audiences\":[],\"authenticationTimeEpochMs\":1776593272000,\"freshAuthActive\":false,\"freshAuthExpiresAtEpochMs\":null}"
- ],
- [
- "stellaops:wasEverAuth",
- "true"
- ],
- [
- "stellaops.auth.login.fb523b4b-6b82-4856-8426-95227415ecff",
- "{\"state\":\"fb523b4b-6b82-4856-8426-95227415ecff\",\"codeVerifier\":\"CRDqWUd4QlgZUrDJTjOS-kDJKp6k6-cV1VULgFxUnzg\",\"createdAtEpochMs\":1776593265039,\"returnUrl\":\"/\",\"nonce\":\"7e2ac1fd-3b29-47b2-9b79-60435839292f\"}"
+ "stellaops.auth.login.1269a403-5e2c-4ba7-9948-44d0e6935ed0",
+ "{\"state\":\"1269a403-5e2c-4ba7-9948-44d0e6935ed0\",\"codeVerifier\":\"Ag9d5VZRmr_dgmIK1XXKoZsksX-KGgkmIUNrnGJC6_g\",\"createdAtEpochMs\":1776864594497,\"nonce\":\"57471c05-a18a-428d-8afa-07e2c7631ffc\"}"
]
]
},
"sessionStatus": {
- "hasFullSession": true,
- "hasSessionInfo": true
+ "hasFullSession": false,
+ "hasSessionInfo": false
},
"events": {
"consoleErrors": [],
"requestFailures": [
{
"method": "GET",
- "url": "https://stella-ops.local/connect/authorize?response_type=code&client_id=stella-ops-ui&redirect_uri=https%3A%2F%2Fstella-ops.local%2Fauth%2Fcallback&scope=openid+profile+email+offline_access+ui.read+ui.admin+ui.preferences.read+ui.preferences.write+authority%3Atenants.read+authority%3Atenants.write+authority%3Ausers.read+authority%3Ausers.write+authority%3Aroles.read+authority%3Aroles.write+authority%3Aclients.read+authority%3Aclients.write+authority%3Atokens.read+authority%3Atokens.revoke+authority%3Abranding.read+authority%3Abranding.write+authority.audit.read+graph%3Aread+sbom%3Aread+scanner%3Aread+policy%3Aread+policy%3Asimulate+policy%3Aauthor+policy%3Areview+policy%3Aapprove+policy%3Arun+policy%3Aactivate+policy%3Aaudit+policy%3Aedit+policy%3Aoperate+policy%3Apublish+airgap%3Aseal+airgap%3Astatus%3Aread+orch%3Aread+orch%3Aoperate+orch%3Aquota+analytics.read+advisory%3Aread+advisory-ai%3Aview+advisory-ai%3Aoperate+vex%3Aread+vexhub%3Aread+exceptions%3Aread+exceptions%3Aapprove+aoc%3Averify+findings%3Aread+release%3Aread+release%3Awrite+release%3Apublish+scheduler%3Aread+scheduler%3Aoperate+notify.viewer+notify.operator+notify.admin+notify.escalate+evidence%3Aread+export.viewer+export.operator+export.admin+vuln%3Aview+vuln%3Ainvestigate+vuln%3Aoperate+vuln%3Aaudit+platform.context.read+platform.context.write+doctor%3Arun+doctor%3Aadmin+ops.health+integration%3Aread+integration%3Awrite+integration%3Aoperate+packs.read+packs.write+packs.run+packs.approve+registry.admin+timeline%3Aread+timeline%3Awrite+trust%3Aread+trust%3Awrite+trust%3Aadmin+signer%3Aread+signer%3Asign+signer%3Arotate+signer%3Aadmin&state=fb523b4b-6b82-4856-8426-95227415ecff&nonce=7e2ac1fd-3b29-47b2-9b79-60435839292f&code_challenge=GYPWvjWHUsim-5XCdVNmPtj-Z0yIT8fw0t1bmtCz3iU&code_challenge_method=S256&audience=stella-ops-api&ui_return=%2F",
+ "url": "https://stella-ops.local/console/branding?tenantId=default",
"error": "net::ERR_ABORTED",
"page": "https://stella-ops.local/welcome"
}
@@ -54,5 +33,5 @@
"responseErrors": []
},
"statePath": "C:\\dev\\New folder\\git.stella-ops.org\\src\\Web\\StellaOps.Web\\output\\playwright\\live-frontdoor-auth-state.json",
- "screenshotPath": null
+ "screenshotPath": "C:\\dev\\New folder\\git.stella-ops.org\\src\\Web\\StellaOps.Web\\output\\playwright\\live-frontdoor-auth-failure.png"
}
diff --git a/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-first-run-bootstrap.auth.json b/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-first-run-bootstrap.auth.json
index 23d640763..8ebc2b399 100644
--- a/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-first-run-bootstrap.auth.json
+++ b/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-first-run-bootstrap.auth.json
@@ -1,57 +1,24 @@
{
- "authenticatedAtUtc": "2026-04-19T11:21:13.948Z",
- "authenticated": true,
- "error": null,
+ "authenticatedAtUtc": "2026-04-22T13:31:56.401Z",
+ "authenticated": false,
+ "error": "Frontdoor authentication did not establish a Stella Ops session. finalUrl=https://stella-ops.local/connect/authorize?response_type=code&client_id=stella-ops-ui&redirect_uri=https%3A%2F%2Fstella-ops.local%2Fauth%2Fcallback&scope=openid+profile+email+offline_access+ui.read+ui.admin+ui.preferences.read+ui.preferences.write+authority%3Atenants.read+authority%3Atenants.write+authority%3Ausers.read+authority%3Ausers.write+authority%3Aroles.read+authority%3Aroles.write+authority%3Aclients.read+authority%3Aclients.write+authority%3Atokens.read+authority%3Atokens.revoke+authority%3Abranding.read+authority%3Abranding.write+authority.audit.read+graph%3Aread+sbom%3Aread+scanner%3Aread+policy%3Aread+policy%3Asimulate+policy%3Aauthor+policy%3Areview+policy%3Aapprove+policy%3Arun+policy%3Aactivate+policy%3Aaudit+policy%3Aedit+policy%3Aoperate+policy%3Apublish+airgap%3Aseal+airgap%3Astatus%3Aread+orch%3Aread+orch%3Aoperate+orch%3Aquota+analytics.read+advisory%3Aread+advisory-ai%3Aview+advisory-ai%3Aoperate+vex%3Aread+vexhub%3Aread+exceptions%3Aread+exceptions%3Aapprove+aoc%3Averify+findings%3Aread+release%3Aread+release%3Awrite+release%3Apublish+scheduler%3Aread+scheduler%3Aoperate+notify.viewer+notify.operator+notify.admin+notify.escalate+evidence%3Aread+export.viewer+export.operator+export.admin+vuln%3Aview+vuln%3Ainvestigate+vuln%3Aoperate+vuln%3Aaudit+platform.context.read+platform.context.write+doctor%3Arun+doctor%3Aadmin+ops.health+integration%3Aread+integration%3Awrite+integration%3Aoperate+packs.read+packs.write+packs.run+packs.approve+registry.admin+timeline%3Aread+timeline%3Awrite+trust%3Aread+trust%3Awrite+trust%3Aadmin+signer%3Aread+signer%3Asign+signer%3Arotate+signer%3Aadmin&state=32ba6d61-17c4-4222-b319-b64e597ee5b6&nonce=61708ad7-c4ff-49af-9af0-72da4ee715e0&code_challenge=_CUNU9SGW_mT9wgioUI6Sit58_bIf9youyPuueXuG0M&code_challenge_method=S256&audience=stella-ops-api&ui_return=%2F signInVisible=true",
"baseUrl": "https://stella-ops.local",
- "finalUrl": "https://stella-ops.local/?tenant=default®ions=apac,eu-west,us-east",
- "title": "Dashboard - StellaOps",
- "bodyText": "Skip to main content\nStella Ops\nv1.0.0-alpha\nDashboard\nDaily health, feed freshness, and onboarding progress\nRELEASE CONTROL\n\nPlan, approve, and promote verified releases through your environments.\n\nEnvironments\nReadiness, gate status, and promotion topology\nDeployments\nActive deployments and approval queue\n4\nReleases\nRelease versions and bundles\n1\nRelease Policies\nPolicy packs, governance, VEX, and simulation\nSECURITY\n\nScan images, triage findings, and explain exploitability before promotion.\n\nImage Security\nSecurity posture, findings, SBOM, and evidence for container images\nTriage Queue\nPrioritized vulnerability triage work queue\nRisk Overview\nFleet-wide risk budget and compliance posture\nAdvisory Sources\nFeed health, freshness, and SLA compliance\nOPERATIONS\n\nRun the platform, keep feeds healthy, and investigate background execution.\n\nScheduled Jobs\nScheduled scans, runs, and worker fleet\nFeeds & Airgap\nFeed freshness, offline kits, and transfer readiness\nScripts\nOperator scripts and reusable automation entry points\nSTART HERE\nDiagnostics\nService health, drift signals, and operational checks\nAudit\nSETTINGS\n\nIdentity, trust, tenant settings, and governance controls for operators.\n\nIntegrations\nConnect source control, registries, notifications, and delivery systems\nIdentity & Access\nManage sign-in, access rules, and operator scopes\nCertificates & Trust\nTheme & Branding\nUser Preferences\nPersonal defaults for helper behavior, theme, and working context\nTENANT\nDefault Tenant\nREGION\nNone\nENV\nNone\n1h\n6h\n24h\n7d\n30d\nSTAGE\nAll\nf945f00811f44f008058268a264ed015\nDashboard\n?\nABOUT THIS PAGE\nDashboard\n\nThis is your daily command center. It tells you which environments are healthy, where risk is building up, whether advisory feeds are current, and what action should happen next.\n\nKey concepts\nSBOM and reachability\n\nSBOM tells Stella what is inside each image. Reachability tells Stella which of those vulnerable code paths are actually callable, so you can separate real risk from background noise.\n\nSeverity counts\n\nCritical means fix now. High means near-term remediation. Medium and Low help you plan backlog work without losing sight of immediate blockers.\n\nNext-step workflow\n\nFresh installations usually follow the same order: run diagnostics, connect integrations, scan an image, review findings, then create and promote a release.\n\nCommon actions\nScan your first image\nCheck feed status\nRun Diagnostics\nDocs\nOperator guide\nArchitecture overview\nDashboard\n\nDefault Tenant\n\nQUICK LINKS:\nDeployments\nDeployment timeline and run history\nSecurity & Risk\nPosture, findings, and reachability\nOperations\nPlatform health and execution control\nEvidence\nDecision capsules and audit trail\nPlatform Setup\nEnvironments, integrations, topology\nDiagnostics\nRun health checks on your deployment\n\nFIRST VISIT\n\nWelcome to Stella Ops\n\nThis dashboard is your daily command center. It summarizes SBOM coverage, reachable risk, feed freshness, and environment health so you can decide what to fix, approve, or investigate next.\n\nStart setup wizard\nRun diagnostics\nSeverity guide\nCRITICAL Exploitable or release-blocking. Fix immediately.\nHIGH Serious exposure. Schedule remediation within days.\nMEDIUM Moderate risk. Address in planned sprint work.\nLOW Track and fix when it is cost-effective.\nWhat should I do next?\n\nThese suggestions are based on the current state of your environments, feeds, and findings.\n\nGenerate your first SBOM\nEvery environment currently shows SBOM missing. Scan one container image to unlock posture, reachability, and evidence data.\n1 critical findings need triage\nOpen the findings workflow to decide whether each critical issue should be fixed, waived, or explained with VEX evidence.\nResolve unknown environment health\nUnknown health usually means no agent, signal probe, or readiness telemetry is reporting yet. Run diagnostics to find the missing dependency.\nCheck advisory feed freshness\nYour advisory sources are missing, stale, or degraded. Refresh them so new CVEs and VEX updates reach the dashboard.\nHide\nPENDING ACTIONS\nAll environments\nUS Production\nUs East\nUNKNOWN\nSBOM\nmissing\nCRITR\n0\nHIGHR\n0\nB/I/R\n0/0\nPENDING\n0\nNo deployments\nDetail\nFindings\nUS UAT\nUs East\nUNKNOWN\nSBOM\nmissing\nCRITR\n0\nHIGHR\n0\nB/I/R\n0/0\nPENDING\n0\nNo deployments\nDetail\nFindings\nEU Production\nEu West\nUNKNOWN\nSBOM\nmissing\nCRITR\n0\nHIGHR\n0\nB/I/R\n0/0\nPENDING\n0\nNo deployments\nDetail\nFindings\nEU Staging\nEu West\nUNKNOWN\nSBOM\nmissing\nCRITR\n0\nHIGHR\n0\nB/I/R\n0/0\nPENDING\n0\nNo deployments\nDetail\nFindings\nAPAC Production\nAPAC\nUNKNOWN\nSBOM\nmissing\nCRITR\n0\nHIGHR\n0\nB/I/R\n0/0\nPENDING\n0\nNo deployments\nDetail\nFindings\nCritical Open\nCritical vulnerabilities needing triage\n1\nVULNERABILITY SUMMARY ?\nCritical\n3\nHigh\n2\nMedium\n1\nLow\n0\n6 total\n1 critical open\nView Findings\nFEED STATUS ?\n1\nactive\nNot checked\nManage Sources\nSBOM HEALTH ?\nCRITICAL ENVS\n0\nWith critical issues\nCRIT. REACHABLE\n0\nReachable criticals\nCLEAN ENVS\n5\nNo critical findings\nView SBOM\nENVIRONMENT HEALTH\nENVIRONMENTS\n5\nRegistered targets\nBLOCKED\n0\nBlocking releases\nDEGRADED\n0\nNeeding attention\nHEALTHY\n0\nFully operational\nENVIRONMENTS AT RISK\nOpen all\nREGION/ENV\tHEALTH\tSBOM\tCRITR\tACTION\nUs East / US Production\tunknown\tmissing\t0\tOpen\nUs East / US UAT\tunknown\tmissing\t0\tOpen\nEu West / EU Production\tunknown\tmissing\t0\tOpen\nEu West / EU Staging\tunknown\tmissing\t0\tOpen\nAPAC / APAC Production\tunknown\tmissing\t0\tOpen\nServices\nFeeds\nSecurity\nEvidence\nDLQ\nDiagnostics\nCritical findings need triage\nCritical open findings usually mean exploitable issues that can block promotions or require compensating evidence. Triage them first, then decide whether to fix, create an exception, or attach VEX justification.\nView findings\n1 / 14",
+ "finalUrl": "https://stella-ops.local/connect/authorize?response_type=code&client_id=stella-ops-ui&redirect_uri=https%3A%2F%2Fstella-ops.local%2Fauth%2Fcallback&scope=openid+profile+email+offline_access+ui.read+ui.admin+ui.preferences.read+ui.preferences.write+authority%3Atenants.read+authority%3Atenants.write+authority%3Ausers.read+authority%3Ausers.write+authority%3Aroles.read+authority%3Aroles.write+authority%3Aclients.read+authority%3Aclients.write+authority%3Atokens.read+authority%3Atokens.revoke+authority%3Abranding.read+authority%3Abranding.write+authority.audit.read+graph%3Aread+sbom%3Aread+scanner%3Aread+policy%3Aread+policy%3Asimulate+policy%3Aauthor+policy%3Areview+policy%3Aapprove+policy%3Arun+policy%3Aactivate+policy%3Aaudit+policy%3Aedit+policy%3Aoperate+policy%3Apublish+airgap%3Aseal+airgap%3Astatus%3Aread+orch%3Aread+orch%3Aoperate+orch%3Aquota+analytics.read+advisory%3Aread+advisory-ai%3Aview+advisory-ai%3Aoperate+vex%3Aread+vexhub%3Aread+exceptions%3Aread+exceptions%3Aapprove+aoc%3Averify+findings%3Aread+release%3Aread+release%3Awrite+release%3Apublish+scheduler%3Aread+scheduler%3Aoperate+notify.viewer+notify.operator+notify.admin+notify.escalate+evidence%3Aread+export.viewer+export.operator+export.admin+vuln%3Aview+vuln%3Ainvestigate+vuln%3Aoperate+vuln%3Aaudit+platform.context.read+platform.context.write+doctor%3Arun+doctor%3Aadmin+ops.health+integration%3Aread+integration%3Awrite+integration%3Aoperate+packs.read+packs.write+packs.run+packs.approve+registry.admin+timeline%3Aread+timeline%3Awrite+trust%3Aread+trust%3Awrite+trust%3Aadmin+signer%3Aread+signer%3Asign+signer%3Arotate+signer%3Aadmin&state=32ba6d61-17c4-4222-b319-b64e597ee5b6&nonce=61708ad7-c4ff-49af-9af0-72da4ee715e0&code_challenge=_CUNU9SGW_mT9wgioUI6Sit58_bIf9youyPuueXuG0M&code_challenge_method=S256&audience=stella-ops-api&ui_return=%2F",
+ "title": "Sign In — StellaOps",
+ "bodyText": "StellaOps\n\nSign in to continue\n\nInvalid username or password.\nUSERNAME\nPASSWORD\n Sign In",
"cookies": [],
"storage": {
- "localStorageEntries": [
- [
- "stellaops.auth.session.full",
- "{\"tokens\":{\"accessToken\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjdLUks4OUw1UTNESkVQR09IV1NPSDNMVDktTVdNWVVJRS1aSU1VX1EiLCJ0eXAiOiJhdCtqd3QifQ.eyJpc3MiOiJodHRwczovL2F1dGhvcml0eS5zdGVsbGEtb3BzLmxvY2FsLyIsImV4cCI6MTc3NjU5OTQ3MiwiaWF0IjoxNzc2NTk3NjcyLCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIG9mZmxpbmVfYWNjZXNzIHVpLnJlYWQgdWkuYWRtaW4gdWkucHJlZmVyZW5jZXMucmVhZCB1aS5wcmVmZXJlbmNlcy53cml0ZSBhdXRob3JpdHk6dGVuYW50cy5yZWFkIGF1dGhvcml0eTp0ZW5hbnRzLndyaXRlIGF1dGhvcml0eTp1c2Vycy5yZWFkIGF1dGhvcml0eTp1c2Vycy53cml0ZSBhdXRob3JpdHk6cm9sZXMucmVhZCBhdXRob3JpdHk6cm9sZXMud3JpdGUgYXV0aG9yaXR5OmNsaWVudHMucmVhZCBhdXRob3JpdHk6Y2xpZW50cy53cml0ZSBhdXRob3JpdHk6dG9rZW5zLnJlYWQgYXV0aG9yaXR5OnRva2Vucy5yZXZva2UgYXV0aG9yaXR5OmJyYW5kaW5nLnJlYWQgYXV0aG9yaXR5OmJyYW5kaW5nLndyaXRlIGF1dGhvcml0eS5hdWRpdC5yZWFkIGdyYXBoOnJlYWQgc2JvbTpyZWFkIHNjYW5uZXI6cmVhZCBwb2xpY3k6cmVhZCBwb2xpY3k6c2ltdWxhdGUgcG9saWN5OmF1dGhvciBwb2xpY3k6cmV2aWV3IHBvbGljeTphcHByb3ZlIHBvbGljeTpydW4gcG9saWN5OmFjdGl2YXRlIHBvbGljeTphdWRpdCBwb2xpY3k6ZWRpdCBwb2xpY3k6b3BlcmF0ZSBwb2xpY3k6cHVibGlzaCBhaXJnYXA6c2VhbCBhaXJnYXA6c3RhdHVzOnJlYWQgb3JjaDpyZWFkIG9yY2g6b3BlcmF0ZSBvcmNoOnF1b3RhIGFuYWx5dGljcy5yZWFkIGFkdmlzb3J5OnJlYWQgYWR2aXNvcnktYWk6dmlldyBhZHZpc29yeS1haTpvcGVyYXRlIHZleDpyZWFkIHZleGh1YjpyZWFkIGV4Y2VwdGlvbnM6cmVhZCBleGNlcHRpb25zOmFwcHJvdmUgYW9jOnZlcmlmeSBmaW5kaW5nczpyZWFkIHJlbGVhc2U6cmVhZCByZWxlYXNlOndyaXRlIHJlbGVhc2U6cHVibGlzaCBzY2hlZHVsZXI6cmVhZCBzY2hlZHVsZXI6b3BlcmF0ZSBub3RpZnkudmlld2VyIG5vdGlmeS5vcGVyYXRvciBub3RpZnkuYWRtaW4gbm90aWZ5LmVzY2FsYXRlIGV2aWRlbmNlOnJlYWQgZXhwb3J0LnZpZXdlciBleHBvcnQub3BlcmF0b3IgZXhwb3J0LmFkbWluIHZ1bG46dmlldyB2dWxuOmludmVzdGlnYXRlIHZ1bG46b3BlcmF0ZSB2dWxuOmF1ZGl0IHBsYXRmb3JtLmNvbnRleHQucmVhZCBwbGF0Zm9ybS5jb250ZXh0LndyaXRlIGRvY3RvcjpydW4gZG9jdG9yOmFkbWluIG9wcy5oZWFsdGggaW50ZWdyYXRpb246cmVhZCBpbnRlZ3JhdGlvbjp3cml0ZSBpbnRlZ3JhdGlvbjpvcGVyYXRlIHBhY2tzLnJlYWQgcGFja3Mud3JpdGUgcGFja3MucnVuIHBhY2tzLmFwcHJvdmUgcmVnaXN0cnkuYWRtaW4gdGltZWxpbmU6cmVhZCB0aW1lbGluZTp3cml0ZSB0cnVzdDpyZWFkIHRydXN0OndyaXRlIHRydXN0OmFkbWluIHNpZ25lcjpyZWFkIHNpZ25lcjpzaWduIHNpZ25lcjpyb3RhdGUgc2lnbmVyOmFkbWluIiwianRpIjoiOWJhYWRkZmUtOGVhYi00YjdlLWIxNDAtYjdkYmM2ZGY0NDY1Iiwic3ViIjoiZjk0NWYwMDgxMWY0NGYwMDgwNTgyNjhhMjY0ZWQwMTUiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiIsInJvbGUiOiJhZG1pbiIsInN0ZWxsYW9wczp0ZW5hbnQiOiJkZWZhdWx0IiwiYXV0aF90aW1lIjoxNzc2NTk3NjcxLCJvaV9wcnN0Ijoic3RlbGxhLW9wcy11aSIsImNsaWVudF9pZCI6InN0ZWxsYS1vcHMtdWkifQ.LTsaW7eUNYBfwjxklmhF24qfW9BP1Jco03vZppZeVJyToGF0mT0_Sr1vdfa_spRIlPUVYjDrRHhAIMuAQak350DXzJqF9nY4kvhQzW07loyB5ASCdt1IBijRqjXVp8nGVVP5_pGZiLbX34AxRRbfrLE7KwRFkf0NZaochfBhRjqoLN2uRw-IIGkJMNthFae8qPmNvFvDaUruygUDIXv2yUVS_NnXXYJDOy9BC35akAlEqsEG-MGSomuUbo-YeS4hjpBG7mF7LX4UiUYFkePmRWCKVDJDPYExPp3j3n0cMQaqQci1OiKvbX3jJYCM1wkMXSV28ZeRYC9ZjNZVJgG76Q\",\"tokenType\":\"Bearer\",\"refreshToken\":\"eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZDQkMtSFM1MTIiLCJraWQiOiJZV0pPRVlCSzU3UEpSQTFTSFhFWkM3NEFRQktRWFdEQjZaWlVPV0dVIiwidHlwIjoib2lfcmVmdCtqd3QiLCJjdHkiOiJKV1QifQ.yCZRh1VwHde8Mw6susd190XjLjX4CYt4XMW_es2vU1YFnLm1gOjya3tVSPjNnzOW57EWn_0q4nTSocTNJFV8JDGfR5S92xRbvCBkV54MKWgILqsoRY04eU1Q1fszPybTZqTxj-rX-IMiAJ0EXqxtTLJdxMFN5sdQYcKOMdZV6S6dBArSEMdfdVQKCtuEAKdUEpILsOcI4S4x3B8z8tlw5DsCdiFgW3M2mijFrKppiPGiKDnN1upeZ6StoaUu-Ijnw_hZIo2vbBXINAe-5p_naJ-6JxAGP_UlCPNtWvIZuIA6qV-kldCDE8kWARn1rnXCqB5Zjg3wwulVjlh5u7__0w.snJwpNse2FWAMfsSA08jSg.4Lngki9KU2RPD0KkchsxkAtAaITJR0Hv_gvL4Rfn3-UOif2kvIGk3iX8G3Xo0gvdem7x0_70EMM0jLgZT-tvxc5gm10lbuD3R1nCefcgJcAD3zBN-UKKbNRVe8VxTWNNQXhK8bAEvphjgR3yhQt6LyxQw2-arjkz947kRPctj9UmRQNItD4oN0KOchEmuGIYhCzi3SKsJxbcembWNPmFU9DKJqFdRotzCy8bMlYBY2Wh744Ue3AhuJeg1YuYd6giQZNowlkuP10O27FwATpfC4iE6Y1rbMFj8ZIXMJn5vwz1gh51n4NCp-qjQOeYCcECV4E3ITrQprIjF2fCo9HlRTNETktx13s31trD1sCpTunYRnLrcCaEJdMDLVsVRXxIrMF4thEFwU3pOkjMHgD27fAGfoLSJfghU59938MuBBW8Zx51NE6Ylza9G0giTb0TVSE0ajaGextQW5DC5hLmbx8kk3-d3WfslYv2nLflwh4JtSZsXDsumnivWG_YXU1SvpL7MUdr9a8kWeUkA6NTQhXVLb-38N-BQBzOiU8TGaf5FQ86B8BEi8z3w-mBwM2hrOR7n1AgmrqmJXM7YbvkUBLZPCZX_F2ekPNItr8HQEbPAVGrftAwyp7gLWSz_7Ysypy_88LZnTTD1Xy9GBtPouveXtedfEMMY6vuDoW2FURwibxwv0PbLxFk96kHUX8imEMaKKMZSyvP1xe93-xyyw4XMdwgckJluU0gviMUtJDbT_Ew1cHzS0yfCVhKawfP0TjAdBeDhAQmhJ6WDzRHSxZ3vs_2yVxbcB7ijqhGsL8YbyBOeBJqUO0tZt-dvZmK0auac24b_yFCClglWUUg3lGuG2OsUNwep6EfYkv__V3ewTOZH0Fr4Xzh5RqU9ChvSGrU1hR4SXjMsfHLnzggPzPionvnNlPQe3QpMLaBsUYDWBiyYHa2EodXwk6lQfU0ur9-BrCoo8iEy_VCTa_epa-6hdQtVHq1MYGfYf2hXZkMBdS_dEgsMjwTUynhAeiqv11VCd6wkttc_atN5kAMWydBwMqMvW9vdwart1CGTFNpi_9moVkZc2nNEUfBLFARey_Tc0Ry4nkCYRzePJ65sY-Bn1u_xdDQPgneoP7locVhqF6G040K0ZKBkQQaUwPO20KbWHlGuPphOk7YW4GPo0eD1k34PlcXjlaNH6VZxW9yUGUsa6BG52eP9SggiowJDGkRzuOknLBRCuaRTopLayPRaSrPu3rnYy3_ggvjGuIQDH4nsikK_SANDA8yJEfl6KQJbRJyNw3nxi8kQgRcjctPfKDmHUsWS0Q7RzoN_4JUzM1mcT74ciBJ26gx72iwAJQYPWzMvazEvgop2Wv4ii8aaHccbkpDaUd85I-gv0G5hZyIVRB_pDLvL5kw0Q2VVsIeBtcX5_RN6e8PJTlNAWxdlRWwe9-vHAnwsIIqi4BlA9-URdj2flUxZwitLzfbPOkFUQ_QcJqUURRnlrmgUwbiYIZrCU76nuyfnuCpm1kkktajGHCq8Re86kjkGU28ZcuZ-uQ1ewIyHyartYNaaFuKZg4MoqGJySvf_gWReAWIC3vvxo5REgvj3h7MkJNI6Q4D0B3HT6MJ5dZpxQHocM_8tfIhFz9tuFsnhbbWcqsCNoDqh7XSkf66sLsBRN4Mg_te9r4HUa9I3o9IEWyyeIfM7GTW3tSUUFwB9hmLYlQDYUgZVO1glHckZQrMVVThZGcJ5hnYJ3UaSG6VvFV6EokTF3fDJgAyzkanqZ8sZMafWg_gqVQ_ldM6ck1rE9hnXs_ZfuJr43_9FotXDljE01TWKiCs1UUjf9G5BjZmenunKCirDmxDeVuEJD9zDQ29Y3XecAGNoL_IZE8uvZIvVog70x-wq1hHWko5UQzhu8DuXHqiW1DVDpEf4UxzEi-DvFVOTfbVP_5f-9Sra_NP5P2WOsXrmsmS9n6IHs2vB10Vrqj5oU0r6sHcnUEs525NbRK16YLSVHrfEeuOJ9pgI9VAmZaBkyqCw7aWAGrWh_WptCtfaBKaCuCOJNdVEyM66a78MyPGZM7a8wEv1655O7HIJKQQcO-jHWi0U7vZx6UB5WxX9nvB9yx8tl9zyD3HMsjBOkla33_3AjVvreJ1mGAvCu_EEEDXnRDQ512bTxqDodE4Epb9Qm5Xbls6my0L-qQIAZGJ6Z8l5RCpOP08q-6oRRHBmPxQ2vrJJnYIxFnXNyR9b31DSBvUQukWO70Fra2fXEhvKdUTja5_jPRq-OfuzfMG5Qb8QRdyRYE4Tne2RMPPyuwJ3O6ufEiao1ptxHalwZDcW-NA8CIphLGHj5_8pT6k0DjKzX_L1l_33c5HNHzUvS362EMon5ycJAxRmU3AbJFae2_Y7IOlnlywyoeRvnPS8cwZVSoNTt_hCH8_YM36KdMfaDqanU28eQky0Vucj8pceoHunSefNg8v58U1aM9YU61ijIUShNcUosDH0UnQYviL-COkSBIQkyMvYbspaVU6ahUZ1Tst3k0Z8plUx-IKVD8inbifieyF_wUh3s-tQJg1_Kwno06H5hlQ3C3eIt1VmjvKdnyuwOTL5eDAlUWu5UBekMxzkMZUhFxHOjSFZytVxhCAcUfw-8aMO0DSUFMWUJ31LvW6X3cN7SfPfxl0sEkz3LAhtBc6AH2ED-hOfAqyu8Ei0sfsuyNsRE_sDIJqb6mny159Msuf7r3_lOTUzLlYtvEb6mRnJkzON-HFAAmFE6yQC_l1x7aPWyJWx7IWFpH8XOMC7c0H9y7Fhnk7yWj6o_VO9zk4xvX_7g1O6rGs0fNXYQPMN75gUcTh24lNtWbcO4P9eV8tDN0PfHjTRqdNYJwL9Xq7hT1aKZbtXxDg0Gw1ZGYorFEiw0y_tsDf_qCo5tOypMtO_AhCYequMzX2BygQ1eyVvn_VQKDzZECjEGOddEchLz9ljeL_7N9i7PzsBAyNOmYu_jZe8dChQwv52TV1uDEQJY_sks9gzSyEbJQS1OgftvdY2ovJ3-tbN6vah7URicJSwL5jgrpZTG779NFb5uywaX6EBGZ03-93VMRfMcK-rrBhwZegx2G8-YcvJPS7xyYA4SvehghlfhBr-FmkIBIukv15sh92AvnXTKExmXhV8RGlMABM9GdAo4XNP9I_xXYZh75ew2jP6l-64MIDh47vVxInlTfPpHJegRGk1PYx9zx18rkEY7TP1OkEzpknijKPKkrV-ttO0pVa7-aNE4v1U5s6HBIQd3S9E2wjEA_mKMDEkedI8kHJNGkzbgZ95Xqm521VGIn-VflOhz1MTR2kCsj5c2E_0Nm0dA9b5qyWPftxq2hauT7C637p-4-T410s8UJkGpZX1XNitCCUKdzTFb1jgC0GZGNUUuZ5fkVnlL9GtAZOOom7xtByTVeoER-8x8vOQxF2PiwcurtNpenl-bm861DoV2_0Tz9VtPa2AQO0YGYPE7AScR-cvAZg5VLgAh_xztg792gTkhsfRoVATBADBOt4VDVQJfhTeH_rfxfSnK96eDANS-lphZAjyK2-tfQ2432B7agl73B-afHUlIJ5SsOLHiZzoNB7X8Q1XbzOny6aBNhGjSSlwk1kIJBwOOoTawXlDbtIh7_9ClhC5TmSNLn4poazG3FMpEA4mJBHzghK9qoCjG7KjDrmLvbWiVghSm0r5E0zO0uZG8Kod0Q1JnMX-4mhxjIbHDvXpWLn3qXJRwoyO_c_JngcK8hVZka2hPlO635AjKYbIJRGcmq07wM_6RS5WJsKvGeDOtuefZWAdruCr14uHMbg-z80NUbHOWjHAbN-fRqt07E8wJV04T4qT0d3VpRIZIrkNIRT7jeXHQ7w0vM3C5czOJGNQj0Mt2l6Cx9ysBmGUv6WtL-HQ587iBIvSmDyqedgGZUbHmuqBQINRgAghpFSzRu5HpmPNA5VrU1z3Q8cjmn5TRKu5C_3Z_ymviGpjWGmgBeDHQs0xlPCN6RQGIJMzdDpBV3eXL8YT7t5YEgul6hH4viET5YbuwlWiUkYXfqSBvjT9-YqBVTJh8KpdBUG05z3TryL-gB2V3wmnQAORydHGsi8lKlKWmC3MTNY1R1yCHAaW--nL7Tk3Ja4KzJsYusDoZi5YfTdzYoEbVnRlOTuKLctopLaSiZZ5b6E0CdwKfXRWVeOOcjpI2ArKOWWMnZX07bd8V3_2JKrPSwz22W2HIjCy2eGZ_RH5dZq25_Ok9SBAAoX63sX2dVvVbEwyoE-oP-uttq5l5Tr1v-bU0OJrfRm3VEHF2pTuUeZtn_Kh9q0F7OCBIw0C54ENYne-cDRSEGW2U9MMZ9EEmtOt_1b4tHZH-SwJAp42737WdaYKDcR8rtdPYsyOeTpm8gtWI2-dx-u3AozWYLBw8Lv6EnnFZ-13QsnIMMw6dKyYPKLw8lGNqWGlbxLGAE76_hKEfBm8flRvl27jY6N7mZt3wWkxfyD9RUyHkFk_uSB8O5vBUms1XfcDUTVJmkMkYYuAMEQeoyMXzroVAPHMYRqIEz43KZX0lwMsASaiUpYZ73In9SL_Xbi1T26Ii0PtgQh6CDVRCGH5l16g-Lv4pQq1gynjqMISn-p4K27ItYnhesQlUQ4rcI0FqPT9Wgkt0w-aBThnfpN1KtXw3sd0zATpAXglFo.IBhh9W88uPJ6wMwuZgf_5kZXKh1ZszjVBdfDSLPeE-Q\",\"scope\":\"openid profile email offline_access ui.read ui.admin ui.preferences.read ui.preferences.write authority:tenants.read authority:tenants.write authority:users.read authority:users.write authority:roles.read authority:roles.write authority:clients.read authority:clients.write authority:tokens.read authority:tokens.revoke authority:branding.read authority:branding.write authority.audit.read graph:read sbom:read scanner:read policy:read policy:simulate policy:author policy:review policy:approve policy:run policy:activate policy:audit policy:edit policy:operate policy:publish airgap:seal airgap:status:read orch:read orch:operate orch:quota analytics.read advisory:read advisory-ai:view advisory-ai:operate vex:read vexhub:read exceptions:read exceptions:approve aoc:verify findings:read release:read release:write release:publish scheduler:read scheduler:operate notify.viewer notify.operator notify.admin notify.escalate evidence:read export.viewer export.operator export.admin vuln:view vuln:investigate vuln:operate vuln:audit platform.context.read platform.context.write doctor:run doctor:admin ops.health integration:read integration:write integration:operate packs.read packs.write packs.run packs.approve registry.admin timeline:read timeline:write trust:read trust:write trust:admin signer:read signer:sign signer:rotate signer:admin\",\"expiresAtEpochMs\":1776599471290},\"identity\":{\"subject\":\"f945f00811f44f008058268a264ed015\",\"roles\":[],\"idToken\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjdLUks4OUw1UTNESkVQR09IV1NPSDNMVDktTVdNWVVJRS1aSU1VX1EiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2F1dGhvcml0eS5zdGVsbGEtb3BzLmxvY2FsLyIsImV4cCI6MTc3NjYwMDk3MiwiaWF0IjoxNzc2NTk3NjcyLCJhdWQiOiJzdGVsbGEtb3BzLXVpIiwic3ViIjoiZjk0NWYwMDgxMWY0NGYwMDgwNTgyNjhhMjY0ZWQwMTUiLCJhenAiOiJzdGVsbGEtb3BzLXVpIiwibm9uY2UiOiI3NzIxM2QzMS0wOTY3LTQ0MTItYjE1Ny1hM2RhN2Q3NDZkNjIiLCJhdF9oYXNoIjoiSElrZ1l3ZGZyc213S1B1ZTdjdW1wZyJ9.A9Mlpx8wxmuVLEl2P2hBYs8TXpgLLsAkfr2ywoOj-XBdgOWjjoKx7Uc0S6JqXZjj0aAEtiFTX0pT5QvWwWUhRzKIk_osSIt5eim0lyY3130O1b-zK4xJxLr98ukT-ikhcchJCxTjwyE_m8Mx3ZIyxj52nrWZmFEhx6is2BFgA8OXZmk6UgMFi2PKYjKP9qy_kz_ZcdpHjyaxgU4nyB8giXPWQjBEjZ3bYdotn5BUMQQ4i3NVT-UeriLZnHDb2D147WL0E7KfzoZznkNpKaCnDUo_09MSVXPKhRXqNaH9DYQQ8pMPCcVMDHxMjUEd5ycvAl8LJVSy32-1l1ix9lgJTQ\"},\"dpopKeyThumbprint\":\"oE_VLfMwaUO1GgDCBKUb__qedb99FPz82TOxT8HJZTQ\",\"issuedAtEpochMs\":1776597671291,\"tenantId\":\"default\",\"scopes\":[\"advisory-ai:operate\",\"advisory-ai:view\",\"advisory:read\",\"airgap:seal\",\"airgap:status:read\",\"analytics.read\",\"aoc:verify\",\"authority.audit.read\",\"authority:branding.read\",\"authority:branding.write\",\"authority:clients.read\",\"authority:clients.write\",\"authority:roles.read\",\"authority:roles.write\",\"authority:tenants.read\",\"authority:tenants.write\",\"authority:tokens.read\",\"authority:tokens.revoke\",\"authority:users.read\",\"authority:users.write\",\"doctor:admin\",\"doctor:run\",\"email\",\"evidence:read\",\"exceptions:approve\",\"exceptions:read\",\"export.admin\",\"export.operator\",\"export.viewer\",\"findings:read\",\"graph:read\",\"integration:operate\",\"integration:read\",\"integration:write\",\"notify.admin\",\"notify.escalate\",\"notify.operator\",\"notify.viewer\",\"offline_access\",\"openid\",\"ops.health\",\"orch:operate\",\"orch:quota\",\"orch:read\",\"packs.approve\",\"packs.read\",\"packs.run\",\"packs.write\",\"platform.context.read\",\"platform.context.write\",\"policy:activate\",\"policy:approve\",\"policy:audit\",\"policy:author\",\"policy:edit\",\"policy:operate\",\"policy:publish\",\"policy:read\",\"policy:review\",\"policy:run\",\"policy:simulate\",\"profile\",\"registry.admin\",\"release:publish\",\"release:read\",\"release:write\",\"sbom:read\",\"scanner:read\",\"scheduler:operate\",\"scheduler:read\",\"signer:admin\",\"signer:read\",\"signer:rotate\",\"signer:sign\",\"timeline:read\",\"timeline:write\",\"trust:admin\",\"trust:read\",\"trust:write\",\"ui.admin\",\"ui.preferences.read\",\"ui.preferences.write\",\"ui.read\",\"vex:read\",\"vexhub:read\",\"vuln:audit\",\"vuln:investigate\",\"vuln:operate\",\"vuln:view\"],\"audiences\":[],\"authenticationTimeEpochMs\":1776597671000,\"freshAuthActive\":false,\"freshAuthExpiresAtEpochMs\":null}"
- ],
- [
- "stellaops.helper.preferences",
- "{\"dismissed\":false,\"tooltipsMuted\":false,\"mutedPages\":[],\"mutedTipIds\":[],\"seenPages\":[],\"tipIndex\":{},\"dismissedBanners\":[],\"seenHelpPages\":[],\"pageHelpOpen\":{},\"pageHelpDismissedGlobal\":false,\"pageHelpDismissedPages\":[]}"
- ],
- [
- "stellaops.content-width",
- "centered"
- ],
- [
- "stellaops.assistant.state",
- "{\"seenRoutes\":[],\"completedTours\":[],\"tipPositions\":{},\"dismissed\":false}"
- ],
- [
- "stellaops.theme",
- "system"
- ],
- [
- "stellaops.auth.session.info",
- "{\"subject\":\"f945f00811f44f008058268a264ed015\",\"expiresAtEpochMs\":1776599471290,\"issuedAtEpochMs\":1776597671291,\"dpopKeyThumbprint\":\"oE_VLfMwaUO1GgDCBKUb__qedb99FPz82TOxT8HJZTQ\",\"tenantId\":\"default\"}"
- ],
- [
- "stellaops.sidebar.preferences",
- "{\"sidebarCollapsed\":false,\"collapsedGroups\":[\"evidence\",\"setup-admin\"],\"collapsedSections\":[]}"
- ]
- ],
+ "localStorageEntries": [],
"sessionStorageEntries": [
[
- "stellaops.auth.session.full",
- "{\"tokens\":{\"accessToken\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjdLUks4OUw1UTNESkVQR09IV1NPSDNMVDktTVdNWVVJRS1aSU1VX1EiLCJ0eXAiOiJhdCtqd3QifQ.eyJpc3MiOiJodHRwczovL2F1dGhvcml0eS5zdGVsbGEtb3BzLmxvY2FsLyIsImV4cCI6MTc3NjU5OTQ3MiwiaWF0IjoxNzc2NTk3NjcyLCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIG9mZmxpbmVfYWNjZXNzIHVpLnJlYWQgdWkuYWRtaW4gdWkucHJlZmVyZW5jZXMucmVhZCB1aS5wcmVmZXJlbmNlcy53cml0ZSBhdXRob3JpdHk6dGVuYW50cy5yZWFkIGF1dGhvcml0eTp0ZW5hbnRzLndyaXRlIGF1dGhvcml0eTp1c2Vycy5yZWFkIGF1dGhvcml0eTp1c2Vycy53cml0ZSBhdXRob3JpdHk6cm9sZXMucmVhZCBhdXRob3JpdHk6cm9sZXMud3JpdGUgYXV0aG9yaXR5OmNsaWVudHMucmVhZCBhdXRob3JpdHk6Y2xpZW50cy53cml0ZSBhdXRob3JpdHk6dG9rZW5zLnJlYWQgYXV0aG9yaXR5OnRva2Vucy5yZXZva2UgYXV0aG9yaXR5OmJyYW5kaW5nLnJlYWQgYXV0aG9yaXR5OmJyYW5kaW5nLndyaXRlIGF1dGhvcml0eS5hdWRpdC5yZWFkIGdyYXBoOnJlYWQgc2JvbTpyZWFkIHNjYW5uZXI6cmVhZCBwb2xpY3k6cmVhZCBwb2xpY3k6c2ltdWxhdGUgcG9saWN5OmF1dGhvciBwb2xpY3k6cmV2aWV3IHBvbGljeTphcHByb3ZlIHBvbGljeTpydW4gcG9saWN5OmFjdGl2YXRlIHBvbGljeTphdWRpdCBwb2xpY3k6ZWRpdCBwb2xpY3k6b3BlcmF0ZSBwb2xpY3k6cHVibGlzaCBhaXJnYXA6c2VhbCBhaXJnYXA6c3RhdHVzOnJlYWQgb3JjaDpyZWFkIG9yY2g6b3BlcmF0ZSBvcmNoOnF1b3RhIGFuYWx5dGljcy5yZWFkIGFkdmlzb3J5OnJlYWQgYWR2aXNvcnktYWk6dmlldyBhZHZpc29yeS1haTpvcGVyYXRlIHZleDpyZWFkIHZleGh1YjpyZWFkIGV4Y2VwdGlvbnM6cmVhZCBleGNlcHRpb25zOmFwcHJvdmUgYW9jOnZlcmlmeSBmaW5kaW5nczpyZWFkIHJlbGVhc2U6cmVhZCByZWxlYXNlOndyaXRlIHJlbGVhc2U6cHVibGlzaCBzY2hlZHVsZXI6cmVhZCBzY2hlZHVsZXI6b3BlcmF0ZSBub3RpZnkudmlld2VyIG5vdGlmeS5vcGVyYXRvciBub3RpZnkuYWRtaW4gbm90aWZ5LmVzY2FsYXRlIGV2aWRlbmNlOnJlYWQgZXhwb3J0LnZpZXdlciBleHBvcnQub3BlcmF0b3IgZXhwb3J0LmFkbWluIHZ1bG46dmlldyB2dWxuOmludmVzdGlnYXRlIHZ1bG46b3BlcmF0ZSB2dWxuOmF1ZGl0IHBsYXRmb3JtLmNvbnRleHQucmVhZCBwbGF0Zm9ybS5jb250ZXh0LndyaXRlIGRvY3RvcjpydW4gZG9jdG9yOmFkbWluIG9wcy5oZWFsdGggaW50ZWdyYXRpb246cmVhZCBpbnRlZ3JhdGlvbjp3cml0ZSBpbnRlZ3JhdGlvbjpvcGVyYXRlIHBhY2tzLnJlYWQgcGFja3Mud3JpdGUgcGFja3MucnVuIHBhY2tzLmFwcHJvdmUgcmVnaXN0cnkuYWRtaW4gdGltZWxpbmU6cmVhZCB0aW1lbGluZTp3cml0ZSB0cnVzdDpyZWFkIHRydXN0OndyaXRlIHRydXN0OmFkbWluIHNpZ25lcjpyZWFkIHNpZ25lcjpzaWduIHNpZ25lcjpyb3RhdGUgc2lnbmVyOmFkbWluIiwianRpIjoiOWJhYWRkZmUtOGVhYi00YjdlLWIxNDAtYjdkYmM2ZGY0NDY1Iiwic3ViIjoiZjk0NWYwMDgxMWY0NGYwMDgwNTgyNjhhMjY0ZWQwMTUiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiIsInJvbGUiOiJhZG1pbiIsInN0ZWxsYW9wczp0ZW5hbnQiOiJkZWZhdWx0IiwiYXV0aF90aW1lIjoxNzc2NTk3NjcxLCJvaV9wcnN0Ijoic3RlbGxhLW9wcy11aSIsImNsaWVudF9pZCI6InN0ZWxsYS1vcHMtdWkifQ.LTsaW7eUNYBfwjxklmhF24qfW9BP1Jco03vZppZeVJyToGF0mT0_Sr1vdfa_spRIlPUVYjDrRHhAIMuAQak350DXzJqF9nY4kvhQzW07loyB5ASCdt1IBijRqjXVp8nGVVP5_pGZiLbX34AxRRbfrLE7KwRFkf0NZaochfBhRjqoLN2uRw-IIGkJMNthFae8qPmNvFvDaUruygUDIXv2yUVS_NnXXYJDOy9BC35akAlEqsEG-MGSomuUbo-YeS4hjpBG7mF7LX4UiUYFkePmRWCKVDJDPYExPp3j3n0cMQaqQci1OiKvbX3jJYCM1wkMXSV28ZeRYC9ZjNZVJgG76Q\",\"tokenType\":\"Bearer\",\"refreshToken\":\"eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZDQkMtSFM1MTIiLCJraWQiOiJZV0pPRVlCSzU3UEpSQTFTSFhFWkM3NEFRQktRWFdEQjZaWlVPV0dVIiwidHlwIjoib2lfcmVmdCtqd3QiLCJjdHkiOiJKV1QifQ.yCZRh1VwHde8Mw6susd190XjLjX4CYt4XMW_es2vU1YFnLm1gOjya3tVSPjNnzOW57EWn_0q4nTSocTNJFV8JDGfR5S92xRbvCBkV54MKWgILqsoRY04eU1Q1fszPybTZqTxj-rX-IMiAJ0EXqxtTLJdxMFN5sdQYcKOMdZV6S6dBArSEMdfdVQKCtuEAKdUEpILsOcI4S4x3B8z8tlw5DsCdiFgW3M2mijFrKppiPGiKDnN1upeZ6StoaUu-Ijnw_hZIo2vbBXINAe-5p_naJ-6JxAGP_UlCPNtWvIZuIA6qV-kldCDE8kWARn1rnXCqB5Zjg3wwulVjlh5u7__0w.snJwpNse2FWAMfsSA08jSg.4Lngki9KU2RPD0KkchsxkAtAaITJR0Hv_gvL4Rfn3-UOif2kvIGk3iX8G3Xo0gvdem7x0_70EMM0jLgZT-tvxc5gm10lbuD3R1nCefcgJcAD3zBN-UKKbNRVe8VxTWNNQXhK8bAEvphjgR3yhQt6LyxQw2-arjkz947kRPctj9UmRQNItD4oN0KOchEmuGIYhCzi3SKsJxbcembWNPmFU9DKJqFdRotzCy8bMlYBY2Wh744Ue3AhuJeg1YuYd6giQZNowlkuP10O27FwATpfC4iE6Y1rbMFj8ZIXMJn5vwz1gh51n4NCp-qjQOeYCcECV4E3ITrQprIjF2fCo9HlRTNETktx13s31trD1sCpTunYRnLrcCaEJdMDLVsVRXxIrMF4thEFwU3pOkjMHgD27fAGfoLSJfghU59938MuBBW8Zx51NE6Ylza9G0giTb0TVSE0ajaGextQW5DC5hLmbx8kk3-d3WfslYv2nLflwh4JtSZsXDsumnivWG_YXU1SvpL7MUdr9a8kWeUkA6NTQhXVLb-38N-BQBzOiU8TGaf5FQ86B8BEi8z3w-mBwM2hrOR7n1AgmrqmJXM7YbvkUBLZPCZX_F2ekPNItr8HQEbPAVGrftAwyp7gLWSz_7Ysypy_88LZnTTD1Xy9GBtPouveXtedfEMMY6vuDoW2FURwibxwv0PbLxFk96kHUX8imEMaKKMZSyvP1xe93-xyyw4XMdwgckJluU0gviMUtJDbT_Ew1cHzS0yfCVhKawfP0TjAdBeDhAQmhJ6WDzRHSxZ3vs_2yVxbcB7ijqhGsL8YbyBOeBJqUO0tZt-dvZmK0auac24b_yFCClglWUUg3lGuG2OsUNwep6EfYkv__V3ewTOZH0Fr4Xzh5RqU9ChvSGrU1hR4SXjMsfHLnzggPzPionvnNlPQe3QpMLaBsUYDWBiyYHa2EodXwk6lQfU0ur9-BrCoo8iEy_VCTa_epa-6hdQtVHq1MYGfYf2hXZkMBdS_dEgsMjwTUynhAeiqv11VCd6wkttc_atN5kAMWydBwMqMvW9vdwart1CGTFNpi_9moVkZc2nNEUfBLFARey_Tc0Ry4nkCYRzePJ65sY-Bn1u_xdDQPgneoP7locVhqF6G040K0ZKBkQQaUwPO20KbWHlGuPphOk7YW4GPo0eD1k34PlcXjlaNH6VZxW9yUGUsa6BG52eP9SggiowJDGkRzuOknLBRCuaRTopLayPRaSrPu3rnYy3_ggvjGuIQDH4nsikK_SANDA8yJEfl6KQJbRJyNw3nxi8kQgRcjctPfKDmHUsWS0Q7RzoN_4JUzM1mcT74ciBJ26gx72iwAJQYPWzMvazEvgop2Wv4ii8aaHccbkpDaUd85I-gv0G5hZyIVRB_pDLvL5kw0Q2VVsIeBtcX5_RN6e8PJTlNAWxdlRWwe9-vHAnwsIIqi4BlA9-URdj2flUxZwitLzfbPOkFUQ_QcJqUURRnlrmgUwbiYIZrCU76nuyfnuCpm1kkktajGHCq8Re86kjkGU28ZcuZ-uQ1ewIyHyartYNaaFuKZg4MoqGJySvf_gWReAWIC3vvxo5REgvj3h7MkJNI6Q4D0B3HT6MJ5dZpxQHocM_8tfIhFz9tuFsnhbbWcqsCNoDqh7XSkf66sLsBRN4Mg_te9r4HUa9I3o9IEWyyeIfM7GTW3tSUUFwB9hmLYlQDYUgZVO1glHckZQrMVVThZGcJ5hnYJ3UaSG6VvFV6EokTF3fDJgAyzkanqZ8sZMafWg_gqVQ_ldM6ck1rE9hnXs_ZfuJr43_9FotXDljE01TWKiCs1UUjf9G5BjZmenunKCirDmxDeVuEJD9zDQ29Y3XecAGNoL_IZE8uvZIvVog70x-wq1hHWko5UQzhu8DuXHqiW1DVDpEf4UxzEi-DvFVOTfbVP_5f-9Sra_NP5P2WOsXrmsmS9n6IHs2vB10Vrqj5oU0r6sHcnUEs525NbRK16YLSVHrfEeuOJ9pgI9VAmZaBkyqCw7aWAGrWh_WptCtfaBKaCuCOJNdVEyM66a78MyPGZM7a8wEv1655O7HIJKQQcO-jHWi0U7vZx6UB5WxX9nvB9yx8tl9zyD3HMsjBOkla33_3AjVvreJ1mGAvCu_EEEDXnRDQ512bTxqDodE4Epb9Qm5Xbls6my0L-qQIAZGJ6Z8l5RCpOP08q-6oRRHBmPxQ2vrJJnYIxFnXNyR9b31DSBvUQukWO70Fra2fXEhvKdUTja5_jPRq-OfuzfMG5Qb8QRdyRYE4Tne2RMPPyuwJ3O6ufEiao1ptxHalwZDcW-NA8CIphLGHj5_8pT6k0DjKzX_L1l_33c5HNHzUvS362EMon5ycJAxRmU3AbJFae2_Y7IOlnlywyoeRvnPS8cwZVSoNTt_hCH8_YM36KdMfaDqanU28eQky0Vucj8pceoHunSefNg8v58U1aM9YU61ijIUShNcUosDH0UnQYviL-COkSBIQkyMvYbspaVU6ahUZ1Tst3k0Z8plUx-IKVD8inbifieyF_wUh3s-tQJg1_Kwno06H5hlQ3C3eIt1VmjvKdnyuwOTL5eDAlUWu5UBekMxzkMZUhFxHOjSFZytVxhCAcUfw-8aMO0DSUFMWUJ31LvW6X3cN7SfPfxl0sEkz3LAhtBc6AH2ED-hOfAqyu8Ei0sfsuyNsRE_sDIJqb6mny159Msuf7r3_lOTUzLlYtvEb6mRnJkzON-HFAAmFE6yQC_l1x7aPWyJWx7IWFpH8XOMC7c0H9y7Fhnk7yWj6o_VO9zk4xvX_7g1O6rGs0fNXYQPMN75gUcTh24lNtWbcO4P9eV8tDN0PfHjTRqdNYJwL9Xq7hT1aKZbtXxDg0Gw1ZGYorFEiw0y_tsDf_qCo5tOypMtO_AhCYequMzX2BygQ1eyVvn_VQKDzZECjEGOddEchLz9ljeL_7N9i7PzsBAyNOmYu_jZe8dChQwv52TV1uDEQJY_sks9gzSyEbJQS1OgftvdY2ovJ3-tbN6vah7URicJSwL5jgrpZTG779NFb5uywaX6EBGZ03-93VMRfMcK-rrBhwZegx2G8-YcvJPS7xyYA4SvehghlfhBr-FmkIBIukv15sh92AvnXTKExmXhV8RGlMABM9GdAo4XNP9I_xXYZh75ew2jP6l-64MIDh47vVxInlTfPpHJegRGk1PYx9zx18rkEY7TP1OkEzpknijKPKkrV-ttO0pVa7-aNE4v1U5s6HBIQd3S9E2wjEA_mKMDEkedI8kHJNGkzbgZ95Xqm521VGIn-VflOhz1MTR2kCsj5c2E_0Nm0dA9b5qyWPftxq2hauT7C637p-4-T410s8UJkGpZX1XNitCCUKdzTFb1jgC0GZGNUUuZ5fkVnlL9GtAZOOom7xtByTVeoER-8x8vOQxF2PiwcurtNpenl-bm861DoV2_0Tz9VtPa2AQO0YGYPE7AScR-cvAZg5VLgAh_xztg792gTkhsfRoVATBADBOt4VDVQJfhTeH_rfxfSnK96eDANS-lphZAjyK2-tfQ2432B7agl73B-afHUlIJ5SsOLHiZzoNB7X8Q1XbzOny6aBNhGjSSlwk1kIJBwOOoTawXlDbtIh7_9ClhC5TmSNLn4poazG3FMpEA4mJBHzghK9qoCjG7KjDrmLvbWiVghSm0r5E0zO0uZG8Kod0Q1JnMX-4mhxjIbHDvXpWLn3qXJRwoyO_c_JngcK8hVZka2hPlO635AjKYbIJRGcmq07wM_6RS5WJsKvGeDOtuefZWAdruCr14uHMbg-z80NUbHOWjHAbN-fRqt07E8wJV04T4qT0d3VpRIZIrkNIRT7jeXHQ7w0vM3C5czOJGNQj0Mt2l6Cx9ysBmGUv6WtL-HQ587iBIvSmDyqedgGZUbHmuqBQINRgAghpFSzRu5HpmPNA5VrU1z3Q8cjmn5TRKu5C_3Z_ymviGpjWGmgBeDHQs0xlPCN6RQGIJMzdDpBV3eXL8YT7t5YEgul6hH4viET5YbuwlWiUkYXfqSBvjT9-YqBVTJh8KpdBUG05z3TryL-gB2V3wmnQAORydHGsi8lKlKWmC3MTNY1R1yCHAaW--nL7Tk3Ja4KzJsYusDoZi5YfTdzYoEbVnRlOTuKLctopLaSiZZ5b6E0CdwKfXRWVeOOcjpI2ArKOWWMnZX07bd8V3_2JKrPSwz22W2HIjCy2eGZ_RH5dZq25_Ok9SBAAoX63sX2dVvVbEwyoE-oP-uttq5l5Tr1v-bU0OJrfRm3VEHF2pTuUeZtn_Kh9q0F7OCBIw0C54ENYne-cDRSEGW2U9MMZ9EEmtOt_1b4tHZH-SwJAp42737WdaYKDcR8rtdPYsyOeTpm8gtWI2-dx-u3AozWYLBw8Lv6EnnFZ-13QsnIMMw6dKyYPKLw8lGNqWGlbxLGAE76_hKEfBm8flRvl27jY6N7mZt3wWkxfyD9RUyHkFk_uSB8O5vBUms1XfcDUTVJmkMkYYuAMEQeoyMXzroVAPHMYRqIEz43KZX0lwMsASaiUpYZ73In9SL_Xbi1T26Ii0PtgQh6CDVRCGH5l16g-Lv4pQq1gynjqMISn-p4K27ItYnhesQlUQ4rcI0FqPT9Wgkt0w-aBThnfpN1KtXw3sd0zATpAXglFo.IBhh9W88uPJ6wMwuZgf_5kZXKh1ZszjVBdfDSLPeE-Q\",\"scope\":\"openid profile email offline_access ui.read ui.admin ui.preferences.read ui.preferences.write authority:tenants.read authority:tenants.write authority:users.read authority:users.write authority:roles.read authority:roles.write authority:clients.read authority:clients.write authority:tokens.read authority:tokens.revoke authority:branding.read authority:branding.write authority.audit.read graph:read sbom:read scanner:read policy:read policy:simulate policy:author policy:review policy:approve policy:run policy:activate policy:audit policy:edit policy:operate policy:publish airgap:seal airgap:status:read orch:read orch:operate orch:quota analytics.read advisory:read advisory-ai:view advisory-ai:operate vex:read vexhub:read exceptions:read exceptions:approve aoc:verify findings:read release:read release:write release:publish scheduler:read scheduler:operate notify.viewer notify.operator notify.admin notify.escalate evidence:read export.viewer export.operator export.admin vuln:view vuln:investigate vuln:operate vuln:audit platform.context.read platform.context.write doctor:run doctor:admin ops.health integration:read integration:write integration:operate packs.read packs.write packs.run packs.approve registry.admin timeline:read timeline:write trust:read trust:write trust:admin signer:read signer:sign signer:rotate signer:admin\",\"expiresAtEpochMs\":1776599471290},\"identity\":{\"subject\":\"f945f00811f44f008058268a264ed015\",\"roles\":[],\"idToken\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjdLUks4OUw1UTNESkVQR09IV1NPSDNMVDktTVdNWVVJRS1aSU1VX1EiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2F1dGhvcml0eS5zdGVsbGEtb3BzLmxvY2FsLyIsImV4cCI6MTc3NjYwMDk3MiwiaWF0IjoxNzc2NTk3NjcyLCJhdWQiOiJzdGVsbGEtb3BzLXVpIiwic3ViIjoiZjk0NWYwMDgxMWY0NGYwMDgwNTgyNjhhMjY0ZWQwMTUiLCJhenAiOiJzdGVsbGEtb3BzLXVpIiwibm9uY2UiOiI3NzIxM2QzMS0wOTY3LTQ0MTItYjE1Ny1hM2RhN2Q3NDZkNjIiLCJhdF9oYXNoIjoiSElrZ1l3ZGZyc213S1B1ZTdjdW1wZyJ9.A9Mlpx8wxmuVLEl2P2hBYs8TXpgLLsAkfr2ywoOj-XBdgOWjjoKx7Uc0S6JqXZjj0aAEtiFTX0pT5QvWwWUhRzKIk_osSIt5eim0lyY3130O1b-zK4xJxLr98ukT-ikhcchJCxTjwyE_m8Mx3ZIyxj52nrWZmFEhx6is2BFgA8OXZmk6UgMFi2PKYjKP9qy_kz_ZcdpHjyaxgU4nyB8giXPWQjBEjZ3bYdotn5BUMQQ4i3NVT-UeriLZnHDb2D147WL0E7KfzoZznkNpKaCnDUo_09MSVXPKhRXqNaH9DYQQ8pMPCcVMDHxMjUEd5ycvAl8LJVSy32-1l1ix9lgJTQ\"},\"dpopKeyThumbprint\":\"oE_VLfMwaUO1GgDCBKUb__qedb99FPz82TOxT8HJZTQ\",\"issuedAtEpochMs\":1776597671291,\"tenantId\":\"default\",\"scopes\":[\"advisory-ai:operate\",\"advisory-ai:view\",\"advisory:read\",\"airgap:seal\",\"airgap:status:read\",\"analytics.read\",\"aoc:verify\",\"authority.audit.read\",\"authority:branding.read\",\"authority:branding.write\",\"authority:clients.read\",\"authority:clients.write\",\"authority:roles.read\",\"authority:roles.write\",\"authority:tenants.read\",\"authority:tenants.write\",\"authority:tokens.read\",\"authority:tokens.revoke\",\"authority:users.read\",\"authority:users.write\",\"doctor:admin\",\"doctor:run\",\"email\",\"evidence:read\",\"exceptions:approve\",\"exceptions:read\",\"export.admin\",\"export.operator\",\"export.viewer\",\"findings:read\",\"graph:read\",\"integration:operate\",\"integration:read\",\"integration:write\",\"notify.admin\",\"notify.escalate\",\"notify.operator\",\"notify.viewer\",\"offline_access\",\"openid\",\"ops.health\",\"orch:operate\",\"orch:quota\",\"orch:read\",\"packs.approve\",\"packs.read\",\"packs.run\",\"packs.write\",\"platform.context.read\",\"platform.context.write\",\"policy:activate\",\"policy:approve\",\"policy:audit\",\"policy:author\",\"policy:edit\",\"policy:operate\",\"policy:publish\",\"policy:read\",\"policy:review\",\"policy:run\",\"policy:simulate\",\"profile\",\"registry.admin\",\"release:publish\",\"release:read\",\"release:write\",\"sbom:read\",\"scanner:read\",\"scheduler:operate\",\"scheduler:read\",\"signer:admin\",\"signer:read\",\"signer:rotate\",\"signer:sign\",\"timeline:read\",\"timeline:write\",\"trust:admin\",\"trust:read\",\"trust:write\",\"ui.admin\",\"ui.preferences.read\",\"ui.preferences.write\",\"ui.read\",\"vex:read\",\"vexhub:read\",\"vuln:audit\",\"vuln:investigate\",\"vuln:operate\",\"vuln:view\"],\"audiences\":[],\"authenticationTimeEpochMs\":1776597671000,\"freshAuthActive\":false,\"freshAuthExpiresAtEpochMs\":null}"
- ],
- [
- "stellaops:wasEverAuth",
- "true"
+ "stellaops.auth.login.32ba6d61-17c4-4222-b319-b64e597ee5b6",
+ "{\"state\":\"32ba6d61-17c4-4222-b319-b64e597ee5b6\",\"codeVerifier\":\"IrWlkffWDQqmklZSDVbXS6CBRu4Kqq2H0fq0NvHUK9g\",\"createdAtEpochMs\":1776864667465,\"returnUrl\":\"/\",\"nonce\":\"61708ad7-c4ff-49af-9af0-72da4ee715e0\"}"
]
]
},
"sessionStatus": {
- "hasFullSession": true,
- "hasSessionInfo": true
+ "hasFullSession": false,
+ "hasSessionInfo": false
},
"events": {
"consoleErrors": [],
@@ -59,5 +26,5 @@
"responseErrors": []
},
"statePath": "C:\\dev\\New folder\\git.stella-ops.org\\src\\Web\\StellaOps.Web\\output\\playwright\\live-setup-wizard-first-run-bootstrap.state.json",
- "screenshotPath": null
+ "screenshotPath": "C:\\dev\\New folder\\git.stella-ops.org\\src\\Web\\StellaOps.Web\\output\\playwright\\live-frontdoor-auth-failure.png"
}
diff --git a/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-first-run-bootstrap.json b/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-first-run-bootstrap.json
index f92845a5b..598ee57bc 100644
--- a/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-first-run-bootstrap.json
+++ b/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-first-run-bootstrap.json
@@ -1,104 +1,4 @@
{
- "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®ions=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"
- }
+ "generatedAtUtc": "2026-04-22T13:39:54.504Z",
+ "fatalError": "Setup wizard opened in an unexpected state: {\"url\":\"https://stella-ops.local/setup-wizard/wizard\",\"currentStepId\":\"admin\",\"sessionStatus\":\"in_progress\",\"snapshot\":{\"label\":\"initial\",\"url\":\"https://stella-ops.local/setup-wizard/wizard\",\"title\":\"Wizard - StellaOps\",\"heading\":\"Setup\",\"alerts\":[],\"visibleButtons\":[\"+ Add Another User\",\"PreviousDatabase Migrations\",\"Apply and ContinueCryptographic Provider\"]}}"
}
diff --git a/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-full-bootstrap.auth.json b/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-full-bootstrap.auth.json
index 745c7e63e..cec2d0fcd 100644
--- a/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-full-bootstrap.auth.json
+++ b/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-full-bootstrap.auth.json
@@ -1,39 +1,37 @@
{
- "authenticatedAtUtc": "2026-04-15T06:39:27.285Z",
+ "authenticatedAtUtc": "2026-04-22T13:45:36.168Z",
+ "authenticated": false,
+ "error": "Frontdoor authentication did not establish a Stella Ops session. finalUrl=https://stella-ops.local/connect/authorize?response_type=code&client_id=stella-ops-ui&redirect_uri=https%3A%2F%2Fstella-ops.local%2Fauth%2Fcallback&scope=openid+profile+email+offline_access+ui.read+ui.admin+ui.preferences.read+ui.preferences.write+authority%3Atenants.read+authority%3Atenants.write+authority%3Ausers.read+authority%3Ausers.write+authority%3Aroles.read+authority%3Aroles.write+authority%3Aclients.read+authority%3Aclients.write+authority%3Atokens.read+authority%3Atokens.revoke+authority%3Abranding.read+authority%3Abranding.write+authority.audit.read+graph%3Aread+sbom%3Aread+scanner%3Aread+policy%3Aread+policy%3Asimulate+policy%3Aauthor+policy%3Areview+policy%3Aapprove+policy%3Arun+policy%3Aactivate+policy%3Aaudit+policy%3Aedit+policy%3Aoperate+policy%3Apublish+airgap%3Aseal+airgap%3Astatus%3Aread+orch%3Aread+orch%3Aoperate+orch%3Aquota+analytics.read+advisory%3Aread+advisory-ai%3Aview+advisory-ai%3Aoperate+vex%3Aread+vexhub%3Aread+exceptions%3Aread+exceptions%3Aapprove+aoc%3Averify+findings%3Aread+release%3Aread+release%3Awrite+release%3Apublish+scheduler%3Aread+scheduler%3Aoperate+notify.viewer+notify.operator+notify.admin+notify.escalate+evidence%3Aread+export.viewer+export.operator+export.admin+vuln%3Aview+vuln%3Ainvestigate+vuln%3Aoperate+vuln%3Aaudit+platform.context.read+platform.context.write+doctor%3Arun+doctor%3Aadmin+ops.health+integration%3Aread+integration%3Awrite+integration%3Aoperate+packs.read+packs.write+packs.run+packs.approve+registry.admin+timeline%3Aread+timeline%3Awrite+trust%3Aread+trust%3Awrite+trust%3Aadmin+signer%3Aread+signer%3Asign+signer%3Arotate+signer%3Aadmin&state=17cfffca-0e3b-4b5d-a9a4-4871a5318319&nonce=bc9e0ef3-59b5-49c6-a2f9-6fa9f3fa49c4&code_challenge=zQhC8czggb6wslqDNLutUDJQxNbBF05LQdwaEw9Gk_8&code_challenge_method=S256&audience=stella-ops-api&ui_return=%2F signInVisible=true",
"baseUrl": "https://stella-ops.local",
- "finalUrl": "https://stella-ops.local/setup-wizard/wizard",
- "title": "Wizard - StellaOps",
+ "finalUrl": "https://stella-ops.local/connect/authorize?response_type=code&client_id=stella-ops-ui&redirect_uri=https%3A%2F%2Fstella-ops.local%2Fauth%2Fcallback&scope=openid+profile+email+offline_access+ui.read+ui.admin+ui.preferences.read+ui.preferences.write+authority%3Atenants.read+authority%3Atenants.write+authority%3Ausers.read+authority%3Ausers.write+authority%3Aroles.read+authority%3Aroles.write+authority%3Aclients.read+authority%3Aclients.write+authority%3Atokens.read+authority%3Atokens.revoke+authority%3Abranding.read+authority%3Abranding.write+authority.audit.read+graph%3Aread+sbom%3Aread+scanner%3Aread+policy%3Aread+policy%3Asimulate+policy%3Aauthor+policy%3Areview+policy%3Aapprove+policy%3Arun+policy%3Aactivate+policy%3Aaudit+policy%3Aedit+policy%3Aoperate+policy%3Apublish+airgap%3Aseal+airgap%3Astatus%3Aread+orch%3Aread+orch%3Aoperate+orch%3Aquota+analytics.read+advisory%3Aread+advisory-ai%3Aview+advisory-ai%3Aoperate+vex%3Aread+vexhub%3Aread+exceptions%3Aread+exceptions%3Aapprove+aoc%3Averify+findings%3Aread+release%3Aread+release%3Awrite+release%3Apublish+scheduler%3Aread+scheduler%3Aoperate+notify.viewer+notify.operator+notify.admin+notify.escalate+evidence%3Aread+export.viewer+export.operator+export.admin+vuln%3Aview+vuln%3Ainvestigate+vuln%3Aoperate+vuln%3Aaudit+platform.context.read+platform.context.write+doctor%3Arun+doctor%3Aadmin+ops.health+integration%3Aread+integration%3Awrite+integration%3Aoperate+packs.read+packs.write+packs.run+packs.approve+registry.admin+timeline%3Aread+timeline%3Awrite+trust%3Aread+trust%3Awrite+trust%3Aadmin+signer%3Aread+signer%3Asign+signer%3Arotate+signer%3Aadmin&state=17cfffca-0e3b-4b5d-a9a4-4871a5318319&nonce=bc9e0ef3-59b5-49c6-a2f9-6fa9f3fa49c4&code_challenge=zQhC8czggb6wslqDNLutUDJQxNbBF05LQdwaEw9Gk_8&code_challenge_method=S256&audience=stella-ops-api&ui_return=%2F",
+ "title": "Sign In — StellaOps",
+ "bodyText": "StellaOps\n\nSign in to continue\n\nInvalid username or password.\nUSERNAME\nPASSWORD\n Sign In",
"cookies": [],
"storage": {
- "localStorageEntries": [
- [
- "stellaops.auth.session.info",
- "{\"subject\":\"34e69e47d31647b8930744944f2fff70\",\"expiresAtEpochMs\":1776236963629,\"issuedAtEpochMs\":1776235164630,\"dpopKeyThumbprint\":\"Pz15RQFEcs1TXnO18okHGYOmWcPZlwxZGux42DuIWCs\",\"tenantId\":\"demo-prod\"}"
- ],
- [
- "stellaops.auth.session.full",
- "{\"tokens\":{\"accessToken\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IlVHRTBKWklTUEMySUlSVU8tS1c1TDBGNVhKWUZTWTBKRUw3SUJRX1kiLCJ0eXAiOiJhdCtqd3QifQ.eyJpc3MiOiJodHRwczovL2F1dGhvcml0eS5zdGVsbGEtb3BzLmxvY2FsLyIsImV4cCI6MTc3NjIzNjk2NCwiaWF0IjoxNzc2MjM1MTY0LCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIG9mZmxpbmVfYWNjZXNzIHVpLnJlYWQgdWkuYWRtaW4gdWkucHJlZmVyZW5jZXMucmVhZCB1aS5wcmVmZXJlbmNlcy53cml0ZSBhdXRob3JpdHk6dGVuYW50cy5yZWFkIGF1dGhvcml0eTp0ZW5hbnRzLndyaXRlIGF1dGhvcml0eTp1c2Vycy5yZWFkIGF1dGhvcml0eTp1c2Vycy53cml0ZSBhdXRob3JpdHk6cm9sZXMucmVhZCBhdXRob3JpdHk6cm9sZXMud3JpdGUgYXV0aG9yaXR5OmNsaWVudHMucmVhZCBhdXRob3JpdHk6Y2xpZW50cy53cml0ZSBhdXRob3JpdHk6dG9rZW5zLnJlYWQgYXV0aG9yaXR5OnRva2Vucy5yZXZva2UgYXV0aG9yaXR5OmJyYW5kaW5nLnJlYWQgYXV0aG9yaXR5OmJyYW5kaW5nLndyaXRlIGF1dGhvcml0eS5hdWRpdC5yZWFkIGdyYXBoOnJlYWQgc2JvbTpyZWFkIHNjYW5uZXI6cmVhZCBwb2xpY3k6cmVhZCBwb2xpY3k6c2ltdWxhdGUgcG9saWN5OmF1dGhvciBwb2xpY3k6cmV2aWV3IHBvbGljeTphcHByb3ZlIHBvbGljeTpydW4gcG9saWN5OmFjdGl2YXRlIHBvbGljeTphdWRpdCBwb2xpY3k6ZWRpdCBwb2xpY3k6b3BlcmF0ZSBwb2xpY3k6cHVibGlzaCBhaXJnYXA6c2VhbCBhaXJnYXA6c3RhdHVzOnJlYWQgb3JjaDpyZWFkIG9yY2g6b3BlcmF0ZSBvcmNoOnF1b3RhIGFuYWx5dGljcy5yZWFkIGFkdmlzb3J5OnJlYWQgYWR2aXNvcnktYWk6dmlldyBhZHZpc29yeS1haTpvcGVyYXRlIHZleDpyZWFkIHZleGh1YjpyZWFkIGV4Y2VwdGlvbnM6cmVhZCBleGNlcHRpb25zOmFwcHJvdmUgYW9jOnZlcmlmeSBmaW5kaW5nczpyZWFkIHJlbGVhc2U6cmVhZCByZWxlYXNlOndyaXRlIHJlbGVhc2U6cHVibGlzaCBzY2hlZHVsZXI6cmVhZCBzY2hlZHVsZXI6b3BlcmF0ZSBub3RpZnkudmlld2VyIG5vdGlmeS5vcGVyYXRvciBub3RpZnkuYWRtaW4gbm90aWZ5LmVzY2FsYXRlIGV2aWRlbmNlOnJlYWQgZXhwb3J0LnZpZXdlciBleHBvcnQub3BlcmF0b3IgZXhwb3J0LmFkbWluIHZ1bG46dmlldyB2dWxuOmludmVzdGlnYXRlIHZ1bG46b3BlcmF0ZSB2dWxuOmF1ZGl0IHBsYXRmb3JtLmNvbnRleHQucmVhZCBwbGF0Zm9ybS5jb250ZXh0LndyaXRlIGRvY3RvcjpydW4gZG9jdG9yOmFkbWluIG9wcy5oZWFsdGggaW50ZWdyYXRpb246cmVhZCBpbnRlZ3JhdGlvbjp3cml0ZSBpbnRlZ3JhdGlvbjpvcGVyYXRlIHBhY2tzLnJlYWQgcGFja3Mud3JpdGUgcGFja3MucnVuIHBhY2tzLmFwcHJvdmUgcmVnaXN0cnkuYWRtaW4gdGltZWxpbmU6cmVhZCB0aW1lbGluZTp3cml0ZSB0cnVzdDpyZWFkIHRydXN0OndyaXRlIHRydXN0OmFkbWluIHNpZ25lcjpyZWFkIHNpZ25lcjpzaWduIHNpZ25lcjpyb3RhdGUgc2lnbmVyOmFkbWluIiwianRpIjoiNWQ2ODViMDAtMmE5Ni00NmJiLTllYjQtMjY4N2NmZWYwYWVlIiwic3ViIjoiMzRlNjllNDdkMzE2NDdiODkzMDc0NDk0NGYyZmZmNzAiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiIsIm5hbWUiOiJhZG1pbiIsInJvbGUiOiJhZG1pbiIsInN0ZWxsYW9wczp0ZW5hbnQiOiJkZW1vLXByb2QiLCJhdXRoX3RpbWUiOjE3NzYyMzUxNjQsIm9pX3Byc3QiOiJzdGVsbGEtb3BzLXVpIiwiY2xpZW50X2lkIjoic3RlbGxhLW9wcy11aSJ9.HZUsxeLnqkzDd2GQosQxSrBq7vRFKkFZpDpsLr1-IEipha4otDDRa_dD1yr9bJ39OHeLAoaWZpDniDDgJudaGguAJxC3mqYtYnYPXQ_ClGtfRw05Lu3oBidBgc7i4uTkCX2mTfMTO0sQRf8VQICMGxF8RxP-5IKsJ__4x3ZbO0x4NZzGv6iZ3kJaV3AB-QWdjz1_78y2TidT6VNUvLo5tBiCv-62z8zkUuv6tyS6Gn19xdwCZc2hlyOpYSGBMJh_dU83AeDBmJrUXxSvz_To2keCniJyzw85IEkP_J-9Mz5cKszwBfZN9FpALewZdS6H7nmtlGkPSUjNJ86XAn2icw\",\"tokenType\":\"Bearer\",\"refreshToken\":\"eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZDQkMtSFM1MTIiLCJraWQiOiJVRk9NRks1RU05UzRETkwwRjlPUEZZVVdVRVJJU0JTM1dISkdJRFVEIiwidHlwIjoib2lfcmVmdCtqd3QiLCJjdHkiOiJKV1QifQ.PEH-n3FpOzGnr1NFnGilygv6qje3uXwGOOotjIp5OuYDLuKEqgwm8DW9uegIZA2C7dYCw2gdL6ZzDWfrvCwUxuw_U61vCWr08HwsEkhSxiFWQRY0beU4J7xDZf99b-SLdRH3651eO9V7Gmax1_j9V8d3kIwpPDrOZxNxczJw8OtGZ5w-vviWiMwWJjhVCR0m2Dbf3t6tZxNUDQMl53MGtTF49hqfD0JbIQiedZ08GQay8WePwrBDVgbDBn_Zg_Y6ieZs7NPRQQ3OoN00NRXWfg_kRlbypiuxlLd0XVQ8VDmL8etAoSZNdMbe2dtgL7YekFAMLbKBYYhrxiSjUNgzFg.ES7YTH71SLumZw-yUCEW4Q.7byeYeKf7e7iJiiL7BRsB7YOmUeW3IuhbgdL9-b15kcVVvUdXGTM1yLUiUxb2iIUaxzv9jrg-I-uvx-WOvg9gFeEaZ9BX0NIwXtWDI7jHvt0Sm3YTXrsRQpsaVmupKAUvm3TVCCQGFYGvKxOTjqsCEHet73JHvff6UVEL_SExSvqRQ6gQ-O2btE2_JeIA8BZE7clFVw043qGpI2twSMMOyRT_ocwz23U2VNAsKBNQQBaL3iYh8fA4vssd9JYsXaIn6gpSG2TTH2U1N2Q8DpraQHNPxHoz_NmGzhgIwFpoFOfz63SiA5deG2M3m3KdbAMMWAVoKdX5sYknEZwW5QDFQtaXVk4_eqUa9KltrE2F0Txt2BX3dulTlmKol-7PJALLlLOwWbcenIqzvNSZgXAaL7WBTYcyvnt0WqRLUq456ZXxYJfHl6WtDthbhflqGcaVVj_LmPDj4DRtFkGSMAsn_OK9gdeEpbbcXn3dsvtdA9DBnQdITl17pBbN-XKZ2qalDfTJ483pE-ju2x2ty1wHKQ2YO52jHIH_TFpZNYd4O_TBw-d8ePYDE5_k6ixXVs8BnfckfUta0ZlSwjqd-V-J46z_FIqpQ25HvV9URdDtrxe6kfVDkdA0WxQTmaMIfNZH3-CMyoSaqaT4XTfaaULycMiQKEFxSftIfi2-egCqVEdxjfD-OVK1z0_Q4qoHHUARbyIeOOOUAZK1BpZTz1JAW9SP52Z9pByxaSDNt3ZKG7L-Ezg9gcE_vNa0igy7TgMHU77dIy8veuthmuknrRcL9d9zf3EPm2aAFfwpvl_UVO3Fma93udoiztA32THmqYscfY7Hrr1Mg6jYAmREB3hYyp6A1h2FyzyEHPmMLdbXC4k2v1IUCrfdegg9AggeF3YLkG8GpkJHl_1ZZANVEuQqhdwJ7HeTgoVRCBMPsmvPGeBZwXJUeKRLsB0bjZWhl9Ydgn2fuj1SYoSxh86sEM-OiLyHupdLhbD9AIBdIhJNpxez1L64V6T9sGHDuAYjL_cb-8fEoCi8O8h087ZAwlLCdWhySF7wnJPww7T_WmbE_cjDisaaZRvO1SNXQgPa99OJnfDCH7vLC7FjfcthzI7HmfAV_fAZsTiyu_WwrNNlzofrrjk_G0xZF7j26By_3hADnIjFUffse85K-Xa544CZmg0XLZsb063ma1p_DGAH2tVaQ04opn2NuppWtqH7eJnbddBqT6MyBp_vLBoRwp7un8Tb8r3Zj41bQVad2TcqmaxCzQlCkczwgYkEgZgBGeW6OCsv7Zg1hfcHMPmAHP8SMvmypSxH3X3oQx5UpRpga2WxEd7aUQWLLb_V-STkqH1WRMkeoxTndx0tYMHf6BKlGKEId5oP9bdZUZRN9KT5352FaX1vDLaHTTPlu6LZrtCPycQ_1QxbaGtduhzMWHMHSOK1b3EJuxYmPNnrDBhs7L4eLZxliCcPYeuT_NbPCSgXdjQRlAMvxjvbz9w5eMlmaUJBppqVqW_X7d8iuSkcwE6C0RFyr622FpZmxCFqa-L5mZCf-6vY0kxYfMxGP_eaUNxPtNJL1d0QmVr65JlQ9xKH_b0cuSKNbWMo5P39U2FZ4Bxto-mCP1Qo28U-ciR_8ZH9Yc7fT5pNSbahV_Z_YORjw_779eudARPprfuvsmh_vox5MP2crcdh8ur5lKHn_QUmBNczsB5QHEZG34ShbZfgQV5Z8fFsi8htn9A07XUhO-gREixr4vTq3vRczb9n2CEPiq1s3qeDfyv2lUZNXdhkWV6xzadbmNcpruAwBzok56lRHsNFzApa2N5nMp5b34oWpNLJIyIIRDZ5x8JpRIvVOR76LvMHXVJJfiwdNb41RS02nZrqtK0-0AW3yyuhO6gJ8KHk0RO9NFTw731tIWp3a11WHlqPugpEk4Jb95rRSYzcau3QpQWALMiey50C9y72dG_5CwH5fupNiexQyY088eT8ZexHi_m6VJdR0n-6I8cLDkQ5ORSeGvMDpBzdA6Gki4ScQ9je6ggfm8j_AmEBcEYfmlhqYabH9yKbQ8nUNfnC-T7HxFD5bgal-f7XEF7OvZn_JyPUW--fZbMI2aJq2K_iNpJbHft9rgz-UGDWmBu1pnB7RR_acbLYewAITOO1Y410-aYAsGZQkYXxphTK0S4Y73wLto_92VEPZHlE3J4lpD0SRH3Od7oE7E4-augiybmWPVo1w3PQ3g0bHOy60oMCGmJuShytPUBFSaUyvG-Bv4fJaXKbUlxF-PfupBeJjKZwUR7kiOmyW7DEzoB44VeGX9dNLiFSx54POeJGJnxmayvoo9C--DKQtpIK5NIFTLZ5jvdGhsjDebdzonEPrGnIoNQRUdZO0Jh9bwY8KIw5qK272Efq_chesRxjJ0_ed37xYlp1ydzQgrsRz0OGDMo2_Tv462Y_3QfpXWB4FbFOziSGK452qnvXBPRRuwWDE5Mc4mRMhTmFijQtoq6hzeCn-0XoMXrnE1f25wcDayJ9CABySWgMgGUufbTOjedli1t-uN6GUUvnO1LDvsTXg-ZDYd_LZMBGyOLScUinLGOnaKCvkawyuJWlQGb58Z9a9pJIlittTkP0lNxK47uKh7eB9tx3MMEbTsSjlw8ZdzKxxGdWorb2qyONyZmaVFjvQSfnXlM1etGQxMAGNLwkBDUOjczg3LjgPpe8J28EKdE23opaecAsDJf8SWy1qbLlv31homBNqVZuHieXuT5ZdhIV1qbzC9qVXwWxQBetn70MOi_ijm00CBGs8Qvegjqfi_M-BcqLNELnkF25ScLmDuSC6aFT9tgxUgUunojys3GD4vZkPMHpH2HWrAwp5icA0knBbDJyWfzdafX3bB8YV8FLeWwoMQKxMnZEZ8-MoP58aBCTfmgUwY15b19yfUjh2Biedn9lK7AyMdP7dSC-8Gz-XQpBvyxMcuQxTp7rerylaP-U48YPlTClpsBj4kyeV8iyGHhgik2PBIS2Cb_4EzuUpSHaTjtIxy45lhl_Wi9X7MD34MZrEIKUMDZWLAeYn-fsBQ-ZkK7CfuMSKtSvzbIJ9UUU2vlW_s5KyAKbBDo2iseuD4d0EvnTvvcLfx6EhI_N3AYpa2kIX-i2HKNvil7OFL1MddwHaBEOqb4h3RxgUhWhlXtqpiQOKvgcTp00OSpBv_r4AVDEtFBjPh08fEnZE_KC5WGBQihGMadvJ39I7K5YtlcT4UDim178hb2XvecW74_szu_k-6hsbfQH_7kSivmWqbptpmFMt3A5ru1mCPKZNCwnAMDihcPnAwAkuMVHq2E-ivPnezN8B07Ho8KuTtiwm28bKdnQKZ-KArgxICd5iD3Bo4H-wXZHEk2gYscbGvi6Qqk12lsyQbB6O5wsW-Y5NTAxXhdhXoRgJw_DcGDKRZ0_Yh6sibad2s6-ivC4xdqIisnvOsUNmx0Qaho26Lg-flCNL30nKpwmaAl9EzwJqOSVRtAC2U-7tYUWBqhEcxVkPFWpXyI8WTZefvOtCPEhbtZAsh5ponmTVagzvNyfa7h3gi92NeGbJVZ_B-o3svBZ-6pKC7EeMg40mhoY3kXcpRXgj8T5fJDrj5-eNc-EF38-3wwyHPg6vwrejUclOK9KccqsyASdRXM6rhRZD5AS4kNKOL5hPJi3FvAdr6Vb05NWSI7nl8lQCOQi4e1rbkr4JLkhoXDf8fObM8-VG7Xy5lE_Qaks41XNaB_k-hzIZ2qksY8hMySJC1IPDYlW-ZDHlYppMwoJhZl2YyTemfdQwAwRlhzRGwbcQ2x0d8zu5ZbokqDtg3kBZkQu7dBiBmo2coJgHlaJVcwOsV-8IjgfbEskd6hB9spShDaNTHifWy0zW26pUYFeYAvI-nXAZDR1wnfeTeFtz2jXFFMGDaJ2LXgBbBhsVNolMdGy8fDJ1ccaVx5YIbLjlyoASJ0tI_Ib5rmKZ4Afg9hfH7mnBNapk-bajWucQlYmcZI0KghlfP6QM3YOyqrv-QV0AvZ8oUaQ3GNBA61jx-B07LQeIsHGBYhps0FAdeLfPReCOtHaE-u_LDtP0cL5Gk1uX4998eE3QgKz6PKLa3wps1Am8l5OSzh-xJE-6HkTlL4kBssnzQ-jht-s77gMYH34HGVLW3Ll44l8d2Jdzchi3Y-eWhKIxQDI1ohu-hB25iFlxndwVt2j-ShXHtoG3zxb_nNWbJrsLhXn6EjL3pw75wMG4YUP7cWdiV2OKohkTzAFBtB-qXMyAf2eeUaCUyTmdOJ72Rc0bxy5sclRGUkI4AOQ5UpPnXBIOFJE84banRpVdTSJZZ9cKUxK2-BhEFyY-fOulydV1Ki0wgmslqjFb51DSsOJYvcwN71AA3mryLK0iG5n9eHPOnRSAjbyVZPss2R34CU1rZxeIj77hH_V9cFuj8AnGp0eTdTP0xj0_asmwCSTivJ1KgOSNDlcvXZNMRlb_DF5dTSO6AOmzM8mjmI9DOQdonyAEVp9etJzTFGQR4mwYerh2l-BonwtZh2FuT7JA22tPhb4T_tEiq3sGNtT0d404dWQpCQ-g0tIgJwYZtJ26Wz6eRt-U8n5OyB06YoUB3Q0zOiqsyXXx0DDTtYgwUOze0Ogu0hP7FqYkxqDcpGgtdisU0MEPz1PD4v5FGHvAUGM4rzv38c0xFODT08ahg2SlPg3QqIC1yxOha6i9QquZnWA2Y-veja1lXdzKSnakAn0JbjizWcRNeCJePNsWC8vUBw4fXPkn7dlTnUeeEu6cjeeKIWGyykdw.D--SiGO27ijDfsop7lkC-8eIQINw2JNWTKzkHB29CVU\",\"scope\":\"openid profile email offline_access ui.read ui.admin ui.preferences.read ui.preferences.write authority:tenants.read authority:tenants.write authority:users.read authority:users.write authority:roles.read authority:roles.write authority:clients.read authority:clients.write authority:tokens.read authority:tokens.revoke authority:branding.read authority:branding.write authority.audit.read graph:read sbom:read scanner:read policy:read policy:simulate policy:author policy:review policy:approve policy:run policy:activate policy:audit policy:edit policy:operate policy:publish airgap:seal airgap:status:read orch:read orch:operate orch:quota analytics.read advisory:read advisory-ai:view advisory-ai:operate vex:read vexhub:read exceptions:read exceptions:approve aoc:verify findings:read release:read release:write release:publish scheduler:read scheduler:operate notify.viewer notify.operator notify.admin notify.escalate evidence:read export.viewer export.operator export.admin vuln:view vuln:investigate vuln:operate vuln:audit platform.context.read platform.context.write doctor:run doctor:admin ops.health integration:read integration:write integration:operate packs.read packs.write packs.run packs.approve registry.admin timeline:read timeline:write trust:read trust:write trust:admin signer:read signer:sign signer:rotate signer:admin\",\"expiresAtEpochMs\":1776236963629},\"identity\":{\"subject\":\"34e69e47d31647b8930744944f2fff70\",\"name\":\"admin\",\"roles\":[],\"idToken\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IlVHRTBKWklTUEMySUlSVU8tS1c1TDBGNVhKWUZTWTBKRUw3SUJRX1kiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2F1dGhvcml0eS5zdGVsbGEtb3BzLmxvY2FsLyIsImV4cCI6MTc3NjIzODQ2NCwiaWF0IjoxNzc2MjM1MTY0LCJhdWQiOiJzdGVsbGEtb3BzLXVpIiwic3ViIjoiMzRlNjllNDdkMzE2NDdiODkzMDc0NDk0NGYyZmZmNzAiLCJuYW1lIjoiYWRtaW4iLCJhenAiOiJzdGVsbGEtb3BzLXVpIiwibm9uY2UiOiJlMGNkZTM2NS0zZjZjLTQxMTUtODM3OS00ZjY2ZmJmNWM1NTMiLCJhdF9oYXNoIjoiV0M0LWdVc0JfelZUdGJyVUtlOGxUQSJ9.CW32YreJHwMkO660IXgJ6fpldRMmlCIGGcUqhES9Dp7ICIUGLVnysn50-NH6GLD6HVOogx50PbA3dhgaegNAW25TiUNAIdlftVBiOwKhsXZzZK_b16h8UinoJmB8gzqGwIMc4tsXuXIpyUDcaTzK5q3eTFMlg1x1yB_Mdb6Qkdh2tUuagNaJWj3H2JOwoM8_Y4f6O2Hpp10Trggbqq3HTSKhOZavOvXFlgci3biO7ToBNfdJ3Z7zsqVx4atevtx_MSD75As_jsBwRdssD7hviN36nryGXcUgH9MVUp-jUbUYakbdBVUznzYJOfa44Gga8cHo9NLupseSwAuTpDeiGA\"},\"dpopKeyThumbprint\":\"Pz15RQFEcs1TXnO18okHGYOmWcPZlwxZGux42DuIWCs\",\"issuedAtEpochMs\":1776235164630,\"tenantId\":\"demo-prod\",\"scopes\":[\"advisory-ai:operate\",\"advisory-ai:view\",\"advisory:read\",\"airgap:seal\",\"airgap:status:read\",\"analytics.read\",\"aoc:verify\",\"authority.audit.read\",\"authority:branding.read\",\"authority:branding.write\",\"authority:clients.read\",\"authority:clients.write\",\"authority:roles.read\",\"authority:roles.write\",\"authority:tenants.read\",\"authority:tenants.write\",\"authority:tokens.read\",\"authority:tokens.revoke\",\"authority:users.read\",\"authority:users.write\",\"doctor:admin\",\"doctor:run\",\"email\",\"evidence:read\",\"exceptions:approve\",\"exceptions:read\",\"export.admin\",\"export.operator\",\"export.viewer\",\"findings:read\",\"graph:read\",\"integration:operate\",\"integration:read\",\"integration:write\",\"notify.admin\",\"notify.escalate\",\"notify.operator\",\"notify.viewer\",\"offline_access\",\"openid\",\"ops.health\",\"orch:operate\",\"orch:quota\",\"orch:read\",\"packs.approve\",\"packs.read\",\"packs.run\",\"packs.write\",\"platform.context.read\",\"platform.context.write\",\"policy:activate\",\"policy:approve\",\"policy:audit\",\"policy:author\",\"policy:edit\",\"policy:operate\",\"policy:publish\",\"policy:read\",\"policy:review\",\"policy:run\",\"policy:simulate\",\"profile\",\"registry.admin\",\"release:publish\",\"release:read\",\"release:write\",\"sbom:read\",\"scanner:read\",\"scheduler:operate\",\"scheduler:read\",\"signer:admin\",\"signer:read\",\"signer:rotate\",\"signer:sign\",\"timeline:read\",\"timeline:write\",\"trust:admin\",\"trust:read\",\"trust:write\",\"ui.admin\",\"ui.preferences.read\",\"ui.preferences.write\",\"ui.read\",\"vex:read\",\"vexhub:read\",\"vuln:audit\",\"vuln:investigate\",\"vuln:operate\",\"vuln:view\"],\"audiences\":[],\"authenticationTimeEpochMs\":1776235164000,\"freshAuthActive\":false,\"freshAuthExpiresAtEpochMs\":null}"
- ],
- [
- "stellaops.theme",
- "system"
- ]
- ],
+ "localStorageEntries": [],
"sessionStorageEntries": [
[
- "stellaops.auth.session.full",
- "{\"tokens\":{\"accessToken\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IlVHRTBKWklTUEMySUlSVU8tS1c1TDBGNVhKWUZTWTBKRUw3SUJRX1kiLCJ0eXAiOiJhdCtqd3QifQ.eyJpc3MiOiJodHRwczovL2F1dGhvcml0eS5zdGVsbGEtb3BzLmxvY2FsLyIsImV4cCI6MTc3NjIzNjk2NCwiaWF0IjoxNzc2MjM1MTY0LCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIG9mZmxpbmVfYWNjZXNzIHVpLnJlYWQgdWkuYWRtaW4gdWkucHJlZmVyZW5jZXMucmVhZCB1aS5wcmVmZXJlbmNlcy53cml0ZSBhdXRob3JpdHk6dGVuYW50cy5yZWFkIGF1dGhvcml0eTp0ZW5hbnRzLndyaXRlIGF1dGhvcml0eTp1c2Vycy5yZWFkIGF1dGhvcml0eTp1c2Vycy53cml0ZSBhdXRob3JpdHk6cm9sZXMucmVhZCBhdXRob3JpdHk6cm9sZXMud3JpdGUgYXV0aG9yaXR5OmNsaWVudHMucmVhZCBhdXRob3JpdHk6Y2xpZW50cy53cml0ZSBhdXRob3JpdHk6dG9rZW5zLnJlYWQgYXV0aG9yaXR5OnRva2Vucy5yZXZva2UgYXV0aG9yaXR5OmJyYW5kaW5nLnJlYWQgYXV0aG9yaXR5OmJyYW5kaW5nLndyaXRlIGF1dGhvcml0eS5hdWRpdC5yZWFkIGdyYXBoOnJlYWQgc2JvbTpyZWFkIHNjYW5uZXI6cmVhZCBwb2xpY3k6cmVhZCBwb2xpY3k6c2ltdWxhdGUgcG9saWN5OmF1dGhvciBwb2xpY3k6cmV2aWV3IHBvbGljeTphcHByb3ZlIHBvbGljeTpydW4gcG9saWN5OmFjdGl2YXRlIHBvbGljeTphdWRpdCBwb2xpY3k6ZWRpdCBwb2xpY3k6b3BlcmF0ZSBwb2xpY3k6cHVibGlzaCBhaXJnYXA6c2VhbCBhaXJnYXA6c3RhdHVzOnJlYWQgb3JjaDpyZWFkIG9yY2g6b3BlcmF0ZSBvcmNoOnF1b3RhIGFuYWx5dGljcy5yZWFkIGFkdmlzb3J5OnJlYWQgYWR2aXNvcnktYWk6dmlldyBhZHZpc29yeS1haTpvcGVyYXRlIHZleDpyZWFkIHZleGh1YjpyZWFkIGV4Y2VwdGlvbnM6cmVhZCBleGNlcHRpb25zOmFwcHJvdmUgYW9jOnZlcmlmeSBmaW5kaW5nczpyZWFkIHJlbGVhc2U6cmVhZCByZWxlYXNlOndyaXRlIHJlbGVhc2U6cHVibGlzaCBzY2hlZHVsZXI6cmVhZCBzY2hlZHVsZXI6b3BlcmF0ZSBub3RpZnkudmlld2VyIG5vdGlmeS5vcGVyYXRvciBub3RpZnkuYWRtaW4gbm90aWZ5LmVzY2FsYXRlIGV2aWRlbmNlOnJlYWQgZXhwb3J0LnZpZXdlciBleHBvcnQub3BlcmF0b3IgZXhwb3J0LmFkbWluIHZ1bG46dmlldyB2dWxuOmludmVzdGlnYXRlIHZ1bG46b3BlcmF0ZSB2dWxuOmF1ZGl0IHBsYXRmb3JtLmNvbnRleHQucmVhZCBwbGF0Zm9ybS5jb250ZXh0LndyaXRlIGRvY3RvcjpydW4gZG9jdG9yOmFkbWluIG9wcy5oZWFsdGggaW50ZWdyYXRpb246cmVhZCBpbnRlZ3JhdGlvbjp3cml0ZSBpbnRlZ3JhdGlvbjpvcGVyYXRlIHBhY2tzLnJlYWQgcGFja3Mud3JpdGUgcGFja3MucnVuIHBhY2tzLmFwcHJvdmUgcmVnaXN0cnkuYWRtaW4gdGltZWxpbmU6cmVhZCB0aW1lbGluZTp3cml0ZSB0cnVzdDpyZWFkIHRydXN0OndyaXRlIHRydXN0OmFkbWluIHNpZ25lcjpyZWFkIHNpZ25lcjpzaWduIHNpZ25lcjpyb3RhdGUgc2lnbmVyOmFkbWluIiwianRpIjoiNWQ2ODViMDAtMmE5Ni00NmJiLTllYjQtMjY4N2NmZWYwYWVlIiwic3ViIjoiMzRlNjllNDdkMzE2NDdiODkzMDc0NDk0NGYyZmZmNzAiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiIsIm5hbWUiOiJhZG1pbiIsInJvbGUiOiJhZG1pbiIsInN0ZWxsYW9wczp0ZW5hbnQiOiJkZW1vLXByb2QiLCJhdXRoX3RpbWUiOjE3NzYyMzUxNjQsIm9pX3Byc3QiOiJzdGVsbGEtb3BzLXVpIiwiY2xpZW50X2lkIjoic3RlbGxhLW9wcy11aSJ9.HZUsxeLnqkzDd2GQosQxSrBq7vRFKkFZpDpsLr1-IEipha4otDDRa_dD1yr9bJ39OHeLAoaWZpDniDDgJudaGguAJxC3mqYtYnYPXQ_ClGtfRw05Lu3oBidBgc7i4uTkCX2mTfMTO0sQRf8VQICMGxF8RxP-5IKsJ__4x3ZbO0x4NZzGv6iZ3kJaV3AB-QWdjz1_78y2TidT6VNUvLo5tBiCv-62z8zkUuv6tyS6Gn19xdwCZc2hlyOpYSGBMJh_dU83AeDBmJrUXxSvz_To2keCniJyzw85IEkP_J-9Mz5cKszwBfZN9FpALewZdS6H7nmtlGkPSUjNJ86XAn2icw\",\"tokenType\":\"Bearer\",\"refreshToken\":\"eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZDQkMtSFM1MTIiLCJraWQiOiJVRk9NRks1RU05UzRETkwwRjlPUEZZVVdVRVJJU0JTM1dISkdJRFVEIiwidHlwIjoib2lfcmVmdCtqd3QiLCJjdHkiOiJKV1QifQ.PEH-n3FpOzGnr1NFnGilygv6qje3uXwGOOotjIp5OuYDLuKEqgwm8DW9uegIZA2C7dYCw2gdL6ZzDWfrvCwUxuw_U61vCWr08HwsEkhSxiFWQRY0beU4J7xDZf99b-SLdRH3651eO9V7Gmax1_j9V8d3kIwpPDrOZxNxczJw8OtGZ5w-vviWiMwWJjhVCR0m2Dbf3t6tZxNUDQMl53MGtTF49hqfD0JbIQiedZ08GQay8WePwrBDVgbDBn_Zg_Y6ieZs7NPRQQ3OoN00NRXWfg_kRlbypiuxlLd0XVQ8VDmL8etAoSZNdMbe2dtgL7YekFAMLbKBYYhrxiSjUNgzFg.ES7YTH71SLumZw-yUCEW4Q.7byeYeKf7e7iJiiL7BRsB7YOmUeW3IuhbgdL9-b15kcVVvUdXGTM1yLUiUxb2iIUaxzv9jrg-I-uvx-WOvg9gFeEaZ9BX0NIwXtWDI7jHvt0Sm3YTXrsRQpsaVmupKAUvm3TVCCQGFYGvKxOTjqsCEHet73JHvff6UVEL_SExSvqRQ6gQ-O2btE2_JeIA8BZE7clFVw043qGpI2twSMMOyRT_ocwz23U2VNAsKBNQQBaL3iYh8fA4vssd9JYsXaIn6gpSG2TTH2U1N2Q8DpraQHNPxHoz_NmGzhgIwFpoFOfz63SiA5deG2M3m3KdbAMMWAVoKdX5sYknEZwW5QDFQtaXVk4_eqUa9KltrE2F0Txt2BX3dulTlmKol-7PJALLlLOwWbcenIqzvNSZgXAaL7WBTYcyvnt0WqRLUq456ZXxYJfHl6WtDthbhflqGcaVVj_LmPDj4DRtFkGSMAsn_OK9gdeEpbbcXn3dsvtdA9DBnQdITl17pBbN-XKZ2qalDfTJ483pE-ju2x2ty1wHKQ2YO52jHIH_TFpZNYd4O_TBw-d8ePYDE5_k6ixXVs8BnfckfUta0ZlSwjqd-V-J46z_FIqpQ25HvV9URdDtrxe6kfVDkdA0WxQTmaMIfNZH3-CMyoSaqaT4XTfaaULycMiQKEFxSftIfi2-egCqVEdxjfD-OVK1z0_Q4qoHHUARbyIeOOOUAZK1BpZTz1JAW9SP52Z9pByxaSDNt3ZKG7L-Ezg9gcE_vNa0igy7TgMHU77dIy8veuthmuknrRcL9d9zf3EPm2aAFfwpvl_UVO3Fma93udoiztA32THmqYscfY7Hrr1Mg6jYAmREB3hYyp6A1h2FyzyEHPmMLdbXC4k2v1IUCrfdegg9AggeF3YLkG8GpkJHl_1ZZANVEuQqhdwJ7HeTgoVRCBMPsmvPGeBZwXJUeKRLsB0bjZWhl9Ydgn2fuj1SYoSxh86sEM-OiLyHupdLhbD9AIBdIhJNpxez1L64V6T9sGHDuAYjL_cb-8fEoCi8O8h087ZAwlLCdWhySF7wnJPww7T_WmbE_cjDisaaZRvO1SNXQgPa99OJnfDCH7vLC7FjfcthzI7HmfAV_fAZsTiyu_WwrNNlzofrrjk_G0xZF7j26By_3hADnIjFUffse85K-Xa544CZmg0XLZsb063ma1p_DGAH2tVaQ04opn2NuppWtqH7eJnbddBqT6MyBp_vLBoRwp7un8Tb8r3Zj41bQVad2TcqmaxCzQlCkczwgYkEgZgBGeW6OCsv7Zg1hfcHMPmAHP8SMvmypSxH3X3oQx5UpRpga2WxEd7aUQWLLb_V-STkqH1WRMkeoxTndx0tYMHf6BKlGKEId5oP9bdZUZRN9KT5352FaX1vDLaHTTPlu6LZrtCPycQ_1QxbaGtduhzMWHMHSOK1b3EJuxYmPNnrDBhs7L4eLZxliCcPYeuT_NbPCSgXdjQRlAMvxjvbz9w5eMlmaUJBppqVqW_X7d8iuSkcwE6C0RFyr622FpZmxCFqa-L5mZCf-6vY0kxYfMxGP_eaUNxPtNJL1d0QmVr65JlQ9xKH_b0cuSKNbWMo5P39U2FZ4Bxto-mCP1Qo28U-ciR_8ZH9Yc7fT5pNSbahV_Z_YORjw_779eudARPprfuvsmh_vox5MP2crcdh8ur5lKHn_QUmBNczsB5QHEZG34ShbZfgQV5Z8fFsi8htn9A07XUhO-gREixr4vTq3vRczb9n2CEPiq1s3qeDfyv2lUZNXdhkWV6xzadbmNcpruAwBzok56lRHsNFzApa2N5nMp5b34oWpNLJIyIIRDZ5x8JpRIvVOR76LvMHXVJJfiwdNb41RS02nZrqtK0-0AW3yyuhO6gJ8KHk0RO9NFTw731tIWp3a11WHlqPugpEk4Jb95rRSYzcau3QpQWALMiey50C9y72dG_5CwH5fupNiexQyY088eT8ZexHi_m6VJdR0n-6I8cLDkQ5ORSeGvMDpBzdA6Gki4ScQ9je6ggfm8j_AmEBcEYfmlhqYabH9yKbQ8nUNfnC-T7HxFD5bgal-f7XEF7OvZn_JyPUW--fZbMI2aJq2K_iNpJbHft9rgz-UGDWmBu1pnB7RR_acbLYewAITOO1Y410-aYAsGZQkYXxphTK0S4Y73wLto_92VEPZHlE3J4lpD0SRH3Od7oE7E4-augiybmWPVo1w3PQ3g0bHOy60oMCGmJuShytPUBFSaUyvG-Bv4fJaXKbUlxF-PfupBeJjKZwUR7kiOmyW7DEzoB44VeGX9dNLiFSx54POeJGJnxmayvoo9C--DKQtpIK5NIFTLZ5jvdGhsjDebdzonEPrGnIoNQRUdZO0Jh9bwY8KIw5qK272Efq_chesRxjJ0_ed37xYlp1ydzQgrsRz0OGDMo2_Tv462Y_3QfpXWB4FbFOziSGK452qnvXBPRRuwWDE5Mc4mRMhTmFijQtoq6hzeCn-0XoMXrnE1f25wcDayJ9CABySWgMgGUufbTOjedli1t-uN6GUUvnO1LDvsTXg-ZDYd_LZMBGyOLScUinLGOnaKCvkawyuJWlQGb58Z9a9pJIlittTkP0lNxK47uKh7eB9tx3MMEbTsSjlw8ZdzKxxGdWorb2qyONyZmaVFjvQSfnXlM1etGQxMAGNLwkBDUOjczg3LjgPpe8J28EKdE23opaecAsDJf8SWy1qbLlv31homBNqVZuHieXuT5ZdhIV1qbzC9qVXwWxQBetn70MOi_ijm00CBGs8Qvegjqfi_M-BcqLNELnkF25ScLmDuSC6aFT9tgxUgUunojys3GD4vZkPMHpH2HWrAwp5icA0knBbDJyWfzdafX3bB8YV8FLeWwoMQKxMnZEZ8-MoP58aBCTfmgUwY15b19yfUjh2Biedn9lK7AyMdP7dSC-8Gz-XQpBvyxMcuQxTp7rerylaP-U48YPlTClpsBj4kyeV8iyGHhgik2PBIS2Cb_4EzuUpSHaTjtIxy45lhl_Wi9X7MD34MZrEIKUMDZWLAeYn-fsBQ-ZkK7CfuMSKtSvzbIJ9UUU2vlW_s5KyAKbBDo2iseuD4d0EvnTvvcLfx6EhI_N3AYpa2kIX-i2HKNvil7OFL1MddwHaBEOqb4h3RxgUhWhlXtqpiQOKvgcTp00OSpBv_r4AVDEtFBjPh08fEnZE_KC5WGBQihGMadvJ39I7K5YtlcT4UDim178hb2XvecW74_szu_k-6hsbfQH_7kSivmWqbptpmFMt3A5ru1mCPKZNCwnAMDihcPnAwAkuMVHq2E-ivPnezN8B07Ho8KuTtiwm28bKdnQKZ-KArgxICd5iD3Bo4H-wXZHEk2gYscbGvi6Qqk12lsyQbB6O5wsW-Y5NTAxXhdhXoRgJw_DcGDKRZ0_Yh6sibad2s6-ivC4xdqIisnvOsUNmx0Qaho26Lg-flCNL30nKpwmaAl9EzwJqOSVRtAC2U-7tYUWBqhEcxVkPFWpXyI8WTZefvOtCPEhbtZAsh5ponmTVagzvNyfa7h3gi92NeGbJVZ_B-o3svBZ-6pKC7EeMg40mhoY3kXcpRXgj8T5fJDrj5-eNc-EF38-3wwyHPg6vwrejUclOK9KccqsyASdRXM6rhRZD5AS4kNKOL5hPJi3FvAdr6Vb05NWSI7nl8lQCOQi4e1rbkr4JLkhoXDf8fObM8-VG7Xy5lE_Qaks41XNaB_k-hzIZ2qksY8hMySJC1IPDYlW-ZDHlYppMwoJhZl2YyTemfdQwAwRlhzRGwbcQ2x0d8zu5ZbokqDtg3kBZkQu7dBiBmo2coJgHlaJVcwOsV-8IjgfbEskd6hB9spShDaNTHifWy0zW26pUYFeYAvI-nXAZDR1wnfeTeFtz2jXFFMGDaJ2LXgBbBhsVNolMdGy8fDJ1ccaVx5YIbLjlyoASJ0tI_Ib5rmKZ4Afg9hfH7mnBNapk-bajWucQlYmcZI0KghlfP6QM3YOyqrv-QV0AvZ8oUaQ3GNBA61jx-B07LQeIsHGBYhps0FAdeLfPReCOtHaE-u_LDtP0cL5Gk1uX4998eE3QgKz6PKLa3wps1Am8l5OSzh-xJE-6HkTlL4kBssnzQ-jht-s77gMYH34HGVLW3Ll44l8d2Jdzchi3Y-eWhKIxQDI1ohu-hB25iFlxndwVt2j-ShXHtoG3zxb_nNWbJrsLhXn6EjL3pw75wMG4YUP7cWdiV2OKohkTzAFBtB-qXMyAf2eeUaCUyTmdOJ72Rc0bxy5sclRGUkI4AOQ5UpPnXBIOFJE84banRpVdTSJZZ9cKUxK2-BhEFyY-fOulydV1Ki0wgmslqjFb51DSsOJYvcwN71AA3mryLK0iG5n9eHPOnRSAjbyVZPss2R34CU1rZxeIj77hH_V9cFuj8AnGp0eTdTP0xj0_asmwCSTivJ1KgOSNDlcvXZNMRlb_DF5dTSO6AOmzM8mjmI9DOQdonyAEVp9etJzTFGQR4mwYerh2l-BonwtZh2FuT7JA22tPhb4T_tEiq3sGNtT0d404dWQpCQ-g0tIgJwYZtJ26Wz6eRt-U8n5OyB06YoUB3Q0zOiqsyXXx0DDTtYgwUOze0Ogu0hP7FqYkxqDcpGgtdisU0MEPz1PD4v5FGHvAUGM4rzv38c0xFODT08ahg2SlPg3QqIC1yxOha6i9QquZnWA2Y-veja1lXdzKSnakAn0JbjizWcRNeCJePNsWC8vUBw4fXPkn7dlTnUeeEu6cjeeKIWGyykdw.D--SiGO27ijDfsop7lkC-8eIQINw2JNWTKzkHB29CVU\",\"scope\":\"openid profile email offline_access ui.read ui.admin ui.preferences.read ui.preferences.write authority:tenants.read authority:tenants.write authority:users.read authority:users.write authority:roles.read authority:roles.write authority:clients.read authority:clients.write authority:tokens.read authority:tokens.revoke authority:branding.read authority:branding.write authority.audit.read graph:read sbom:read scanner:read policy:read policy:simulate policy:author policy:review policy:approve policy:run policy:activate policy:audit policy:edit policy:operate policy:publish airgap:seal airgap:status:read orch:read orch:operate orch:quota analytics.read advisory:read advisory-ai:view advisory-ai:operate vex:read vexhub:read exceptions:read exceptions:approve aoc:verify findings:read release:read release:write release:publish scheduler:read scheduler:operate notify.viewer notify.operator notify.admin notify.escalate evidence:read export.viewer export.operator export.admin vuln:view vuln:investigate vuln:operate vuln:audit platform.context.read platform.context.write doctor:run doctor:admin ops.health integration:read integration:write integration:operate packs.read packs.write packs.run packs.approve registry.admin timeline:read timeline:write trust:read trust:write trust:admin signer:read signer:sign signer:rotate signer:admin\",\"expiresAtEpochMs\":1776236963629},\"identity\":{\"subject\":\"34e69e47d31647b8930744944f2fff70\",\"name\":\"admin\",\"roles\":[],\"idToken\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IlVHRTBKWklTUEMySUlSVU8tS1c1TDBGNVhKWUZTWTBKRUw3SUJRX1kiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2F1dGhvcml0eS5zdGVsbGEtb3BzLmxvY2FsLyIsImV4cCI6MTc3NjIzODQ2NCwiaWF0IjoxNzc2MjM1MTY0LCJhdWQiOiJzdGVsbGEtb3BzLXVpIiwic3ViIjoiMzRlNjllNDdkMzE2NDdiODkzMDc0NDk0NGYyZmZmNzAiLCJuYW1lIjoiYWRtaW4iLCJhenAiOiJzdGVsbGEtb3BzLXVpIiwibm9uY2UiOiJlMGNkZTM2NS0zZjZjLTQxMTUtODM3OS00ZjY2ZmJmNWM1NTMiLCJhdF9oYXNoIjoiV0M0LWdVc0JfelZUdGJyVUtlOGxUQSJ9.CW32YreJHwMkO660IXgJ6fpldRMmlCIGGcUqhES9Dp7ICIUGLVnysn50-NH6GLD6HVOogx50PbA3dhgaegNAW25TiUNAIdlftVBiOwKhsXZzZK_b16h8UinoJmB8gzqGwIMc4tsXuXIpyUDcaTzK5q3eTFMlg1x1yB_Mdb6Qkdh2tUuagNaJWj3H2JOwoM8_Y4f6O2Hpp10Trggbqq3HTSKhOZavOvXFlgci3biO7ToBNfdJ3Z7zsqVx4atevtx_MSD75As_jsBwRdssD7hviN36nryGXcUgH9MVUp-jUbUYakbdBVUznzYJOfa44Gga8cHo9NLupseSwAuTpDeiGA\"},\"dpopKeyThumbprint\":\"Pz15RQFEcs1TXnO18okHGYOmWcPZlwxZGux42DuIWCs\",\"issuedAtEpochMs\":1776235164630,\"tenantId\":\"demo-prod\",\"scopes\":[\"advisory-ai:operate\",\"advisory-ai:view\",\"advisory:read\",\"airgap:seal\",\"airgap:status:read\",\"analytics.read\",\"aoc:verify\",\"authority.audit.read\",\"authority:branding.read\",\"authority:branding.write\",\"authority:clients.read\",\"authority:clients.write\",\"authority:roles.read\",\"authority:roles.write\",\"authority:tenants.read\",\"authority:tenants.write\",\"authority:tokens.read\",\"authority:tokens.revoke\",\"authority:users.read\",\"authority:users.write\",\"doctor:admin\",\"doctor:run\",\"email\",\"evidence:read\",\"exceptions:approve\",\"exceptions:read\",\"export.admin\",\"export.operator\",\"export.viewer\",\"findings:read\",\"graph:read\",\"integration:operate\",\"integration:read\",\"integration:write\",\"notify.admin\",\"notify.escalate\",\"notify.operator\",\"notify.viewer\",\"offline_access\",\"openid\",\"ops.health\",\"orch:operate\",\"orch:quota\",\"orch:read\",\"packs.approve\",\"packs.read\",\"packs.run\",\"packs.write\",\"platform.context.read\",\"platform.context.write\",\"policy:activate\",\"policy:approve\",\"policy:audit\",\"policy:author\",\"policy:edit\",\"policy:operate\",\"policy:publish\",\"policy:read\",\"policy:review\",\"policy:run\",\"policy:simulate\",\"profile\",\"registry.admin\",\"release:publish\",\"release:read\",\"release:write\",\"sbom:read\",\"scanner:read\",\"scheduler:operate\",\"scheduler:read\",\"signer:admin\",\"signer:read\",\"signer:rotate\",\"signer:sign\",\"timeline:read\",\"timeline:write\",\"trust:admin\",\"trust:read\",\"trust:write\",\"ui.admin\",\"ui.preferences.read\",\"ui.preferences.write\",\"ui.read\",\"vex:read\",\"vexhub:read\",\"vuln:audit\",\"vuln:investigate\",\"vuln:operate\",\"vuln:view\"],\"audiences\":[],\"authenticationTimeEpochMs\":1776235164000,\"freshAuthActive\":false,\"freshAuthExpiresAtEpochMs\":null}"
- ],
- [
- "stellaops:wasEverAuth",
- "true"
+ "stellaops.auth.login.17cfffca-0e3b-4b5d-a9a4-4871a5318319",
+ "{\"state\":\"17cfffca-0e3b-4b5d-a9a4-4871a5318319\",\"codeVerifier\":\"tx-67yYtdm9Z7numhCJ9RNjIEfEfFtR1zUxwDecz3_k\",\"createdAtEpochMs\":1776865486636,\"returnUrl\":\"/\",\"nonce\":\"bc9e0ef3-59b5-49c6-a2f9-6fa9f3fa49c4\"}"
]
]
},
+ "sessionStatus": {
+ "hasFullSession": false,
+ "hasSessionInfo": false
+ },
"events": {
"consoleErrors": [],
- "requestFailures": [],
+ "requestFailures": [
+ {
+ "method": "GET",
+ "url": "https://stella-ops.local/console/branding?tenantId=default",
+ "error": "net::ERR_ABORTED",
+ "page": "https://stella-ops.local/welcome"
+ }
+ ],
"responseErrors": []
},
- "statePath": "C:\\dev\\New folder\\git.stella-ops.org\\src\\Web\\StellaOps.Web\\output\\playwright\\live-setup-wizard-full-bootstrap.state.json"
+ "statePath": "C:\\dev\\New folder\\git.stella-ops.org\\src\\Web\\StellaOps.Web\\output\\playwright\\live-setup-wizard-full-bootstrap.state.json",
+ "screenshotPath": "C:\\dev\\New folder\\git.stella-ops.org\\src\\Web\\StellaOps.Web\\output\\playwright\\live-frontdoor-auth-failure.png"
}
diff --git a/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-full-bootstrap.json b/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-full-bootstrap.json
index 0ccd4f4a7..e4332323b 100644
--- a/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-full-bootstrap.json
+++ b/src/Web/StellaOps.Web/output/playwright/live-setup-wizard-full-bootstrap.json
@@ -1,1490 +1,4 @@
{
- "generatedAtUtc": "2026-04-15T06:40:24.152Z",
- "failedActionCount": 0,
- "runtimeIssueCount": 0,
- "currentUrl": "https://stella-ops.local/setup-wizard/wizard",
- "results": [
- {
- "action": "force-restart-to-welcome",
- "ok": true,
- "forcedSession": {
- "status": 201,
- "ok": true,
- "body": {
- "session": {
- "sessionId": "setup-installation-20260415063929",
- "scopeKey": "installation",
- "tenantId": "installation",
- "status": "InProgress",
- "currentStepId": "Database",
- "definitionVersion": "2026-04-control-plane-v1",
- "steps": [
- {
- "stepId": "Database",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Valkey",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Migrations",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Admin",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Crypto",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- }
- ],
- "draftValues": {},
- "createdAtUtc": "2026-04-15T06:39:29Z",
- "updatedAtUtc": "2026-04-15T06:39:29Z",
- "completedAtUtc": null,
- "createdBy": "34e69e47d31647b8930744944f2fff70",
- "updatedBy": "34e69e47d31647b8930744944f2fff70",
- "dataAsOfUtc": "2026-04-15T06:39:29Z"
- }
- },
- "bodyText": "{\"session\":{\"sessionId\":\"setup-installation-20260415063929\",\"scopeKey\":\"installation\",\"tenantId\":\"installation\",\"status\":\"InProgress\",\"currentStepId\":\"Database\",\"definitionVersion\":\"2026-04-control-plane-v1\",\"steps\":[{\"stepId\":\"Database\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Valkey\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Migrations\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Admin\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Crypto\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null}],\"draftValues\":{},\"createdAtUtc\":\"2026-04-15T06:39:29Z\",\"updatedAtUtc\":\"2026-04-15T06:39:29Z\",\"completedAtUtc\":null,\"createdBy\":\"34e69e47d31647b8930744944f2fff70\",\"updatedBy\":\"34e69e47d31647b8930744944f2fff70\",\"dataAsOfUtc\":\"2026-04-15T06:39:29Z\"}}"
- },
- "session": {
- "status": 200,
- "ok": true,
- "sessionId": "setup-installation-20260415063929",
- "currentStepId": "database",
- "sessionStatus": "in_progress",
- "steps": [
- {
- "stepId": "database",
- "status": "pending",
- "lastProbeSucceeded": null,
- "errorMessage": null
- },
- {
- "stepId": "cache",
- "status": "pending",
- "lastProbeSucceeded": null,
- "errorMessage": null
- },
- {
- "stepId": "migrations",
- "status": "pending",
- "lastProbeSucceeded": null,
- "errorMessage": null
- },
- {
- "stepId": "admin",
- "status": "pending",
- "lastProbeSucceeded": null,
- "errorMessage": null
- },
- {
- "stepId": "crypto",
- "status": "pending",
- "lastProbeSucceeded": null,
- "errorMessage": null
- }
- ],
- "raw": {
- "status": 200,
- "ok": true,
- "body": {
- "session": {
- "sessionId": "setup-installation-20260415063929",
- "scopeKey": "installation",
- "tenantId": "installation",
- "status": "InProgress",
- "currentStepId": "Database",
- "definitionVersion": "2026-04-control-plane-v1",
- "steps": [
- {
- "stepId": "Database",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Valkey",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Migrations",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Admin",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Crypto",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- }
- ],
- "draftValues": {},
- "createdAtUtc": "2026-04-15T06:39:29Z",
- "updatedAtUtc": "2026-04-15T06:39:29Z",
- "completedAtUtc": null,
- "createdBy": "34e69e47d31647b8930744944f2fff70",
- "updatedBy": "34e69e47d31647b8930744944f2fff70",
- "dataAsOfUtc": "2026-04-15T06:39:29Z"
- }
- },
- "bodyText": "{\"session\":{\"sessionId\":\"setup-installation-20260415063929\",\"scopeKey\":\"installation\",\"tenantId\":\"installation\",\"status\":\"InProgress\",\"currentStepId\":\"Database\",\"definitionVersion\":\"2026-04-control-plane-v1\",\"steps\":[{\"stepId\":\"Database\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Valkey\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Migrations\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Admin\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Crypto\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null}],\"draftValues\":{},\"createdAtUtc\":\"2026-04-15T06:39:29Z\",\"updatedAtUtc\":\"2026-04-15T06:39:29Z\",\"completedAtUtc\":null,\"createdBy\":\"34e69e47d31647b8930744944f2fff70\",\"updatedBy\":\"34e69e47d31647b8930744944f2fff70\",\"dataAsOfUtc\":\"2026-04-15T06:39:29Z\"}}"
- }
- },
- "snapshot": {
- "label": "welcome",
- "url": "https://stella-ops.local/setup-wizard/wizard?mode=reconfigure",
- "title": "Wizard - StellaOps",
- "heading": "Welcome to Stella Ops",
- "alerts": [],
- "visibleButtons": [
- "Start Setup"
- ]
- }
- },
- {
- "action": "database-step-completed",
- "ok": true,
- "validated": true,
- "session": {
- "status": 200,
- "ok": true,
- "sessionId": "setup-installation-20260415063929",
- "currentStepId": "cache",
- "sessionStatus": "in_progress",
- "steps": [
- {
- "stepId": "database",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "cache",
- "status": "pending",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "migrations",
- "status": "pending",
- "lastProbeSucceeded": null,
- "errorMessage": null
- },
- {
- "stepId": "admin",
- "status": "pending",
- "lastProbeSucceeded": null,
- "errorMessage": null
- },
- {
- "stepId": "crypto",
- "status": "pending",
- "lastProbeSucceeded": null,
- "errorMessage": null
- }
- ],
- "raw": {
- "status": 200,
- "ok": true,
- "body": {
- "session": {
- "sessionId": "setup-installation-20260415063929",
- "scopeKey": "installation",
- "tenantId": "installation",
- "status": "InProgress",
- "currentStepId": "Valkey",
- "definitionVersion": "2026-04-control-plane-v1",
- "steps": [
- {
- "stepId": "Database",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:38Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:38Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.database.connectivity",
- "status": "Pass",
- "message": "PostgreSQL connection established.",
- "suggestedFix": null
- },
- {
- "checkId": "check.database.version",
- "status": "Pass",
- "message": "Server version 18.1.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "database.database": "stellaops_platform",
- "database.port": "5432",
- "database.host": "db.stella-ops.local",
- "database.user": "stellaops"
- },
- "errorMessage": null
- },
- {
- "stepId": "Valkey",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:39Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.services.valkey.connectivity",
- "status": "Pass",
- "message": "Connected to cache.stella-ops.local:6379.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Migrations",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Admin",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Crypto",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- }
- ],
- "draftValues": {
- "cache.port": "6379",
- "database.user": "stellaops",
- "database.port": "5432",
- "cache.database": "0",
- "database.database": "stellaops_platform",
- "cache.host": "cache.stella-ops.local",
- "database.host": "db.stella-ops.local"
- },
- "createdAtUtc": "2026-04-15T06:39:29Z",
- "updatedAtUtc": "2026-04-15T06:39:39Z",
- "completedAtUtc": null,
- "createdBy": "34e69e47d31647b8930744944f2fff70",
- "updatedBy": "34e69e47d31647b8930744944f2fff70",
- "dataAsOfUtc": "2026-04-15T06:39:39Z"
- }
- },
- "bodyText": "{\"session\":{\"sessionId\":\"setup-installation-20260415063929\",\"scopeKey\":\"installation\",\"tenantId\":\"installation\",\"status\":\"InProgress\",\"currentStepId\":\"Valkey\",\"definitionVersion\":\"2026-04-control-plane-v1\",\"steps\":[{\"stepId\":\"Database\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:38Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:38Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.database.connectivity\",\"status\":\"Pass\",\"message\":\"PostgreSQL connection established.\",\"suggestedFix\":null},{\"checkId\":\"check.database.version\",\"status\":\"Pass\",\"message\":\"Server version 18.1.\",\"suggestedFix\":null}],\"appliedConfig\":{\"database.database\":\"stellaops_platform\",\"database.port\":\"5432\",\"database.host\":\"db.stella-ops.local\",\"database.user\":\"stellaops\"},\"errorMessage\":null},{\"stepId\":\"Valkey\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:39Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.services.valkey.connectivity\",\"status\":\"Pass\",\"message\":\"Connected to cache.stella-ops.local:6379.\",\"suggestedFix\":null}],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Migrations\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Admin\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Crypto\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null}],\"draftValues\":{\"cache.port\":\"6379\",\"database.user\":\"stellaops\",\"database.port\":\"5432\",\"cache.database\":\"0\",\"database.database\":\"stellaops_platform\",\"cache.host\":\"cache.stella-ops.local\",\"database.host\":\"db.stella-ops.local\"},\"createdAtUtc\":\"2026-04-15T06:39:29Z\",\"updatedAtUtc\":\"2026-04-15T06:39:39Z\",\"completedAtUtc\":null,\"createdBy\":\"34e69e47d31647b8930744944f2fff70\",\"updatedBy\":\"34e69e47d31647b8930744944f2fff70\",\"dataAsOfUtc\":\"2026-04-15T06:39:39Z\"}}"
- }
- },
- "snapshot": {
- "label": "database-complete",
- "url": "https://stella-ops.local/setup-wizard/wizard?mode=reconfigure",
- "title": "Wizard - StellaOps",
- "heading": "Reconfigure",
- "alerts": [
- "Step applied successfully.",
- "PostgreSQL Database configured successfullyRun Doctor re-check to verify Run Re-check"
- ],
- "visibleButtons": [
- "PreviousPostgreSQL Database",
- "Apply and ContinueDatabase Migrations",
- "Run Re-check"
- ]
- }
- },
- {
- "action": "cache-step-completed",
- "ok": true,
- "session": {
- "status": 200,
- "ok": true,
- "sessionId": "setup-installation-20260415063929",
- "currentStepId": "migrations",
- "sessionStatus": "in_progress",
- "steps": [
- {
- "stepId": "database",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "cache",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "migrations",
- "status": "pending",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "admin",
- "status": "pending",
- "lastProbeSucceeded": null,
- "errorMessage": null
- },
- {
- "stepId": "crypto",
- "status": "pending",
- "lastProbeSucceeded": null,
- "errorMessage": null
- }
- ],
- "raw": {
- "status": 200,
- "ok": true,
- "body": {
- "session": {
- "sessionId": "setup-installation-20260415063929",
- "scopeKey": "installation",
- "tenantId": "installation",
- "status": "InProgress",
- "currentStepId": "Migrations",
- "definitionVersion": "2026-04-control-plane-v1",
- "steps": [
- {
- "stepId": "Database",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:38Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:38Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.database.connectivity",
- "status": "Pass",
- "message": "PostgreSQL connection established.",
- "suggestedFix": null
- },
- {
- "checkId": "check.database.version",
- "status": "Pass",
- "message": "Server version 18.1.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "database.database": "stellaops_platform",
- "database.port": "5432",
- "database.host": "db.stella-ops.local",
- "database.user": "stellaops"
- },
- "errorMessage": null
- },
- {
- "stepId": "Valkey",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:49Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:49Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.services.valkey.connectivity",
- "status": "Pass",
- "message": "Connected to cache.stella-ops.local:6379.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "cache.port": "6379",
- "cache.host": "cache.stella-ops.local",
- "cache.database": "0"
- },
- "errorMessage": null
- },
- {
- "stepId": "Migrations",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:49Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.database.migrations.pending",
- "status": "Pass",
- "message": "Module 'Platform' is converged.",
- "suggestedFix": null
- },
- {
- "checkId": "check.database.migrations.pending",
- "status": "Pass",
- "message": "Module 'ReleaseOrchestrator' is converged.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Admin",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Crypto",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- }
- ],
- "draftValues": {
- "cache.port": "6379",
- "database.user": "stellaops",
- "database.port": "5432",
- "cache.database": "0",
- "database.database": "stellaops_platform",
- "cache.host": "cache.stella-ops.local",
- "database.host": "db.stella-ops.local"
- },
- "createdAtUtc": "2026-04-15T06:39:29Z",
- "updatedAtUtc": "2026-04-15T06:39:49Z",
- "completedAtUtc": null,
- "createdBy": "34e69e47d31647b8930744944f2fff70",
- "updatedBy": "34e69e47d31647b8930744944f2fff70",
- "dataAsOfUtc": "2026-04-15T06:39:49Z"
- }
- },
- "bodyText": "{\"session\":{\"sessionId\":\"setup-installation-20260415063929\",\"scopeKey\":\"installation\",\"tenantId\":\"installation\",\"status\":\"InProgress\",\"currentStepId\":\"Migrations\",\"definitionVersion\":\"2026-04-control-plane-v1\",\"steps\":[{\"stepId\":\"Database\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:38Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:38Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.database.connectivity\",\"status\":\"Pass\",\"message\":\"PostgreSQL connection established.\",\"suggestedFix\":null},{\"checkId\":\"check.database.version\",\"status\":\"Pass\",\"message\":\"Server version 18.1.\",\"suggestedFix\":null}],\"appliedConfig\":{\"database.database\":\"stellaops_platform\",\"database.port\":\"5432\",\"database.host\":\"db.stella-ops.local\",\"database.user\":\"stellaops\"},\"errorMessage\":null},{\"stepId\":\"Valkey\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:49Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:49Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.services.valkey.connectivity\",\"status\":\"Pass\",\"message\":\"Connected to cache.stella-ops.local:6379.\",\"suggestedFix\":null}],\"appliedConfig\":{\"cache.port\":\"6379\",\"cache.host\":\"cache.stella-ops.local\",\"cache.database\":\"0\"},\"errorMessage\":null},{\"stepId\":\"Migrations\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:49Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.database.migrations.pending\",\"status\":\"Pass\",\"message\":\"Module 'Platform' is converged.\",\"suggestedFix\":null},{\"checkId\":\"check.database.migrations.pending\",\"status\":\"Pass\",\"message\":\"Module 'ReleaseOrchestrator' is converged.\",\"suggestedFix\":null}],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Admin\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Crypto\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null}],\"draftValues\":{\"cache.port\":\"6379\",\"database.user\":\"stellaops\",\"database.port\":\"5432\",\"cache.database\":\"0\",\"database.database\":\"stellaops_platform\",\"cache.host\":\"cache.stella-ops.local\",\"database.host\":\"db.stella-ops.local\"},\"createdAtUtc\":\"2026-04-15T06:39:29Z\",\"updatedAtUtc\":\"2026-04-15T06:39:49Z\",\"completedAtUtc\":null,\"createdBy\":\"34e69e47d31647b8930744944f2fff70\",\"updatedBy\":\"34e69e47d31647b8930744944f2fff70\",\"dataAsOfUtc\":\"2026-04-15T06:39:49Z\"}}"
- }
- },
- "snapshot": {
- "label": "cache-complete",
- "url": "https://stella-ops.local/setup-wizard/wizard?mode=reconfigure",
- "title": "Wizard - StellaOps",
- "heading": "Reconfigure",
- "alerts": [
- "Checking for pending migrations...",
- "Step applied successfully.",
- "Valkey/Redis Cache configured successfullyRun Doctor re-check to verify Run Re-check"
- ],
- "visibleButtons": [
- "PreviousValkey/Redis Cache",
- "Apply and ContinueAdmin Bootstrap",
- "Run Re-check"
- ]
- }
- },
- {
- "action": "migrations-step-completed",
- "ok": true,
- "session": {
- "status": 200,
- "ok": true,
- "sessionId": "setup-installation-20260415063929",
- "currentStepId": "admin",
- "sessionStatus": "in_progress",
- "steps": [
- {
- "stepId": "database",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "cache",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "migrations",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "admin",
- "status": "failed",
- "lastProbeSucceeded": false,
- "errorMessage": "Admin bootstrap prerequisites are not satisfied."
- },
- {
- "stepId": "crypto",
- "status": "pending",
- "lastProbeSucceeded": null,
- "errorMessage": null
- }
- ],
- "raw": {
- "status": 200,
- "ok": true,
- "body": {
- "session": {
- "sessionId": "setup-installation-20260415063929",
- "scopeKey": "installation",
- "tenantId": "installation",
- "status": "InProgress",
- "currentStepId": "Admin",
- "definitionVersion": "2026-04-control-plane-v1",
- "steps": [
- {
- "stepId": "Database",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:38Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:38Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.database.connectivity",
- "status": "Pass",
- "message": "PostgreSQL connection established.",
- "suggestedFix": null
- },
- {
- "checkId": "check.database.version",
- "status": "Pass",
- "message": "Server version 18.1.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "database.database": "stellaops_platform",
- "database.port": "5432",
- "database.host": "db.stella-ops.local",
- "database.user": "stellaops"
- },
- "errorMessage": null
- },
- {
- "stepId": "Valkey",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:49Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:49Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.services.valkey.connectivity",
- "status": "Pass",
- "message": "Connected to cache.stella-ops.local:6379.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "cache.port": "6379",
- "cache.host": "cache.stella-ops.local",
- "cache.database": "0"
- },
- "errorMessage": null
- },
- {
- "stepId": "Migrations",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:59Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:59Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.database.migrations.applied",
- "status": "Pass",
- "message": "Module 'Platform' converged.",
- "suggestedFix": null
- },
- {
- "checkId": "check.database.migrations.applied",
- "status": "Pass",
- "message": "Module 'ReleaseOrchestrator' converged.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Admin",
- "status": "Failed",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:59Z",
- "lastProbeSucceeded": false,
- "checkResults": [
- {
- "checkId": "check.auth.admin.exists",
- "status": "Fail",
- "message": "Admin username is required.",
- "suggestedFix": null
- },
- {
- "checkId": "check.auth.admin.exists",
- "status": "Fail",
- "message": "Admin email is required.",
- "suggestedFix": null
- },
- {
- "checkId": "check.auth.password.policy",
- "status": "Fail",
- "message": "Admin password is required.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {},
- "errorMessage": "Admin bootstrap prerequisites are not satisfied."
- },
- {
- "stepId": "Crypto",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": null,
- "lastProbeSucceeded": null,
- "checkResults": [],
- "appliedConfig": {},
- "errorMessage": null
- }
- ],
- "draftValues": {
- "cache.port": "6379",
- "users.superuser.username": "admin",
- "database.user": "stellaops",
- "authority.provider": "standard",
- "database.port": "5432",
- "authority.standard.requireDigit": "true",
- "users.superuser.email": "admin@stella-ops.local",
- "cache.database": "0",
- "authority.standard.minLength": "12",
- "authority.standard.requireLowercase": "true",
- "authority.standard.requireSpecialChar": "true",
- "database.database": "stellaops_platform",
- "cache.host": "cache.stella-ops.local",
- "database.host": "db.stella-ops.local",
- "authority.standard.requireUppercase": "true"
- },
- "createdAtUtc": "2026-04-15T06:39:29Z",
- "updatedAtUtc": "2026-04-15T06:40:00Z",
- "completedAtUtc": null,
- "createdBy": "34e69e47d31647b8930744944f2fff70",
- "updatedBy": "34e69e47d31647b8930744944f2fff70",
- "dataAsOfUtc": "2026-04-15T06:40:00Z"
- }
- },
- "bodyText": "{\"session\":{\"sessionId\":\"setup-installation-20260415063929\",\"scopeKey\":\"installation\",\"tenantId\":\"installation\",\"status\":\"InProgress\",\"currentStepId\":\"Admin\",\"definitionVersion\":\"2026-04-control-plane-v1\",\"steps\":[{\"stepId\":\"Database\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:38Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:38Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.database.connectivity\",\"status\":\"Pass\",\"message\":\"PostgreSQL connection established.\",\"suggestedFix\":null},{\"checkId\":\"check.database.version\",\"status\":\"Pass\",\"message\":\"Server version 18.1.\",\"suggestedFix\":null}],\"appliedConfig\":{\"database.database\":\"stellaops_platform\",\"database.port\":\"5432\",\"database.host\":\"db.stella-ops.local\",\"database.user\":\"stellaops\"},\"errorMessage\":null},{\"stepId\":\"Valkey\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:49Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:49Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.services.valkey.connectivity\",\"status\":\"Pass\",\"message\":\"Connected to cache.stella-ops.local:6379.\",\"suggestedFix\":null}],\"appliedConfig\":{\"cache.port\":\"6379\",\"cache.host\":\"cache.stella-ops.local\",\"cache.database\":\"0\"},\"errorMessage\":null},{\"stepId\":\"Migrations\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:59Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:59Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.database.migrations.applied\",\"status\":\"Pass\",\"message\":\"Module 'Platform' converged.\",\"suggestedFix\":null},{\"checkId\":\"check.database.migrations.applied\",\"status\":\"Pass\",\"message\":\"Module 'ReleaseOrchestrator' converged.\",\"suggestedFix\":null}],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Admin\",\"status\":\"Failed\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:59Z\",\"lastProbeSucceeded\":false,\"checkResults\":[{\"checkId\":\"check.auth.admin.exists\",\"status\":\"Fail\",\"message\":\"Admin username is required.\",\"suggestedFix\":null},{\"checkId\":\"check.auth.admin.exists\",\"status\":\"Fail\",\"message\":\"Admin email is required.\",\"suggestedFix\":null},{\"checkId\":\"check.auth.password.policy\",\"status\":\"Fail\",\"message\":\"Admin password is required.\",\"suggestedFix\":null}],\"appliedConfig\":{},\"errorMessage\":\"Admin bootstrap prerequisites are not satisfied.\"},{\"stepId\":\"Crypto\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":null,\"lastProbeSucceeded\":null,\"checkResults\":[],\"appliedConfig\":{},\"errorMessage\":null}],\"draftValues\":{\"cache.port\":\"6379\",\"users.superuser.username\":\"admin\",\"database.user\":\"stellaops\",\"authority.provider\":\"standard\",\"database.port\":\"5432\",\"authority.standard.requireDigit\":\"true\",\"users.superuser.email\":\"admin@stella-ops.local\",\"cache.database\":\"0\",\"authority.standard.minLength\":\"12\",\"authority.standard.requireLowercase\":\"true\",\"authority.standard.requireSpecialChar\":\"true\",\"database.database\":\"stellaops_platform\",\"cache.host\":\"cache.stella-ops.local\",\"database.host\":\"db.stella-ops.local\",\"authority.standard.requireUppercase\":\"true\"},\"createdAtUtc\":\"2026-04-15T06:39:29Z\",\"updatedAtUtc\":\"2026-04-15T06:40:00Z\",\"completedAtUtc\":null,\"createdBy\":\"34e69e47d31647b8930744944f2fff70\",\"updatedBy\":\"34e69e47d31647b8930744944f2fff70\",\"dataAsOfUtc\":\"2026-04-15T06:40:00Z\"}}"
- }
- },
- "snapshot": {
- "label": "migrations-complete",
- "url": "https://stella-ops.local/setup-wizard/wizard?mode=reconfigure",
- "title": "Wizard - StellaOps",
- "heading": "Reconfigure",
- "alerts": [
- "Step applied successfully.",
- "Database Migrations configured successfullyRun Doctor re-check to verify Run Re-check"
- ],
- "visibleButtons": [
- "+ Add Another User",
- "PreviousDatabase Migrations",
- "Apply and ContinueCryptographic Provider",
- "Run Re-check"
- ]
- }
- },
- {
- "action": "admin-step-completed",
- "ok": true,
- "session": {
- "status": 200,
- "ok": true,
- "sessionId": "setup-installation-20260415063929",
- "currentStepId": "crypto",
- "sessionStatus": "in_progress",
- "steps": [
- {
- "stepId": "database",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "cache",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "migrations",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "admin",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "crypto",
- "status": "pending",
- "lastProbeSucceeded": true,
- "errorMessage": null
- }
- ],
- "raw": {
- "status": 200,
- "ok": true,
- "body": {
- "session": {
- "sessionId": "setup-installation-20260415063929",
- "scopeKey": "installation",
- "tenantId": "installation",
- "status": "InProgress",
- "currentStepId": "Crypto",
- "definitionVersion": "2026-04-control-plane-v1",
- "steps": [
- {
- "stepId": "Database",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:38Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:38Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.database.connectivity",
- "status": "Pass",
- "message": "PostgreSQL connection established.",
- "suggestedFix": null
- },
- {
- "checkId": "check.database.version",
- "status": "Pass",
- "message": "Server version 18.1.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "database.database": "stellaops_platform",
- "database.port": "5432",
- "database.host": "db.stella-ops.local",
- "database.user": "stellaops"
- },
- "errorMessage": null
- },
- {
- "stepId": "Valkey",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:49Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:49Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.services.valkey.connectivity",
- "status": "Pass",
- "message": "Connected to cache.stella-ops.local:6379.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "cache.port": "6379",
- "cache.host": "cache.stella-ops.local",
- "cache.database": "0"
- },
- "errorMessage": null
- },
- {
- "stepId": "Migrations",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:59Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:59Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.database.migrations.applied",
- "status": "Pass",
- "message": "Module 'Platform' converged.",
- "suggestedFix": null
- },
- {
- "checkId": "check.database.migrations.applied",
- "status": "Pass",
- "message": "Module 'ReleaseOrchestrator' converged.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Admin",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:40:10Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:40:10Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.auth.admin.exists",
- "status": "Pass",
- "message": "Bootstrap administrator 'admin' ensured successfully.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "authority.standard.requireUppercase": "true",
- "users.superuser.email": "admin@stella-ops.local",
- "authority.standard.requireDigit": "true",
- "authority.provider": "standard",
- "authority.standard.requireLowercase": "true",
- "authority.standard.minLength": "12",
- "authority.standard.requireSpecialChar": "true",
- "users.superuser.username": "admin"
- },
- "errorMessage": null
- },
- {
- "stepId": "Crypto",
- "status": "Pending",
- "completedAtUtc": null,
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:40:10Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.crypto.profile",
- "status": "Pass",
- "message": "Using the platform's built-in default crypto profile.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {},
- "errorMessage": null
- }
- ],
- "draftValues": {
- "cache.port": "6379",
- "users.superuser.username": "admin",
- "database.user": "stellaops",
- "authority.provider": "standard",
- "database.port": "5432",
- "authority.standard.requireDigit": "true",
- "users.superuser.email": "admin@stella-ops.local",
- "cache.database": "0",
- "authority.standard.minLength": "12",
- "crypto.provider": "default",
- "authority.standard.requireLowercase": "true",
- "authority.standard.requireSpecialChar": "true",
- "database.database": "stellaops_platform",
- "cache.host": "cache.stella-ops.local",
- "database.host": "db.stella-ops.local",
- "authority.standard.requireUppercase": "true"
- },
- "createdAtUtc": "2026-04-15T06:39:29Z",
- "updatedAtUtc": "2026-04-15T06:40:11Z",
- "completedAtUtc": null,
- "createdBy": "34e69e47d31647b8930744944f2fff70",
- "updatedBy": "34e69e47d31647b8930744944f2fff70",
- "dataAsOfUtc": "2026-04-15T06:40:11Z"
- }
- },
- "bodyText": "{\"session\":{\"sessionId\":\"setup-installation-20260415063929\",\"scopeKey\":\"installation\",\"tenantId\":\"installation\",\"status\":\"InProgress\",\"currentStepId\":\"Crypto\",\"definitionVersion\":\"2026-04-control-plane-v1\",\"steps\":[{\"stepId\":\"Database\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:38Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:38Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.database.connectivity\",\"status\":\"Pass\",\"message\":\"PostgreSQL connection established.\",\"suggestedFix\":null},{\"checkId\":\"check.database.version\",\"status\":\"Pass\",\"message\":\"Server version 18.1.\",\"suggestedFix\":null}],\"appliedConfig\":{\"database.database\":\"stellaops_platform\",\"database.port\":\"5432\",\"database.host\":\"db.stella-ops.local\",\"database.user\":\"stellaops\"},\"errorMessage\":null},{\"stepId\":\"Valkey\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:49Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:49Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.services.valkey.connectivity\",\"status\":\"Pass\",\"message\":\"Connected to cache.stella-ops.local:6379.\",\"suggestedFix\":null}],\"appliedConfig\":{\"cache.port\":\"6379\",\"cache.host\":\"cache.stella-ops.local\",\"cache.database\":\"0\"},\"errorMessage\":null},{\"stepId\":\"Migrations\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:59Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:59Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.database.migrations.applied\",\"status\":\"Pass\",\"message\":\"Module 'Platform' converged.\",\"suggestedFix\":null},{\"checkId\":\"check.database.migrations.applied\",\"status\":\"Pass\",\"message\":\"Module 'ReleaseOrchestrator' converged.\",\"suggestedFix\":null}],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Admin\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:40:10Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:40:10Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.auth.admin.exists\",\"status\":\"Pass\",\"message\":\"Bootstrap administrator 'admin' ensured successfully.\",\"suggestedFix\":null}],\"appliedConfig\":{\"authority.standard.requireUppercase\":\"true\",\"users.superuser.email\":\"admin@stella-ops.local\",\"authority.standard.requireDigit\":\"true\",\"authority.provider\":\"standard\",\"authority.standard.requireLowercase\":\"true\",\"authority.standard.minLength\":\"12\",\"authority.standard.requireSpecialChar\":\"true\",\"users.superuser.username\":\"admin\"},\"errorMessage\":null},{\"stepId\":\"Crypto\",\"status\":\"Pending\",\"completedAtUtc\":null,\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:40:10Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.crypto.profile\",\"status\":\"Pass\",\"message\":\"Using the platform's built-in default crypto profile.\",\"suggestedFix\":null}],\"appliedConfig\":{},\"errorMessage\":null}],\"draftValues\":{\"cache.port\":\"6379\",\"users.superuser.username\":\"admin\",\"database.user\":\"stellaops\",\"authority.provider\":\"standard\",\"database.port\":\"5432\",\"authority.standard.requireDigit\":\"true\",\"users.superuser.email\":\"admin@stella-ops.local\",\"cache.database\":\"0\",\"authority.standard.minLength\":\"12\",\"crypto.provider\":\"default\",\"authority.standard.requireLowercase\":\"true\",\"authority.standard.requireSpecialChar\":\"true\",\"database.database\":\"stellaops_platform\",\"cache.host\":\"cache.stella-ops.local\",\"database.host\":\"db.stella-ops.local\",\"authority.standard.requireUppercase\":\"true\"},\"createdAtUtc\":\"2026-04-15T06:39:29Z\",\"updatedAtUtc\":\"2026-04-15T06:40:11Z\",\"completedAtUtc\":null,\"createdBy\":\"34e69e47d31647b8930744944f2fff70\",\"updatedBy\":\"34e69e47d31647b8930744944f2fff70\",\"dataAsOfUtc\":\"2026-04-15T06:40:11Z\"}}"
- }
- },
- "snapshot": {
- "label": "admin-complete",
- "url": "https://stella-ops.local/setup-wizard/wizard?mode=reconfigure",
- "title": "Wizard - StellaOps",
- "heading": "Reconfigure",
- "alerts": [
- "Step applied successfully.",
- "Admin Bootstrap configured successfullyRun Doctor re-check to verify Run Re-check"
- ],
- "visibleButtons": [
- "Default (Recommended)Standard cryptographic algorithms (AES-256, SHA-256, Ed25519, ECDSA P-256)",
- "FIPS 140-2FIPS 140-2 compliant cryptography for US government and regulated industries",
- "GOST R 34.10-2012Russian GOST cryptographic standards for compliance with Russian regulations",
- "SM2/SM3 (China)Chinese national cryptographic standards for compliance with Chinese regulations",
- "PreviousAdmin Bootstrap",
- "Finish Setup",
- "Run Re-check"
- ]
- }
- },
- {
- "action": "crypto-finalize-completed",
- "ok": true,
- "cryptoSelected": true,
- "session": {
- "status": 200,
- "ok": true,
- "sessionId": "setup-installation-20260415063929",
- "currentStepId": "",
- "sessionStatus": "completed",
- "steps": [
- {
- "stepId": "database",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "cache",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "migrations",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "admin",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "crypto",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- }
- ],
- "raw": {
- "status": 200,
- "ok": true,
- "body": {
- "session": {
- "sessionId": "setup-installation-20260415063929",
- "scopeKey": "installation",
- "tenantId": "installation",
- "status": "Completed",
- "currentStepId": null,
- "definitionVersion": "2026-04-control-plane-v1",
- "steps": [
- {
- "stepId": "Database",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:38Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:38Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.database.connectivity",
- "status": "Pass",
- "message": "PostgreSQL connection established.",
- "suggestedFix": null
- },
- {
- "checkId": "check.database.version",
- "status": "Pass",
- "message": "Server version 18.1.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "database.database": "stellaops_platform",
- "database.port": "5432",
- "database.host": "db.stella-ops.local",
- "database.user": "stellaops"
- },
- "errorMessage": null
- },
- {
- "stepId": "Valkey",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:49Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:49Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.services.valkey.connectivity",
- "status": "Pass",
- "message": "Connected to cache.stella-ops.local:6379.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "cache.port": "6379",
- "cache.host": "cache.stella-ops.local",
- "cache.database": "0"
- },
- "errorMessage": null
- },
- {
- "stepId": "Migrations",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:59Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:59Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.database.migrations.applied",
- "status": "Pass",
- "message": "Module 'Platform' converged.",
- "suggestedFix": null
- },
- {
- "checkId": "check.database.migrations.applied",
- "status": "Pass",
- "message": "Module 'ReleaseOrchestrator' converged.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Admin",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:40:10Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:40:10Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.auth.admin.exists",
- "status": "Pass",
- "message": "Bootstrap administrator 'admin' ensured successfully.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "authority.standard.requireUppercase": "true",
- "users.superuser.email": "admin@stella-ops.local",
- "authority.standard.requireDigit": "true",
- "authority.provider": "standard",
- "authority.standard.requireLowercase": "true",
- "authority.standard.minLength": "12",
- "authority.standard.requireSpecialChar": "true",
- "users.superuser.username": "admin"
- },
- "errorMessage": null
- },
- {
- "stepId": "Crypto",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:40:20Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:40:20Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.crypto.profile",
- "status": "Pass",
- "message": "Using the platform's built-in default crypto profile.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "crypto.provider": "default"
- },
- "errorMessage": null
- }
- ],
- "draftValues": {
- "cache.port": "6379",
- "users.superuser.username": "admin",
- "database.user": "stellaops",
- "authority.provider": "standard",
- "database.port": "5432",
- "authority.standard.requireDigit": "true",
- "users.superuser.email": "admin@stella-ops.local",
- "cache.database": "0",
- "authority.standard.minLength": "12",
- "crypto.provider": "default",
- "authority.standard.requireLowercase": "true",
- "authority.standard.requireSpecialChar": "true",
- "database.database": "stellaops_platform",
- "cache.host": "cache.stella-ops.local",
- "database.host": "db.stella-ops.local",
- "authority.standard.requireUppercase": "true"
- },
- "createdAtUtc": "2026-04-15T06:39:29Z",
- "updatedAtUtc": "2026-04-15T06:40:21Z",
- "completedAtUtc": "2026-04-15T06:40:21Z",
- "createdBy": "34e69e47d31647b8930744944f2fff70",
- "updatedBy": "34e69e47d31647b8930744944f2fff70",
- "dataAsOfUtc": "2026-04-15T06:40:21Z"
- }
- },
- "bodyText": "{\"session\":{\"sessionId\":\"setup-installation-20260415063929\",\"scopeKey\":\"installation\",\"tenantId\":\"installation\",\"status\":\"Completed\",\"currentStepId\":null,\"definitionVersion\":\"2026-04-control-plane-v1\",\"steps\":[{\"stepId\":\"Database\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:38Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:38Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.database.connectivity\",\"status\":\"Pass\",\"message\":\"PostgreSQL connection established.\",\"suggestedFix\":null},{\"checkId\":\"check.database.version\",\"status\":\"Pass\",\"message\":\"Server version 18.1.\",\"suggestedFix\":null}],\"appliedConfig\":{\"database.database\":\"stellaops_platform\",\"database.port\":\"5432\",\"database.host\":\"db.stella-ops.local\",\"database.user\":\"stellaops\"},\"errorMessage\":null},{\"stepId\":\"Valkey\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:49Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:49Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.services.valkey.connectivity\",\"status\":\"Pass\",\"message\":\"Connected to cache.stella-ops.local:6379.\",\"suggestedFix\":null}],\"appliedConfig\":{\"cache.port\":\"6379\",\"cache.host\":\"cache.stella-ops.local\",\"cache.database\":\"0\"},\"errorMessage\":null},{\"stepId\":\"Migrations\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:59Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:59Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.database.migrations.applied\",\"status\":\"Pass\",\"message\":\"Module 'Platform' converged.\",\"suggestedFix\":null},{\"checkId\":\"check.database.migrations.applied\",\"status\":\"Pass\",\"message\":\"Module 'ReleaseOrchestrator' converged.\",\"suggestedFix\":null}],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Admin\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:40:10Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:40:10Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.auth.admin.exists\",\"status\":\"Pass\",\"message\":\"Bootstrap administrator 'admin' ensured successfully.\",\"suggestedFix\":null}],\"appliedConfig\":{\"authority.standard.requireUppercase\":\"true\",\"users.superuser.email\":\"admin@stella-ops.local\",\"authority.standard.requireDigit\":\"true\",\"authority.provider\":\"standard\",\"authority.standard.requireLowercase\":\"true\",\"authority.standard.minLength\":\"12\",\"authority.standard.requireSpecialChar\":\"true\",\"users.superuser.username\":\"admin\"},\"errorMessage\":null},{\"stepId\":\"Crypto\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:40:20Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:40:20Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.crypto.profile\",\"status\":\"Pass\",\"message\":\"Using the platform's built-in default crypto profile.\",\"suggestedFix\":null}],\"appliedConfig\":{\"crypto.provider\":\"default\"},\"errorMessage\":null}],\"draftValues\":{\"cache.port\":\"6379\",\"users.superuser.username\":\"admin\",\"database.user\":\"stellaops\",\"authority.provider\":\"standard\",\"database.port\":\"5432\",\"authority.standard.requireDigit\":\"true\",\"users.superuser.email\":\"admin@stella-ops.local\",\"cache.database\":\"0\",\"authority.standard.minLength\":\"12\",\"crypto.provider\":\"default\",\"authority.standard.requireLowercase\":\"true\",\"authority.standard.requireSpecialChar\":\"true\",\"database.database\":\"stellaops_platform\",\"cache.host\":\"cache.stella-ops.local\",\"database.host\":\"db.stella-ops.local\",\"authority.standard.requireUppercase\":\"true\"},\"createdAtUtc\":\"2026-04-15T06:39:29Z\",\"updatedAtUtc\":\"2026-04-15T06:40:21Z\",\"completedAtUtc\":\"2026-04-15T06:40:21Z\",\"createdBy\":\"34e69e47d31647b8930744944f2fff70\",\"updatedBy\":\"34e69e47d31647b8930744944f2fff70\",\"dataAsOfUtc\":\"2026-04-15T06:40:21Z\"}}"
- }
- },
- "snapshot": {
- "label": "finalized",
- "url": "https://stella-ops.local/setup-wizard/wizard",
- "title": "Wizard - StellaOps",
- "heading": "Reconfigure",
- "alerts": [
- "Step applied successfully.",
- "Cryptographic Provider configured successfullyRun Doctor re-check to verify Run Re-check"
- ],
- "visibleButtons": [
- "Default (Recommended)Standard cryptographic algorithms (AES-256, SHA-256, Ed25519, ECDSA P-256)",
- "FIPS 140-2FIPS 140-2 compliant cryptography for US government and regulated industries",
- "GOST R 34.10-2012Russian GOST cryptographic standards for compliance with Russian regulations",
- "SM2/SM3 (China)Chinese national cryptographic standards for compliance with Chinese regulations",
- "PreviousAdmin Bootstrap",
- "Finish Setup",
- "Run Re-check"
- ]
- }
- }
- ],
- "finalSession": {
- "status": 200,
- "ok": true,
- "sessionId": "setup-installation-20260415063929",
- "currentStepId": "",
- "sessionStatus": "completed",
- "steps": [
- {
- "stepId": "database",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "cache",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "migrations",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "admin",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- },
- {
- "stepId": "crypto",
- "status": "completed",
- "lastProbeSucceeded": true,
- "errorMessage": null
- }
- ],
- "raw": {
- "status": 200,
- "ok": true,
- "body": {
- "session": {
- "sessionId": "setup-installation-20260415063929",
- "scopeKey": "installation",
- "tenantId": "installation",
- "status": "Completed",
- "currentStepId": null,
- "definitionVersion": "2026-04-control-plane-v1",
- "steps": [
- {
- "stepId": "Database",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:38Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:38Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.database.connectivity",
- "status": "Pass",
- "message": "PostgreSQL connection established.",
- "suggestedFix": null
- },
- {
- "checkId": "check.database.version",
- "status": "Pass",
- "message": "Server version 18.1.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "database.database": "stellaops_platform",
- "database.port": "5432",
- "database.host": "db.stella-ops.local",
- "database.user": "stellaops"
- },
- "errorMessage": null
- },
- {
- "stepId": "Valkey",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:49Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:49Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.services.valkey.connectivity",
- "status": "Pass",
- "message": "Connected to cache.stella-ops.local:6379.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "cache.port": "6379",
- "cache.host": "cache.stella-ops.local",
- "cache.database": "0"
- },
- "errorMessage": null
- },
- {
- "stepId": "Migrations",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:39:59Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:39:59Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.database.migrations.applied",
- "status": "Pass",
- "message": "Module 'Platform' converged.",
- "suggestedFix": null
- },
- {
- "checkId": "check.database.migrations.applied",
- "status": "Pass",
- "message": "Module 'ReleaseOrchestrator' converged.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {},
- "errorMessage": null
- },
- {
- "stepId": "Admin",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:40:10Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:40:10Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.auth.admin.exists",
- "status": "Pass",
- "message": "Bootstrap administrator 'admin' ensured successfully.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "authority.standard.requireUppercase": "true",
- "users.superuser.email": "admin@stella-ops.local",
- "authority.standard.requireDigit": "true",
- "authority.provider": "standard",
- "authority.standard.requireLowercase": "true",
- "authority.standard.minLength": "12",
- "authority.standard.requireSpecialChar": "true",
- "users.superuser.username": "admin"
- },
- "errorMessage": null
- },
- {
- "stepId": "Crypto",
- "status": "Passed",
- "completedAtUtc": "2026-04-15T06:40:20Z",
- "skippedAtUtc": null,
- "skippedReason": null,
- "lastProbedAtUtc": "2026-04-15T06:40:20Z",
- "lastProbeSucceeded": true,
- "checkResults": [
- {
- "checkId": "check.crypto.profile",
- "status": "Pass",
- "message": "Using the platform's built-in default crypto profile.",
- "suggestedFix": null
- }
- ],
- "appliedConfig": {
- "crypto.provider": "default"
- },
- "errorMessage": null
- }
- ],
- "draftValues": {
- "cache.port": "6379",
- "users.superuser.username": "admin",
- "database.user": "stellaops",
- "authority.provider": "standard",
- "database.port": "5432",
- "authority.standard.requireDigit": "true",
- "users.superuser.email": "admin@stella-ops.local",
- "cache.database": "0",
- "authority.standard.minLength": "12",
- "crypto.provider": "default",
- "authority.standard.requireLowercase": "true",
- "authority.standard.requireSpecialChar": "true",
- "database.database": "stellaops_platform",
- "cache.host": "cache.stella-ops.local",
- "database.host": "db.stella-ops.local",
- "authority.standard.requireUppercase": "true"
- },
- "createdAtUtc": "2026-04-15T06:39:29Z",
- "updatedAtUtc": "2026-04-15T06:40:21Z",
- "completedAtUtc": "2026-04-15T06:40:21Z",
- "createdBy": "34e69e47d31647b8930744944f2fff70",
- "updatedBy": "34e69e47d31647b8930744944f2fff70",
- "dataAsOfUtc": "2026-04-15T06:40:21Z"
- }
- },
- "bodyText": "{\"session\":{\"sessionId\":\"setup-installation-20260415063929\",\"scopeKey\":\"installation\",\"tenantId\":\"installation\",\"status\":\"Completed\",\"currentStepId\":null,\"definitionVersion\":\"2026-04-control-plane-v1\",\"steps\":[{\"stepId\":\"Database\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:38Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:38Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.database.connectivity\",\"status\":\"Pass\",\"message\":\"PostgreSQL connection established.\",\"suggestedFix\":null},{\"checkId\":\"check.database.version\",\"status\":\"Pass\",\"message\":\"Server version 18.1.\",\"suggestedFix\":null}],\"appliedConfig\":{\"database.database\":\"stellaops_platform\",\"database.port\":\"5432\",\"database.host\":\"db.stella-ops.local\",\"database.user\":\"stellaops\"},\"errorMessage\":null},{\"stepId\":\"Valkey\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:49Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:49Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.services.valkey.connectivity\",\"status\":\"Pass\",\"message\":\"Connected to cache.stella-ops.local:6379.\",\"suggestedFix\":null}],\"appliedConfig\":{\"cache.port\":\"6379\",\"cache.host\":\"cache.stella-ops.local\",\"cache.database\":\"0\"},\"errorMessage\":null},{\"stepId\":\"Migrations\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:39:59Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:39:59Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.database.migrations.applied\",\"status\":\"Pass\",\"message\":\"Module 'Platform' converged.\",\"suggestedFix\":null},{\"checkId\":\"check.database.migrations.applied\",\"status\":\"Pass\",\"message\":\"Module 'ReleaseOrchestrator' converged.\",\"suggestedFix\":null}],\"appliedConfig\":{},\"errorMessage\":null},{\"stepId\":\"Admin\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:40:10Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:40:10Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.auth.admin.exists\",\"status\":\"Pass\",\"message\":\"Bootstrap administrator 'admin' ensured successfully.\",\"suggestedFix\":null}],\"appliedConfig\":{\"authority.standard.requireUppercase\":\"true\",\"users.superuser.email\":\"admin@stella-ops.local\",\"authority.standard.requireDigit\":\"true\",\"authority.provider\":\"standard\",\"authority.standard.requireLowercase\":\"true\",\"authority.standard.minLength\":\"12\",\"authority.standard.requireSpecialChar\":\"true\",\"users.superuser.username\":\"admin\"},\"errorMessage\":null},{\"stepId\":\"Crypto\",\"status\":\"Passed\",\"completedAtUtc\":\"2026-04-15T06:40:20Z\",\"skippedAtUtc\":null,\"skippedReason\":null,\"lastProbedAtUtc\":\"2026-04-15T06:40:20Z\",\"lastProbeSucceeded\":true,\"checkResults\":[{\"checkId\":\"check.crypto.profile\",\"status\":\"Pass\",\"message\":\"Using the platform's built-in default crypto profile.\",\"suggestedFix\":null}],\"appliedConfig\":{\"crypto.provider\":\"default\"},\"errorMessage\":null}],\"draftValues\":{\"cache.port\":\"6379\",\"users.superuser.username\":\"admin\",\"database.user\":\"stellaops\",\"authority.provider\":\"standard\",\"database.port\":\"5432\",\"authority.standard.requireDigit\":\"true\",\"users.superuser.email\":\"admin@stella-ops.local\",\"cache.database\":\"0\",\"authority.standard.minLength\":\"12\",\"crypto.provider\":\"default\",\"authority.standard.requireLowercase\":\"true\",\"authority.standard.requireSpecialChar\":\"true\",\"database.database\":\"stellaops_platform\",\"cache.host\":\"cache.stella-ops.local\",\"database.host\":\"db.stella-ops.local\",\"authority.standard.requireUppercase\":\"true\"},\"createdAtUtc\":\"2026-04-15T06:39:29Z\",\"updatedAtUtc\":\"2026-04-15T06:40:21Z\",\"completedAtUtc\":\"2026-04-15T06:40:21Z\",\"createdBy\":\"34e69e47d31647b8930744944f2fff70\",\"updatedBy\":\"34e69e47d31647b8930744944f2fff70\",\"dataAsOfUtc\":\"2026-04-15T06:40:21Z\"}}"
- }
- },
- "runtime": {
- "consoleErrors": [],
- "pageErrors": [],
- "requestFailures": [],
- "responseErrors": []
- }
+ "generatedAtUtc": "2026-04-22T13:45:36.599Z",
+ "fatalError": "Frontdoor authentication did not establish a Stella Ops session. finalUrl=https://stella-ops.local/connect/authorize?response_type=code&client_id=stella-ops-ui&redirect_uri=https%3A%2F%2Fstella-ops.local%2Fauth%2Fcallback&scope=openid+profile+email+offline_access+ui.read+ui.admin+ui.preferences.read+ui.preferences.write+authority%3Atenants.read+authority%3Atenants.write+authority%3Ausers.read+authority%3Ausers.write+authority%3Aroles.read+authority%3Aroles.write+authority%3Aclients.read+authority%3Aclients.write+authority%3Atokens.read+authority%3Atokens.revoke+authority%3Abranding.read+authority%3Abranding.write+authority.audit.read+graph%3Aread+sbom%3Aread+scanner%3Aread+policy%3Aread+policy%3Asimulate+policy%3Aauthor+policy%3Areview+policy%3Aapprove+policy%3Arun+policy%3Aactivate+policy%3Aaudit+policy%3Aedit+policy%3Aoperate+policy%3Apublish+airgap%3Aseal+airgap%3Astatus%3Aread+orch%3Aread+orch%3Aoperate+orch%3Aquota+analytics.read+advisory%3Aread+advisory-ai%3Aview+advisory-ai%3Aoperate+vex%3Aread+vexhub%3Aread+exceptions%3Aread+exceptions%3Aapprove+aoc%3Averify+findings%3Aread+release%3Aread+release%3Awrite+release%3Apublish+scheduler%3Aread+scheduler%3Aoperate+notify.viewer+notify.operator+notify.admin+notify.escalate+evidence%3Aread+export.viewer+export.operator+export.admin+vuln%3Aview+vuln%3Ainvestigate+vuln%3Aoperate+vuln%3Aaudit+platform.context.read+platform.context.write+doctor%3Arun+doctor%3Aadmin+ops.health+integration%3Aread+integration%3Awrite+integration%3Aoperate+packs.read+packs.write+packs.run+packs.approve+registry.admin+timeline%3Aread+timeline%3Awrite+trust%3Aread+trust%3Awrite+trust%3Aadmin+signer%3Aread+signer%3Asign+signer%3Arotate+signer%3Aadmin&state=17cfffca-0e3b-4b5d-a9a4-4871a5318319&nonce=bc9e0ef3-59b5-49c6-a2f9-6fa9f3fa49c4&code_challenge=zQhC8czggb6wslqDNLutUDJQxNbBF05LQdwaEw9Gk_8&code_challenge_method=S256&audience=stella-ops-api&ui_return=%2F signInVisible=true"
}
diff --git a/src/Web/StellaOps.Web/src/app/features/integrations/advisory-vex-sources/advisory-source-catalog.component.ts b/src/Web/StellaOps.Web/src/app/features/integrations/advisory-vex-sources/advisory-source-catalog.component.ts
index cf95b8053..4ccfd0e1a 100644
--- a/src/Web/StellaOps.Web/src/app/features/integrations/advisory-vex-sources/advisory-source-catalog.component.ts
+++ b/src/Web/StellaOps.Web/src/app/features/integrations/advisory-vex-sources/advisory-source-catalog.component.ts
@@ -868,6 +868,8 @@ interface EnabledSourceFailureSummary {
.status-badge--healthy { color: #22c55e; border-color: #22c55e40; }
.status-badge--degraded .status-dot { background: #eab308; }
.status-badge--degraded { color: #eab308; border-color: #eab30840; }
+ .status-badge--blocked .status-dot { background: #f97316; }
+ .status-badge--blocked { color: #f97316; border-color: #f9731640; }
.status-badge--failed .status-dot { background: #ef4444; }
.status-badge--failed { color: #ef4444; border-color: #ef444440; }
.status-badge--unchecked .status-dot { background: #9ca3af; }
@@ -1328,7 +1330,7 @@ export class AdvisorySourceCatalogComponent implements OnInit {
const statusMap = this.statuses();
let count = 0;
statusMap.forEach((status) => {
- if (status.lastCheck?.isHealthy) count++;
+ if (this.getEffectiveCheck(status)?.isHealthy) count++;
});
return count;
});
@@ -1337,7 +1339,8 @@ export class AdvisorySourceCatalogComponent implements OnInit {
const statusMap = this.statuses();
let count = 0;
statusMap.forEach((status) => {
- if (status.lastCheck && !status.lastCheck.isHealthy) count++;
+ const check = this.getEffectiveCheck(status);
+ if (check && !check.isHealthy) count++;
});
return count;
});
@@ -1371,10 +1374,11 @@ export class AdvisorySourceCatalogComponent implements OnInit {
}
const metric = metrics.get(sourceId);
+ const check = this.getEffectiveCheck(status);
const error =
metric?.lastError?.trim()
- || ((status.lastCheck && !status.lastCheck.isHealthy)
- ? (status.lastCheck.errorMessage?.trim() || `Connectivity check reported ${status.lastCheck.status}.`)
+ || ((check && !check.isHealthy)
+ ? (check.errorMessage?.trim() || `Connectivity check reported ${check.status}.`)
: null);
if (!error) {
@@ -1630,16 +1634,26 @@ export class AdvisorySourceCatalogComponent implements OnInit {
return this.statuses().get(sourceId)?.enabled ?? false;
}
+ private getEffectiveCheck(status: SourceStatusItem | undefined): SourceConnectivityResultDto | null {
+ if (!status) {
+ return null;
+ }
+
+ return status.blockingReason ?? status.lastCheck ?? null;
+ }
+
getSourceHealthStatus(sourceId: string): string {
const status = this.statuses().get(sourceId);
- if (!status?.lastCheck) return 'unchecked';
- if (status.lastCheck.isHealthy) return 'healthy';
- if (status.lastCheck.status === 'degraded') return 'degraded';
+ if (status?.syncState === 'blocked') return 'blocked';
+ const check = this.getEffectiveCheck(status);
+ if (!check) return 'unchecked';
+ if (check.isHealthy) return 'healthy';
+ if (check.status === 'degraded') return 'degraded';
return 'failed';
}
getSourceLastCheck(sourceId: string): SourceConnectivityResultDto | null {
- return this.statuses().get(sourceId)?.lastCheck ?? null;
+ return this.getEffectiveCheck(this.statuses().get(sourceId));
}
toggleSourceEnabled(sourceId: string): void {
@@ -1775,6 +1789,7 @@ export class AdvisorySourceCatalogComponent implements OnInit {
},
error: (err) => {
console.warn(`Sync failed for ${sourceId}:`, err);
+ this.reloadStatus();
},
});
}
@@ -1797,6 +1812,7 @@ export class AdvisorySourceCatalogComponent implements OnInit {
const batch = enabledIds.slice(startIndex, startIndex + batchSize);
if (batch.length === 0) {
this.syncing.set(false);
+ this.reloadStatus();
return;
}
diff --git a/src/Web/StellaOps.Web/src/app/features/integrations/advisory-vex-sources/source-management.api.ts b/src/Web/StellaOps.Web/src/app/features/integrations/advisory-vex-sources/source-management.api.ts
index e3b197c9b..2b7f8887c 100644
--- a/src/Web/StellaOps.Web/src/app/features/integrations/advisory-vex-sources/source-management.api.ts
+++ b/src/Web/StellaOps.Web/src/app/features/integrations/advisory-vex-sources/source-management.api.ts
@@ -35,6 +35,9 @@ export interface SourceStatusItem {
lastCheck?: SourceConnectivityResultDto | null;
syncSupported?: boolean;
fetchJobKind?: string;
+ syncState?: string;
+ readyForSync?: boolean;
+ blockingReason?: SourceConnectivityResultDto | null;
}
export interface SourceStatusResponse {
@@ -106,6 +109,8 @@ export interface SyncSourceResultDto {
outcome: string;
runId?: string | null;
message?: string | null;
+ errorCode?: string | null;
+ syncState?: string | null;
}
export interface SyncAllResultDto {