stabilizaiton work - projects rework for maintenanceability and ui livening

This commit is contained in:
master
2026-02-03 23:40:04 +02:00
parent 074ce117ba
commit 557feefdc3
3305 changed files with 186813 additions and 107843 deletions

View File

@@ -13,7 +13,7 @@ This document provides comprehensive guidance for implementing the Smart-Diff an
1. [Architecture Overview](#architecture-overview)
2. [Existing Component Inventory](#existing-component-inventory)
3. [Angular 17 Patterns](#angular-17-patterns)
3. [Angular 21 Patterns](#angular-21-patterns)
4. [State Management](#state-management)
5. [Visualization Techniques](#visualization-techniques)
6. [Styling System](#styling-system)
@@ -120,7 +120,7 @@ src/app/
---
## Angular 17 Patterns
## Angular 21 Patterns
### Standalone Components
@@ -150,7 +150,7 @@ export class ExplainerStepComponent {
### Input/Output with Signals
Angular 17 signal-based inputs:
Angular 21 signal-based inputs:
```typescript
// Modern approach (preferred)
@@ -178,7 +178,7 @@ export class MyComponent {
### Template Control Flow
Use new Angular 17 control flow syntax:
Use Angular 21 built-in control flow syntax:
```typescript
// In template

View File

@@ -19,7 +19,7 @@ The Console presents operator dashboards for scans, policies, VEX evidence, runt
- Support offline bundles with deterministic build outputs.
## Key components
- Angular 17 workspace under `src/Web/StellaOps.Web`.
- Angular 21 workspace under `src/Web/StellaOps.Web`.
- Signals-based state management with `@ngrx/signals` store.
- API client generator (`core/api`).
@@ -60,7 +60,7 @@ The Console presents operator dashboards for scans, policies, VEX evidence, runt
- Epic 11 Notifications Studio: notifications workspace with previews, audit trails (planned)
### Core Capabilities
- Angular 17 workspace with signals-based state management (@ngrx/signals)
- Angular 21 workspace with signals-based state management (@ngrx/signals)
- Real-time status via SSE for ingestion, scanning, policy, exports
- Authority integration: fresh-auth with DPoP-protected calls, scope enforcement
- Accessibility compliance and offline bundle support

View File

@@ -101,7 +101,7 @@ CONTROL PLANE / RELEASES / APPROVALS / SECURITY / EVIDENCE / OPERATIONS / SETTIN
---
## 4) Folder Structure (Angular 17+ Standalone)
## 4) Folder Structure (Angular 21 Standalone)
```
src/app/

View File

@@ -22,13 +22,13 @@
## 1) Technology baseline
* **Framework**: Angular 17+ (Standalone APIs / Signals), TypeScript 5.
* **Framework**: Angular 21 (Standalone APIs / Signals), TypeScript 5.9.
* **Styling**: Tailwind CSS + headless component patterns; CSS variables for theming.
* **Charts**: Lightweight SVG (uPlot or Apache ECharts via ondemand import).
* **State**: Angular **Signals** + `@ngrx/signals` store for crosspage slices.
* **Transport**: `fetch` + RxJS interop; **SSE** (EventSource) for progress streams.
* **Build**: Angular CLI + Vite builder.
* **Testing**: Jest + Testing Library, Playwright for e2e.
* **Testing**: Vitest + Testing Library, Playwright for e2e.
* **Packaging**: Containerized NGINX (immutable assets, ETag + content hashing).
* **Observability docs**: runbook + Grafana JSON stub in `operations/observability.md` and `operations/dashboards/console-ui-observability.json` (offline import).
@@ -178,18 +178,18 @@ Each feature folder builds as a **standalone route** (lazy loaded). All HTTP sha
- Kernel/privilege preflight checks for eBPF/ETW observers.
- Helm and systemd install templates.
- Agent download and registration flow.
* **Models**: `integration.models.ts` defines `IntegrationDraft`, `IntegrationProvider`, `WizardStep`, `PreflightCheck`, `AuthMethod`, and provider constants.
### 3.12 Advisor (Ask Stella)
* **Chat panel** scoped to the current artifact, CVE, or release, with citations and evidence chips.
* **Citations and Evidence** drawer lists object refs (SBOM, VEX, scan IDs) and hashes.
* **Action confirmation** modal required for any tool action; disabled when policy denies.
* **Budget indicators** show quota or token budget exhaustion with retry hints.
---
## 4) Auth, sessions & RBAC
* **Models**: `integration.models.ts` defines `IntegrationDraft`, `IntegrationProvider`, `WizardStep`, `PreflightCheck`, `AuthMethod`, and provider constants.
### 3.12 Advisor (Ask Stella)
* **Chat panel** scoped to the current artifact, CVE, or release, with citations and evidence chips.
* **Citations and Evidence** drawer lists object refs (SBOM, VEX, scan IDs) and hashes.
* **Action confirmation** modal required for any tool action; disabled when policy denies.
* **Budget indicators** show quota or token budget exhaustion with retry hints.
---
## 4) Auth, sessions & RBAC
### 4.1 OIDC flow

View File

@@ -32,13 +32,13 @@ The console is implemented in `src/Web/StellaOps.Web`, an Angular17 workspace
| `src/app/core/api` | Typed API clients for Console gateway (`/console/*`) and downstream services. | DTOs for Scanner, Notify, Concelier exporters; fetch-based clients with abort signals. |
| `src/app/core/config` | Runtime configuration loader (`/config.json`), feature flag gating. | Supports air-gap overrides and injects API base URLs, Authority issuer/client. |
| `src/app/features/*` | Route-level shells (auth bootstrap, scans detail, notifications inbox, Trivy DB settings). | Each feature is a standalone module with lazy loading and Angular Signals state. |
| `src/app/testing` | Fixtures and harnesses used in unit tests and storybook-like previews. | Deterministic data used for Playwright and Jest scenarios. |
| `src/app/testing` | Fixtures and harnesses used in unit tests and storybook-like previews. | Deterministic data used for Playwright and Vitest scenarios. |
Workspace characteristics:
- **Toolchain:** Node20.11+, npm10.2+, Angular CLI 17.3. `npm run ci:install` primes dependencies without network audits; `scripts/verify-chromium.js` ensures headless Chromium availability for Karma.
- **Toolchain:** Node20.11+, npm10.2+, Angular CLI 21.1. `npm run ci:install` primes dependencies without network audits; `scripts/verify-chromium.js` ensures headless Chromium availability for Playwright e2e.
- **Build budgets:** `angular.json` enforces 500KB warning / 1MB error for initial bundle and 2KB warning / 4KB error per component stylesheet. Output hashing (`outputHashing: all`) keeps assets cache-safe.
- **Testing:** Karma + Jasmine for unit tests, Playwright for e2e with dev server autotuning. CI (`DEVOPS-CONSOLE-23-001`) runs Lighthouse against the production bundle.
- **Testing:** Vitest for unit tests, Playwright for e2e with dev server autotuning. CI (`DEVOPS-CONSOLE-23-001`) runs Lighthouse against the production bundle.
- **Runtime config:** `/config.json` merged at bootstrap; gateways can rewrite it on the fly to avoid rebuilding for environment changes.
---