Files
git.stella-ops.org/docs/features/unchecked/web/policy-studio-ui.md

3.1 KiB

Policy Studio UI (Monaco Editor, Simulation, Approvals)

Module

Web

Status

IMPLEMENTED

Description

Full Policy Studio authoring environment with Monaco-based DSL editor (stella-dsl@1 syntax highlighting, IntelliSense), policy simulation panel with deterministic diff rendering, guided rule builder, YAML editor with schema validation, submit/review/approve workflow with two-person approval, run viewer dashboards, and explain view with evidence overlay exports.

Implementation Details

  • Feature directory: src/Web/StellaOps.Web/src/app/features/policy-studio/
  • Components:
    • conflict-visualizer (src/Web/StellaOps.Web/src/app/features/policy-studio/ai/conflict-visualizer.component.ts)
    • live-rule-preview (src/Web/StellaOps.Web/src/app/features/policy-studio/ai/live-rule-preview.component.ts)
    • test-case-panel (src/Web/StellaOps.Web/src/app/features/policy-studio/ai/test-case-panel.component.ts)
    • version-history (src/Web/StellaOps.Web/src/app/features/policy-studio/ai/version-history.component.ts)
    • policy-approvals (src/Web/StellaOps.Web/src/app/features/policy-studio/approvals/policy-approvals.component.ts)
    • policy-dashboard (src/Web/StellaOps.Web/src/app/features/policy-studio/dashboard/policy-dashboard.component.ts)
    • policy-editor (src/Web/StellaOps.Web/src/app/features/policy-studio/editor/policy-editor.component.ts)
    • policy-explain (src/Web/StellaOps.Web/src/app/features/policy-studio/explain/policy-explain.component.ts)
    • policy-nl-input (src/Web/StellaOps.Web/src/app/features/policy-studio/nl-input/policy-nl-input.component.ts)
    • policy-rule-builder (src/Web/StellaOps.Web/src/app/features/policy-studio/rule-builder/policy-rule-builder.component.ts)
    • policy-simulation (src/Web/StellaOps.Web/src/app/features/policy-studio/simulation/policy-simulation.component.ts)
    • policy-workspace (src/Web/StellaOps.Web/src/app/features/policy-studio/workspace/policy-workspace.component.ts)
    • policy-yaml-editor (src/Web/StellaOps.Web/src/app/features/policy-studio/yaml/policy-yaml-editor.component.ts)
  • Services:
    • monaco-loader (src/Web/StellaOps.Web/src/app/features/policy-studio/editor/monaco-loader.service.ts)
    • policy-api (src/Web/StellaOps.Web/src/app/features/policy-studio/services/policy-api.service.ts)
  • Models:
    • src/Web/StellaOps.Web/src/app/features/policy-studio/models/policy.models.ts
  • Source: SPRINT_0210_0001_0002_ui_ii.md

E2E Test Plan

  • Setup:
    • Log in with a user that has appropriate permissions
    • Navigate to /policy-studio/packs
    • Ensure test data exists (scanned artifacts, SBOM data, or seed data as needed)
  • Core verification:
    • Verify the editor/studio loads with editable content or empty template
    • Verify changes can be saved and persisted
    • Verify validation errors are displayed for invalid input
  • Edge cases:
    • Verify graceful handling when backend API is unavailable (error state)
    • Verify responsive layout at different viewport sizes
    • Verify accessibility (keyboard navigation, screen reader labels, ARIA attributes)