save progress
This commit is contained in:
@@ -4,6 +4,8 @@
|
||||
**Source:** `src/Web/`
|
||||
**Owner:** UI Guild
|
||||
|
||||
> **Note:** This folder documents triage-specific frontend features. For the comprehensive Web UI architecture, see [`../ui/architecture.md`](../ui/architecture.md).
|
||||
|
||||
## Purpose
|
||||
|
||||
Web provides the Angular 17 single-page application (SPA) frontend for StellaOps. Delivers the user interface for vulnerability exploration, policy management, scan results, SBOM visualization, and administrative functions.
|
||||
|
||||
105
docs/modules/web/architecture.md
Normal file
105
docs/modules/web/architecture.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# component_architecture_web.md - **Stella Ops Web** (2025Q4)
|
||||
|
||||
> Angular 17 frontend SPA for StellaOps console.
|
||||
|
||||
> **Scope.** Frontend architecture for **Web**: the Angular 17 single-page application providing the StellaOps console interface.
|
||||
|
||||
> **Note:** For the comprehensive Web UI architecture including all features, see [`../ui/architecture.md`](../ui/architecture.md). This file provides a condensed overview.
|
||||
|
||||
---
|
||||
|
||||
## 0) Mission & boundaries
|
||||
|
||||
**Mission.** Provide an **intuitive, responsive web interface** for StellaOps operators to manage scans, review findings, configure policies, and monitor system health.
|
||||
|
||||
**Boundaries.**
|
||||
|
||||
* Web is a **frontend-only** application. All data comes from backend APIs.
|
||||
* Web **does not** store sensitive data locally beyond session tokens.
|
||||
* Supports **offline-first** patterns for air-gapped console access.
|
||||
|
||||
---
|
||||
|
||||
## 1) Solution & project layout
|
||||
|
||||
```
|
||||
src/Web/StellaOps.Web/
|
||||
├─ src/
|
||||
│ ├─ app/
|
||||
│ │ ├─ core/ # Core services, guards, interceptors
|
||||
│ │ │ ├─ services/
|
||||
│ │ │ ├─ guards/
|
||||
│ │ │ └─ interceptors/
|
||||
│ │ ├─ shared/ # Shared components, pipes, directives
|
||||
│ │ │ ├─ components/
|
||||
│ │ │ ├─ pipes/
|
||||
│ │ │ └─ directives/
|
||||
│ │ ├─ features/ # Feature modules
|
||||
│ │ │ ├─ dashboard/
|
||||
│ │ │ ├─ scans/
|
||||
│ │ │ ├─ findings/
|
||||
│ │ │ ├─ policies/
|
||||
│ │ │ ├─ settings/
|
||||
│ │ │ └─ admin/
|
||||
│ │ └─ app.routes.ts
|
||||
│ ├─ assets/
|
||||
│ ├─ environments/
|
||||
│ └─ styles/
|
||||
├─ angular.json
|
||||
├─ package.json
|
||||
└─ tsconfig.json
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2) Technology stack
|
||||
|
||||
* **Framework**: Angular 17 with standalone components
|
||||
* **State management**: NgRx Signals
|
||||
* **UI components**: Angular Material
|
||||
* **HTTP**: Angular HttpClient with interceptors
|
||||
* **Routing**: Angular Router with lazy loading
|
||||
* **Build**: Angular CLI with esbuild
|
||||
|
||||
---
|
||||
|
||||
## 3) Key features
|
||||
|
||||
| Feature | Path | Description |
|
||||
|---------|------|-------------|
|
||||
| Dashboard | `/dashboard` | Overview metrics and alerts |
|
||||
| Scans | `/scans` | Scan history and details |
|
||||
| Findings | `/findings` | Vulnerability findings list |
|
||||
| Compare | `/compare` | Diff view between scans |
|
||||
| Policies | `/policies` | Policy configuration |
|
||||
| Settings | `/settings` | User and system settings |
|
||||
|
||||
---
|
||||
|
||||
## 4) Authentication
|
||||
|
||||
* **OIDC/OAuth2** via Authority module
|
||||
* **Token refresh** handled by interceptor
|
||||
* **Session timeout** with configurable duration
|
||||
|
||||
---
|
||||
|
||||
## 5) Configuration
|
||||
|
||||
```typescript
|
||||
// environment.ts
|
||||
export const environment = {
|
||||
production: false,
|
||||
apiUrl: 'http://localhost:5000/api/v1',
|
||||
authorityUrl: 'http://localhost:5001',
|
||||
clientId: 'stellaops-web'
|
||||
};
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Related Documentation
|
||||
|
||||
* UI module: `../ui/architecture.md`
|
||||
* Authority: `../authority/architecture.md`
|
||||
* Auth smoke tests: `../ui/operations/auth-smoke.md`
|
||||
Reference in New Issue
Block a user