- Fix namespace conflicts (Subgraph → PoESubgraph) - Add hash sanitization for Windows filesystem (colon → underscore) - Update all test mocks to use It.IsAny<>() - Add direct orchestrator unit tests - All 8 PoE tests now passing (100% success rate) - Complete SPRINT_3500_0001_0001 documentation Fixes compilation errors and Windows filesystem compatibility issues. Tests: 8/8 passing Files: 8 modified, 1 new test, 1 completion report 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1.1 KiB
1.1 KiB
Install and deploy
Prerequisites (baseline)
- Linux host with sufficient CPU, memory, and disk for SBOM and artifact storage.
- Docker Compose or Kubernetes (Helm) for deployment.
- TLS termination for external access.
Required infrastructure
- PostgreSQL (single cluster, schema isolation per module).
- Valkey for cache, queues, and streams.
- RustFS for content-addressed artifacts.
Optional infrastructure
- Rekor mirror for transparency log anchoring.
- Fulcio or KMS-backed signing provider.
- NATS JetStream as an alternative queue and stream transport.
Deployment models
- Compose profiles for single-node and lab environments.
- Helm charts for multi-node and HA deployments.
- Air-gap deployment via Offline Kit (see operations/airgap.md).
Configuration hierarchy
- Environment variables
- appsettings.{Environment}.json
- appsettings.json
- YAML overlays under etc/
Operational baselines
- Enforce non-root containers and read-only filesystems where possible.
- Use digest-pinned images for releases.
- Keep clocks synchronized and use UTC everywhere.