add release orchestrator docs and sprints gaps fills
This commit is contained in:
207
docs/modules/release-orchestrator/ui/dashboard.md
Normal file
207
docs/modules/release-orchestrator/ui/dashboard.md
Normal file
@@ -0,0 +1,207 @@
|
||||
# Dashboard Specification
|
||||
|
||||
> Main dashboard layout and metrics specification for the Release Orchestrator UI.
|
||||
|
||||
**Status:** Planned (not yet implemented)
|
||||
**Source:** [Architecture Advisory Section 12.1](../../../product/advisories/09-Jan-2026%20-%20Stella%20Ops%20Orchestrator%20Architecture.md)
|
||||
**Related Modules:** [WebSocket APIs](../api/websockets.md), [Metrics](../operations/metrics.md)
|
||||
**Sprint:** [111_001 Dashboard Overview](../../../../implplan/SPRINT_20260110_111_001_FE_dashboard_overview.md)
|
||||
|
||||
## Overview
|
||||
|
||||
The dashboard provides a real-time overview of security posture, release operations, estate health, and compliance status.
|
||||
|
||||
---
|
||||
|
||||
## Dashboard Layout
|
||||
|
||||
```
|
||||
+-----------------------------------------------------------------------------+
|
||||
| STELLA OPS SUITE |
|
||||
| +-----+ [User Menu v] |
|
||||
| |Logo | Dashboard Releases Environments Workflows Integrations |
|
||||
+-----------------------------------------------------------------------------+
|
||||
| |
|
||||
| +-------------------------------+ +-----------------------------------+ |
|
||||
| | SECURITY POSTURE | | RELEASE OPERATIONS | |
|
||||
| | | | | |
|
||||
| | +---------+ +---------+ | | +---------+ +---------+ | |
|
||||
| | |Critical | | High | | | |In Flight| |Completed| | |
|
||||
| | | 0 * | | 3 * | | | | 2 | | 47 | | |
|
||||
| | |reachable| |reachable| | | |deploys | | today | | |
|
||||
| | +---------+ +---------+ | | +---------+ +---------+ | |
|
||||
| | | | | |
|
||||
| | Blocked: 2 releases | | Pending Approval: 3 | |
|
||||
| | Risk Drift: 1 env | | Failed (24h): 1 | |
|
||||
| | | | | |
|
||||
| +-------------------------------+ +-----------------------------------+ |
|
||||
| |
|
||||
| +-------------------------------+ +-----------------------------------+ |
|
||||
| | ESTATE HEALTH | | COMPLIANCE/AUDIT | |
|
||||
| | | | | |
|
||||
| | Agents: 12 online, 1 offline| | Evidence Complete: 98% | |
|
||||
| | Targets: 45/47 healthy | | Policy Changes: 2 (this week) | |
|
||||
| | Drift Detected: 2 targets | | Audit Exports: 5 (this month) | |
|
||||
| | | | | |
|
||||
| +-------------------------------+ +-----------------------------------+ |
|
||||
| |
|
||||
| +-----------------------------------------------------------------------+ |
|
||||
| | RECENT ACTIVITY | |
|
||||
| | | |
|
||||
| | * 14:32 myapp-v2.3.1 deployed to prod (jane@example.com) | |
|
||||
| | o 14:28 myapp-v2.3.1 promoted to stage (auto) | |
|
||||
| | * 14:15 api-v1.2.0 blocked: critical vuln CVE-2024-1234 | |
|
||||
| | o 13:45 worker-v3.0.0 release created (john@example.com) | |
|
||||
| | * 13:30 Target prod-web-03 health: degraded | |
|
||||
| | | |
|
||||
| +-----------------------------------------------------------------------+ |
|
||||
| |
|
||||
+-----------------------------------------------------------------------------+
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Dashboard Metrics
|
||||
|
||||
### TypeScript Interfaces
|
||||
|
||||
```typescript
|
||||
interface DashboardMetrics {
|
||||
// Security Posture
|
||||
security: {
|
||||
criticalReachable: number;
|
||||
highReachable: number;
|
||||
blockedReleases: number;
|
||||
riskDriftEnvironments: number;
|
||||
digestsAnalyzedToday: number;
|
||||
digestQuota: number;
|
||||
};
|
||||
|
||||
// Release Operations
|
||||
operations: {
|
||||
deploymentsInFlight: number;
|
||||
deploymentsCompletedToday: number;
|
||||
deploymentsFailed24h: number;
|
||||
pendingApprovals: number;
|
||||
averageDeployTime: number; // seconds
|
||||
};
|
||||
|
||||
// Estate Health
|
||||
estate: {
|
||||
agentsOnline: number;
|
||||
agentsOffline: number;
|
||||
agentsDegraded: number;
|
||||
targetsHealthy: number;
|
||||
targetsUnhealthy: number;
|
||||
targetsDrift: number;
|
||||
};
|
||||
|
||||
// Compliance/Audit
|
||||
compliance: {
|
||||
evidenceCompleteness: number; // percentage
|
||||
policyChangesThisWeek: number;
|
||||
auditExportsThisMonth: number;
|
||||
lastExportDate: DateTime;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Dashboard Panels
|
||||
|
||||
### 1. Security Posture Panel
|
||||
|
||||
Displays current security state across all releases:
|
||||
|
||||
| Metric | Description |
|
||||
|--------|-------------|
|
||||
| Critical Reachable | Critical vulnerabilities with confirmed reachability |
|
||||
| High Reachable | High severity vulnerabilities with confirmed reachability |
|
||||
| Blocked Releases | Releases blocked by security gates |
|
||||
| Risk Drift | Environments with changed risk since deployment |
|
||||
|
||||
### 2. Release Operations Panel
|
||||
|
||||
Shows active deployment operations:
|
||||
|
||||
| Metric | Description |
|
||||
|--------|-------------|
|
||||
| In Flight | Deployments currently in progress |
|
||||
| Completed Today | Successful deployments in last 24h |
|
||||
| Pending Approval | Promotions awaiting approval |
|
||||
| Failed (24h) | Failed deployments in last 24h |
|
||||
|
||||
### 3. Estate Health Panel
|
||||
|
||||
Displays agent and target health:
|
||||
|
||||
| Metric | Description |
|
||||
|--------|-------------|
|
||||
| Agents Online | Number of agents reporting healthy |
|
||||
| Agents Offline | Agents that missed heartbeats |
|
||||
| Targets Healthy | Targets passing health checks |
|
||||
| Drift Detected | Targets with version drift |
|
||||
|
||||
### 4. Compliance/Audit Panel
|
||||
|
||||
Shows audit and compliance status:
|
||||
|
||||
| Metric | Description |
|
||||
|--------|-------------|
|
||||
| Evidence Complete | % of deployments with full evidence |
|
||||
| Policy Changes | Policy modifications this week |
|
||||
| Audit Exports | Evidence exports this month |
|
||||
|
||||
---
|
||||
|
||||
## Real-Time Updates
|
||||
|
||||
### WebSocket Integration
|
||||
|
||||
```typescript
|
||||
interface DashboardStreamMessage {
|
||||
type: "metric_update" | "activity" | "alert";
|
||||
timestamp: DateTime;
|
||||
payload: MetricUpdate | ActivityEvent | Alert;
|
||||
}
|
||||
|
||||
// Subscribe to dashboard stream
|
||||
const ws = new WebSocket("/api/v1/dashboard/stream");
|
||||
|
||||
ws.onmessage = (event) => {
|
||||
const message: DashboardStreamMessage = JSON.parse(event.data);
|
||||
|
||||
switch (message.type) {
|
||||
case "metric_update":
|
||||
updateMetrics(message.payload);
|
||||
break;
|
||||
case "activity":
|
||||
addActivityItem(message.payload);
|
||||
break;
|
||||
case "alert":
|
||||
showAlert(message.payload);
|
||||
break;
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Performance Targets
|
||||
|
||||
| Metric | Target |
|
||||
|--------|--------|
|
||||
| Initial Load | < 2 seconds |
|
||||
| Metric Refresh | Every 30 seconds |
|
||||
| WebSocket Reconnect | Exponential backoff (1s, 2s, 4s, ... 30s max) |
|
||||
| Activity History | Last 50 events |
|
||||
|
||||
---
|
||||
|
||||
## See Also
|
||||
|
||||
- [WebSocket APIs](../api/websockets.md)
|
||||
- [Metrics](../operations/metrics.md)
|
||||
- [Workflow Editor](workflow-editor.md)
|
||||
- [Key Screens](screens.md)
|
||||
Reference in New Issue
Block a user