chore(docs+devops): cross-module doc sync + sprint archival moves + compose updates
Bundled pre-session doc + ops work: - docs/modules/**: sync across advisory-ai, airgap, cli, excititor, export-center, findings-ledger, notifier, notify, platform, router, sbom-service, ui, web (architectural + operational updates) - docs/features/**: updates to checked excititor vex pipeline, developer workspace, quick verify drawer - docs top-level: README, quickstart, API_CLI_REFERENCE, UI_GUIDE, code-of-conduct/TESTING_PRACTICES updates - docs/qa/feature-checks/: FLOW.md + excititor state update - docs/implplan/: remaining sprint updates + new Concelier source credentials sprint (SPRINT_20260422_003) - docs-archived/implplan/: 30 sprint archival moves (ElkSharp series, misc completed sprints) - devops/compose: .env + services compose + env example + router gateway config updates File-level granularity preserved. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,14 @@ Notifier provides the deployable WebService and Worker that compose the Notify l
|
||||
- `2026-04-16`: non-testing throttle and operator-override admin APIs now persist through PostgreSQL-backed suppression services and legacy compat adapters; restart-survival proof is covered by `NotifierSuppressionDurableRuntimeTests`.
|
||||
- `2026-04-16`: non-testing escalation-policy and on-call schedule APIs now persist through PostgreSQL-backed services and legacy compat adapters; restart-survival proof is covered by `NotifierEscalationOnCallDurableRuntimeTests`.
|
||||
- `2026-04-16`: non-testing quiet-hours calendars and maintenance windows now persist through PostgreSQL-backed runtime services and legacy compat adapters; restart-survival proof is covered by `NotifierQuietHoursMaintenanceDurableRuntimeTests`.
|
||||
- `2026-04-20`: compat `/api/v2/notify/quiet-hours/*` schedules that persist non-projectable cron expressions now evaluate natively after restart, and canonical `/api/v2/quiet-hours/calendars/*` reads surface the original `cronExpression` and `duration` metadata instead of leaving those schedules as inert `00:00` placeholders.
|
||||
- `2026-04-16`: non-testing webhook security, tenant isolation, dead-letter administration, and retention cleanup state now persist through PostgreSQL-backed runtime services and legacy compat adapters; restart-survival proof is covered by `NotifierSecurityDeadLetterDurableRuntimeTests`.
|
||||
- `2026-04-20`: non-testing worker dispatch now composes adapter-backed `Email`, `PagerDuty`, and `OpsGenie` delivery channels alongside webhook/chat dispatch, and durable delivery persistence now preserves provider `externalId` plus `incidentId` metadata for restart-safe external acknowledgements.
|
||||
- `2026-04-20`: PagerDuty and OpsGenie inbound acknowledgement webhooks no longer depend on a process-local bridge map; restart-survival proof is covered by `NotifierAckBridgeRuntimeDurableTests` and live worker DI proof by `NotifierWorkerHostWiringTests`.
|
||||
- `2026-04-20`: legacy `/api/v2/notify/simulate*` endpoints now use the same DI-composed simulation runtime as `/api/v2/simulate*`, and maintenance-window suppression parity is covered by `SimulationEndpointsBehaviorTests.LegacySingleEventSimulation_UsesQuietHoursEvaluator_ForMaintenanceSuppression`.
|
||||
- `2026-04-20`: the live Notifier worker now composes scheduled digest services through `AddDigestServices(...)`; `DigestScheduleRunner` resolves tenant IDs from schedule configuration instead of the in-memory tenant stub, and worker-host proof is covered by `NotifierWorkerHostWiringTests`.
|
||||
- `2026-04-20`: the orphaned cron-based `IDigestScheduler` path was retired from the worker. Scheduled digests are now documented as configuration-driven only, while `/digests` remains the admin surface for open digest windows rather than schedule CRUD.
|
||||
- `2026-04-20`: WebService startup now registers durable quiet-hours, suppression, escalation/on-call compat, security, and dead-letter services directly for non-testing hosts. The remaining in-memory variants are isolated to the `Testing` environment, and startup-contract proof lives in `StartupDependencyWiringTests`.
|
||||
|
||||
## Relationship to Notify
|
||||
|
||||
@@ -38,7 +45,7 @@ Per **2025-11-02 module boundary decision**: Maintain separation for packaging,
|
||||
|
||||
**Integration Points:**
|
||||
- Uses `StellaOps.Notify.Models`, `StellaOps.Notify.Queue`
|
||||
- Channels: Slack, Teams, Email, Webhook (via Notify connectors)
|
||||
- Channels: Slack, Teams, Email, Webhook, PagerDuty, OpsGenie
|
||||
- Storage: PostgreSQL (notify schema)
|
||||
- Queue: Valkey Streams / NATS JetStream
|
||||
|
||||
|
||||
Reference in New Issue
Block a user