Files
git.stella-ops.org/docs/modules/concelier
master 3871732765 feat(excititor+cli+web): VEX provider control plane — CLI + Web extensions (SPRINT_20260422_004)
Continues the SPRINT_20260422_004_Concelier_full_connector_control_plane
feature stream started in commit 5c1b59580 (Excititor provider management
endpoints + contracts + service + tests). Adds the CLI + Web surfaces on
top of that backend.

CLI (src/Cli/**):
- CommandHandlers + BackendOperationsClient extended with provider
  management calls
- ExcititorProviderSummary model added to the CLI's service models
- NonCoreCliCommandModule wires the new commands; tests updated
- TASKS.md entries synced

Web console (src/Web/StellaOps.Web/**):
- New vex-provider-catalog.component + vex-provider-management.api client
- advisory-source-catalog + advisory-vex-route-helpers extended to route
  users to the new VEX provider surface
- integration-hub.routes.ts registers the new route
- security-disposition-page.component.ts updated for the flow

Excititor/Concelier docs + contracts:
- docs/modules/excititor/operations/provider-control-plane.md — operator
  guide for the new control plane
- docs/modules/excititor/README.md + docs/modules/concelier/{README,
  connectors}.md — cross-links + refs
- ConfiguredAdvisorySourceService.cs — additional provider plumbing
- StellaOps.Excititor.WebService/TASKS.md synced

Sprint doc (docs/implplan/SPRINT_20260422_004_*.md) reflects the
in-flight progress.

This is external-stream work picked up during the 2026-04-22 session's
closeout — bundling it now so the working tree is clean and main stays
in sync with local feature-branch state.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 19:24:49 +03:00
..
2026-01-07 10:23:21 +02:00
2026-01-07 10:23:21 +02:00
2026-02-01 21:37:40 +02:00
2025-12-24 21:45:46 +02:00
up
2025-12-09 00:20:52 +02:00
2026-01-06 19:07:48 +02:00
2026-01-06 19:07:48 +02:00
2025-12-25 10:54:10 +02:00
2025-12-26 00:32:58 +02:00
2026-02-01 21:37:40 +02:00
2025-11-23 23:40:10 +02:00

StellaOps Concelier

Concelier maintains a catalog of 78 advisory source definitions and currently wires 31 built-in runnable advisory pipelines in the default WebService host. It converts signed advisories into immutable observations plus linksets under the Aggregation-Only Contract (AOC).

Current operator references:

Responsibilities

  • Fetch and normalise vulnerability advisories via restart-time connectors.
  • Persist observations and correlation linksets without precedence decisions.
  • Emit deterministic exports (JSON, Trivy DB) for downstream policy evaluation.
  • Coordinate offline/air-gap updates via Offline Kit bundles.
  • Serve paragraph-anchored advisory chunks for Advisory AI consumers without breaking the Aggregation-Only Contract.
  • Do not emit promotion PASS/FAIL decisions; promotion gate decisions are owned by Policy Engine.

Key components

  • StellaOps.Concelier.WebService orchestration host.
  • Connector libraries under StellaOps.Concelier.Connector.*.
  • Exporter packages (StellaOps.Concelier.Exporter.*).

Recent updates

Integrations & dependencies

  • PostgreSQL (schema vuln) for canonical observations and schedules.
  • Policy Engine / Export Center / CLI for evidence consumption.
  • Notify and UI for advisory deltas.

Operational notes

  • Connector runbooks in ./operations/connectors/.
  • Mirror operations for Offline Kit parity.
  • Grafana dashboards for connector health.
  • Authority toggle rollout (2025-10-22 update). Follow the phased table and audit checklist in ../../CONCELIER_CLI_QUICKSTART.md when enabling authority.enabled/authority.allowAnonymousFallback, and cross-check the refreshed ./operations/authority-audit-runbook.md before enforcement.
  • ./operations/conflict-resolution.md
  • ./operations/mirror.md
  • ./operations/authority-audit-runbook.md
  • ../../CONCELIER_CLI_QUICKSTART.md (authority integration timeline & smoke tests)

Backlog references

  • DOCS-LNM-22-001, DOCS-LNM-22-007 in ../../TASKS.md.
  • Connector-specific TODOs in src/Concelier/**/TASKS.md.

Epic alignment

  • Epic 1 AOC enforcement: uphold raw observation invariants, provenance requirements, linkset-only enrichment, and AOC verifier guardrails across every connector.
  • Epic 10 Export Center: expose deterministic advisory exports and metadata required by JSON/Trivy/mirror bundles.

Implementation Status

Delivery Phases:

  • Phase 1 (Guardrails & schema) PostgreSQL validators, AOCWriteGuard interceptor, deterministic linkset builders operational
  • Phase 2 (API & observability) Ingestion/verification endpoints with Authority scopes, telemetry, Offline Kit packaging
  • Phase 3 (Experience polish) CLI/Console affordances, Export Center hand-off metadata, CI enforcement

Acceptance Criteria:

  • PostgreSQL validators and runtime guards reject forbidden fields and missing provenance with ERR_AOC_00x codes
  • Linksets and supersedes chains deterministic; identical payloads yield byte-identical documents
  • CLI stella aoc verify exits non-zero on violations, zero on clean datasets
  • Export Center consumes advisory datasets without legacy normalized fields
  • CI fails on lint violations or guard test regressions

Key Risks & Mitigations:

  • Collector drift: guard middleware + CI lint + schema validation; RFC required for linkset changes
  • Migration complexity: staged cutover with backup copies, temporary views for Policy Engine parity
  • Performance overhead: guard remains O(number of keys), index review for insert latency targets
  • Tenancy leakage: tenant required in schema, Authority claims enforced, observability alerts

Recent Milestones:

  • Sprint 110 attestation chain validated, evidence bundle tests green
  • Link-Not-Merge cache and console consumption docs frozen
  • Observation events transport reviewed, NATS/air-gap guidance updated
  • Testing-only legacy AddInMemoryStorage() compatibility moved into explicit web-service test harnesses, and runtime observation-event defaults no longer imply an undocumented "inmemory" transport