master 396e9b75a4 docs: Add comprehensive component architecture documentation
Created detailed architectural documentation showing component interactions,
communication patterns, and data flows across all StellaOps services.

## New Documentation

**docs/ARCHITECTURE_DETAILED.md** - Comprehensive architecture guide:
- Component topology diagram (all 36+ services)
- Infrastructure layer details (PostgreSQL, Valkey, RustFS, NATS)
- Service-by-service catalog with responsibilities
- Communication patterns with WHY (business purpose)
- 5 detailed data flow diagrams:
  1. Scan Request Flow (CLI → Scanner → Worker → Policy → Signer → Attestor → Notify)
  2. Advisory Update Flow (Concelier → Scheduler → Scanner re-evaluation)
  3. VEX Update Flow (Excititor → IssuerDirectory → Scheduler → Policy)
  4. Notification Delivery Flow (Scanner → Valkey → Notify → Slack/Teams/Email)
  5. Policy Evaluation Flow (Scanner → Policy.Gateway → OPA → PostgreSQL replication)
- Database schema isolation details per service
- Security boundaries and authentication flows

## Updated Documentation

**docs/DEVELOPER_ONBOARDING.md**:
- Added link to detailed architecture
- Simplified overview with component categories
- Quick reference topology tree

**docs/07_HIGH_LEVEL_ARCHITECTURE.md**:
- Updated infrastructure requirements section
- Clarified PostgreSQL as ONLY database
- Emphasized Valkey as REQUIRED (not optional)
- Marked NATS as optional (Valkey is default transport)

**docs/README.md**:
- Added link to detailed architecture in navigation

## Key Architectural Insights Documented

**Communication Patterns:**
- 11 communication steps in scan flow (Gateway → Scanner → Valkey → Worker → Concelier → Policy → Signer → Attestor → Valkey → Notify → Slack)
- PostgreSQL logical replication (advisory_raw_stream, vex_raw_stream → Policy Engine)
- Valkey Streams for async job queuing (XADD/XREADGROUP pattern)
- HTTP webhooks for delta events (Concelier/Excititor → Scheduler)

**Security Boundaries:**
- Authority issues OpToks with DPoP binding (RFC 9449)
- Signer enforces PoE validation + scanner digest verification
- All services validate JWT + DPoP on every request
- Tenant isolation via tenant_id in all PostgreSQL queries

**Database Patterns:**
- 8 dedicated PostgreSQL schemas (authority, scanner, vuln, vex, scheduler, notify, policy, orchestrator)
- Append-only advisory/VEX storage (AOC - Aggregation-Only Contract)
- BOM-Index for impact selection (CVE → PURL → image mapping)

This documentation provides complete visibility into who calls who, why they
communicate, what data flows through the system, and how security is enforced
at every layer.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 11:05:55 +02:00
tam
2025-10-12 20:42:07 +00:00
up
2025-12-11 08:20:04 +02:00
up
2025-12-13 02:22:15 +02:00
2025-12-13 00:19:43 +02:00
up
2025-12-09 00:20:52 +02:00
up
2025-12-14 18:33:02 +02:00
up
2025-12-13 09:37:15 +02:00
up
2025-12-14 23:20:14 +02:00
up
2025-12-09 00:20:52 +02:00
up
2025-12-13 02:22:15 +02:00
up
2025-12-07 23:07:09 +02:00
up
2025-12-14 15:50:38 +02:00
up
2025-12-13 09:37:15 +02:00
2025-12-11 02:32:18 +02:00
2025-10-11 23:28:35 +03:00
2025-11-23 14:54:17 +02:00
2025-12-11 02:32:18 +02:00
2025-12-11 02:32:18 +02:00
up
2025-11-27 07:46:56 +02:00
2025-12-18 00:47:24 +02:00

StellaOps Concelier & CLI

Build Status Quality Gates Reachability TTFS SLO Mutation Score

This repository hosts the StellaOps Concelier service, its plug-in ecosystem, and the first-party CLI (stellaops-cli). Concelier ingests vulnerability advisories from authoritative sources, stores them in PostgreSQL, and exports deterministic JSON and Trivy DB artefacts. The CLI drives scanner distribution, scan execution, and job control against the Concelier API.

Quickstart

  1. Prepare a PostgreSQL instance and (optionally) install trivy-db/oras.
  2. Copy etc/concelier.yaml.sample to etc/concelier.yaml and update the storage + telemetry settings.
  3. Copy etc/authority.yaml.sample to etc/authority.yaml, review the issuer, token lifetimes, and plug-in descriptors, then edit the companion manifests under etc/authority.plugins/*.yaml to match your deployment.
  4. Start the web service with dotnet run --project src/Concelier/StellaOps.Concelier.WebService.
  5. Configure the CLI via environment variables (e.g. STELLAOPS_BACKEND_URL) and trigger jobs with dotnet run --project src/Cli/StellaOps.Cli -- db merge.

Detailed operator guidance is available in docs/10_CONCELIER_CLI_QUICKSTART.md. API and command reference material lives in docs/09_API_CLI_REFERENCE.md.

Pipeline note: deployment workflows should template etc/concelier.yaml during CI/CD, injecting environment-specific PostgreSQL connection strings and telemetry endpoints. Upcoming releases will add Microsoft OAuth (Entra ID) authentication support—track the quickstart for integration steps once available.

Documentation

  • docs/README.md now consolidates the platform index and points to the updated high-level architecture.
  • Module architecture dossiers now live under docs/modules/<module>/. The most relevant here are docs/modules/concelier/ARCHITECTURE.md (service layout, merge engine, exports) and docs/modules/cli/ARCHITECTURE.md (command surface, AOT packaging, auth flows). Related services such as the Signer, Attestor, Authority, Scanner, UI, Excititor, Zastava, and DevOps pipeline each have their own dossier in the same hierarchy.
  • Offline operation guidance moved to docs/24_OFFLINE_KIT.md, which details bundle composition, verification, and delta workflows. Concelier-specific connector operations stay in docs/modules/concelier/operations/connectors/*.md with companion runbooks in docs/modules/concelier/operations/.
Description
No description provided
Readme AGPL-3.0 2.8 GiB
Languages
C# 91.7%
TypeScript 4.3%
Python 1%
Shell 0.8%
HTML 0.7%
Other 1.3%