ui progressing
This commit is contained in:
@@ -17,3 +17,9 @@ Source of truth: `docs/implplan/SPRINT_20251229_043_PLATFORM_platform_service_fo
|
||||
| PLAT-SVC-008 | DONE | Observability metrics/logging. |
|
||||
| PLAT-SVC-009 | DONE | Determinism/offline tests. |
|
||||
| PLAT-SVC-010 | DONE | Docs/runbooks update. |
|
||||
| B22-01 | DONE | Sprint `docs/implplan/SPRINT_20260220_018_Platform_pack22_backend_contracts_and_migrations.md`: shipped `/api/v2/context/*` contracts, policy/scope wiring, migration `047_GlobalContextAndFilters.sql`, and endpoint/migration tests for deterministic ordering and preference round-trip behavior. |
|
||||
| B22-02 | DONE | Sprint `docs/implplan/SPRINT_20260220_018_Platform_pack22_backend_contracts_and_migrations.md`: shipped v2 releases read-model endpoints (`/api/v2/releases{,/activity,/approvals,/{releaseId}}`) backed by deterministic projections and migration `048_ReleaseReadModels.sql`. |
|
||||
| B22-03 | DONE | Sprint `docs/implplan/SPRINT_20260220_018_Platform_pack22_backend_contracts_and_migrations.md`: shipped `/api/v2/topology/*` inventory endpoints (regions/environments/targets/hosts/agents/promotion paths/workflows/gate profiles) and migration `049_TopologyInventory.sql`. |
|
||||
| B22-04 | DONE | Sprint `docs/implplan/SPRINT_20260220_018_Platform_pack22_backend_contracts_and_migrations.md`: shipped `/api/v2/security/{findings,disposition/{findingId},sbom-explorer}` contracts and migration `050_SecurityDispositionProjection.sql` while preserving separate VEX/exception write authority boundaries. |
|
||||
| B22-05 | DONE | Sprint `docs/implplan/SPRINT_20260220_018_Platform_pack22_backend_contracts_and_migrations.md`: shipped `/api/v2/integrations/{feeds,vex-sources}` contracts and migration `051_IntegrationSourceHealth.sql` with deterministic source health/freshness metadata. |
|
||||
| B22-06 | DONE | Sprint `docs/implplan/SPRINT_20260220_018_Platform_pack22_backend_contracts_and_migrations.md`: shipped legacy alias compatibility and deterministic deprecation telemetry for critical Pack 22 API surfaces. |
|
||||
|
||||
@@ -14,6 +14,9 @@ Provide a single, deterministic aggregation layer for cross-service UX workflows
|
||||
- Persist onboarding progress and tenant setup milestones.
|
||||
- Persist dashboard personalization and layout preferences.
|
||||
- Provide global search aggregation across entities.
|
||||
- Provide global context selectors (region/environment/time window) and per-user persistence for Pack 22 top-bar context.
|
||||
- Provide Pack 22 release read-model projections for list/detail/activity/approvals queue views.
|
||||
- Provide Pack 22 topology inventory read-model projections for regions/environments/targets/hosts/agents/promotion paths/workflows/gate profiles.
|
||||
- Surface platform metadata for UI bootstrapping (version, build, offline status).
|
||||
- Expose analytics lake aggregates for SBOM, vulnerability, and attestation reporting.
|
||||
|
||||
@@ -52,6 +55,40 @@ Provide a single, deterministic aggregation layer for cross-service UX workflows
|
||||
- GET `/api/v1/platform/metadata`
|
||||
- Response includes a capabilities list for UI bootstrapping; analytics capability is reported only when analytics storage is configured.
|
||||
|
||||
## API surface (v2)
|
||||
|
||||
### Global context
|
||||
- GET `/api/v2/context/regions`
|
||||
- GET `/api/v2/context/environments?regions=`
|
||||
- GET `/api/v2/context/preferences`
|
||||
- PUT `/api/v2/context/preferences`
|
||||
|
||||
### Releases read model
|
||||
- GET `/api/v2/releases`
|
||||
- GET `/api/v2/releases/{releaseId}`
|
||||
- GET `/api/v2/releases/activity`
|
||||
- GET `/api/v2/releases/approvals`
|
||||
|
||||
### Topology inventory read model
|
||||
- GET `/api/v2/topology/regions`
|
||||
- GET `/api/v2/topology/environments`
|
||||
- GET `/api/v2/topology/targets`
|
||||
- GET `/api/v2/topology/hosts`
|
||||
- GET `/api/v2/topology/agents`
|
||||
- GET `/api/v2/topology/promotion-paths`
|
||||
- GET `/api/v2/topology/workflows`
|
||||
- GET `/api/v2/topology/gate-profiles`
|
||||
|
||||
### Security read model
|
||||
- GET `/api/v2/security/findings`
|
||||
- GET `/api/v2/security/disposition`
|
||||
- GET `/api/v2/security/disposition/{findingId}`
|
||||
- GET `/api/v2/security/sbom-explorer`
|
||||
|
||||
### Integrations read model
|
||||
- GET `/api/v2/integrations/feeds`
|
||||
- GET `/api/v2/integrations/vex-sources`
|
||||
|
||||
### Analytics (SBOM lake)
|
||||
- GET `/api/analytics/suppliers`
|
||||
- GET `/api/analytics/licenses`
|
||||
@@ -61,12 +98,43 @@ Provide a single, deterministic aggregation layer for cross-service UX workflows
|
||||
- GET `/api/analytics/trends/vulnerabilities`
|
||||
- GET `/api/analytics/trends/components`
|
||||
|
||||
### Legacy alias compatibility (`/api/v1/*`)
|
||||
- GET `/api/v1/context/regions` (alias of `/api/v2/context/regions`)
|
||||
- GET `/api/v1/releases` (alias of `/api/v2/releases`)
|
||||
- GET `/api/v1/topology/regions` (alias of `/api/v2/topology/regions`)
|
||||
- GET `/api/v1/security/findings` (alias of `/api/v2/security/findings`)
|
||||
- GET `/api/v1/integrations/feeds` (alias of `/api/v2/integrations/feeds`)
|
||||
- GET `/api/v1/integrations/vex-sources` (alias of `/api/v2/integrations/vex-sources`)
|
||||
- Alias usage telemetry is emitted as deterministic event keys (`alias_<method>_<route_pattern>`) with tenant hash metadata only.
|
||||
|
||||
## Data model
|
||||
- `platform.dashboard_preferences` (dashboard layout, widgets, filters)
|
||||
- `platform.dashboard_profiles` (saved profiles per tenant)
|
||||
- `platform.onboarding_state` (step state, timestamps, actor)
|
||||
- `platform.quota_alerts` (per-tenant quota alert thresholds)
|
||||
- `platform.search_history` (optional, user-scoped, append-only)
|
||||
- `platform.context_regions` (global region selector inventory)
|
||||
- `platform.context_environments` (global environment selector inventory with region linkage)
|
||||
- `platform.ui_context_preferences` (tenant + actor scoped region/environment/time-window selections)
|
||||
- `release.release_read_model` (Pack 22 release list/detail projection root)
|
||||
- `release.release_activity_projection` (cross-release timeline projection with run/approval correlation keys)
|
||||
- `release.release_approvals_projection` (cross-release approval queue projection with blocker summaries)
|
||||
- `release.security_finding_projection` (Pack 22 consolidated findings projection with pivot/filter fields)
|
||||
- `release.security_disposition_projection` (read-only join projection for VEX + exception disposition state)
|
||||
- `release.security_sbom_component_projection` (component-level SBOM explorer table projection)
|
||||
- `release.security_sbom_graph_projection` (edge-level SBOM graph projection used by graph and diff modes)
|
||||
- `release.integration_feed_source_health` (advisory feed source health/freshness projection)
|
||||
- `release.integration_vex_source_health` (VEX source health/freshness projection with statement-format metadata)
|
||||
- `release.integration_source_sync_watermarks` (source family synchronization watermark projection state)
|
||||
- `release.topology_region_inventory` (region-level topology projection with deterministic ordering counts)
|
||||
- `release.topology_environment_inventory` (environment-level topology projection with region linkage and aggregate counters)
|
||||
- `release.topology_target_inventory` (target/component deployment inventory projection)
|
||||
- `release.topology_host_inventory` (host runtime inventory projection linked to targets and agents)
|
||||
- `release.topology_agent_inventory` (agent fleet projection with capability and assignment summaries)
|
||||
- `release.topology_promotion_path_inventory` (region-aware promotion-path projection with workflow and gate links)
|
||||
- `release.topology_workflow_inventory` (workflow template projection for topology routes)
|
||||
- `release.topology_gate_profile_inventory` (gate profile projection bound to region/environment inventory)
|
||||
- `release.topology_sync_watermarks` (projection synchronization watermark state for deterministic replay/cutover checks)
|
||||
- Schema reference: `docs/db/schemas/platform.sql` (PostgreSQL; in-memory stores used until storage driver switches).
|
||||
|
||||
## Dependencies
|
||||
@@ -81,6 +149,12 @@ Provide a single, deterministic aggregation layer for cross-service UX workflows
|
||||
- Quotas: `quota.read` (summary), `quota.admin` (alerts/config)
|
||||
- Onboarding: `onboarding.read`, `onboarding.write`
|
||||
- Preferences: `ui.preferences.read`, `ui.preferences.write`
|
||||
- Context: `platform.context.read`, `platform.context.write`
|
||||
- Releases read model: `orch:read` (`platform.releasecontrol.read` policy mapping in Platform service)
|
||||
- Topology read model: `orch:read` (`platform.topology.read` policy mapping in Platform service)
|
||||
- Security read model: `findings:read` (`platform.security.read` policy mapping in Platform service)
|
||||
- Integrations feed read model: `advisory:read` (`platform.integrations.read` policy mapping in Platform service)
|
||||
- Integrations VEX source read model: `vex:read` (`platform.integrations.vex.read` policy mapping in Platform service)
|
||||
- Search: `search.read` plus downstream service scopes (`findings:read`, `policy:read`, etc.)
|
||||
- Metadata: `platform.metadata.read`
|
||||
- Analytics: `analytics.read`
|
||||
@@ -213,4 +287,3 @@ The Platform Service exposes setup wizard endpoints to support first-run configu
|
||||
- UX flow specification: `docs/setup/setup-wizard-ux.md`
|
||||
- Repository inventory: `docs/setup/setup-wizard-inventory.md`
|
||||
- Doctor checks: `docs/setup/setup-wizard-doctor-contract.md`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user