Dashboard Specification

Main dashboard layout and metrics specification for the Release Orchestrator UI.

Status: Planned (not yet implemented) Source: Architecture Advisory Section 12.1 Related Modules: WebSocket APIs, Metrics Sprint: 111_001 Dashboard Overview

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

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:

MetricDescription
Critical ReachableCritical vulnerabilities with confirmed reachability
High ReachableHigh severity vulnerabilities with confirmed reachability
Blocked ReleasesReleases blocked by security gates
Risk DriftEnvironments with changed risk since deployment

2. Release Operations Panel

Shows active deployment operations:

MetricDescription
In FlightDeployments currently in progress
Completed TodaySuccessful deployments in last 24h
Pending ApprovalPromotions awaiting approval
Failed (24h)Failed deployments in last 24h

3. Estate Health Panel

Displays agent and target health:

MetricDescription
Agents OnlineNumber of agents reporting healthy
Agents OfflineAgents that missed heartbeats
Targets HealthyTargets passing health checks
Drift DetectedTargets with version drift

4. Compliance/Audit Panel

Shows audit and compliance status:

MetricDescription
Evidence Complete% of deployments with full evidence
Policy ChangesPolicy modifications this week
Audit ExportsEvidence exports this month

Real-Time Updates

WebSocket Integration

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

MetricTarget
Initial Load< 2 seconds
Metric RefreshEvery 30 seconds
WebSocket ReconnectExponential backoff (1s, 2s, 4s, … 30s max)
Activity HistoryLast 50 events

See Also