Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Concelier Attestation Tests / attestation-tests (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Export Center CI / export-ci (push) Has been cancelled
Mirror Thin Bundle Sign & Verify / mirror-sign (push) Has been cancelled
- Introduced DigestUpsertRequest for handling digest upsert requests with properties like ChannelId, Recipient, DigestKey, Events, and CollectUntil. - Created LockEntity to represent a lightweight distributed lock entry with properties such as Id, TenantId, Resource, Owner, ExpiresAt, and CreatedAt. feat: Implement ILockRepository interface and LockRepository class - Defined ILockRepository interface with methods for acquiring and releasing locks. - Implemented LockRepository class with methods to try acquiring a lock and releasing it, using SQL for upsert operations. feat: Add SurfaceManifestPointer record for manifest pointers - Introduced SurfaceManifestPointer to represent a minimal pointer to a Surface.FS manifest associated with an image digest. feat: Create PolicySimulationInputLock and related validation logic - Added PolicySimulationInputLock record to describe policy simulation inputs and expected digests. - Implemented validation logic for policy simulation inputs, including checks for digest drift and shadow mode requirements. test: Add unit tests for ReplayVerificationService and ReplayVerifier - Created ReplayVerificationServiceTests to validate the behavior of the ReplayVerificationService under various scenarios. - Developed ReplayVerifierTests to ensure the correctness of the ReplayVerifier logic. test: Implement PolicySimulationInputLockValidatorTests - Added tests for PolicySimulationInputLockValidator to verify the validation logic against expected inputs and conditions. chore: Add cosign key example and signing scripts - Included a placeholder cosign key example for development purposes. - Added a script for signing Signals artifacts using cosign with support for both v2 and v3. chore: Create script for uploading evidence to the evidence locker - Developed a script to upload evidence to the evidence locker, ensuring required environment variables are set.
3.7 KiB
3.7 KiB
Phase 3: Notify Module Conversion
Sprint: 4 Duration: 1 sprint Status: DONE (2025-12-02) Dependencies: Phase 0 (Foundations)
Objectives
- Create
StellaOps.Notify.Storage.Postgresproject - Implement Notify schema in PostgreSQL
- Implement 15 repository interfaces
- Handle delivery tracking and escalation state
- Switch Notify services to PostgreSQL-only (cutover)
Deliverables
| Deliverable | Acceptance Criteria |
|---|---|
| Notify schema | All tables created with indexes |
| Repository implementations | All 15 interfaces implemented |
| Integration tests | 100% coverage of CRUD operations |
| Verification report | Notification delivery verified |
Schema Reference
See SPECIFICATION.md Section 5.5 for complete Notify schema.
Tables:
notify.channelsnotify.rulesnotify.templatesnotify.deliveriesnotify.digestsnotify.quiet_hoursnotify.maintenance_windowsnotify.escalation_policiesnotify.escalation_statesnotify.on_call_schedulesnotify.inboxnotify.incidentsnotify.audit
Task Breakdown
T3.1: Create Notify.Storage.Postgres Project
Status: TODO Estimate: 0.5 days
Subtasks:
- Create project structure
- Add NuGet references
- Create
NotifyDataSourceclass - Create
ServiceCollectionExtensions.cs
T3.2: Implement Schema Migrations
Status: TODO Estimate: 1 day
Subtasks:
- Create schema migration
- Include all tables and indexes
- Test migration idempotency
T3.3: Implement Channel Repository
Status: TODO Estimate: 0.5 days
Subtasks:
- Implement CRUD operations
- Handle channel types (email, slack, teams, etc.)
- Write integration tests
T3.4: Implement Rule Repository
Status: TODO Estimate: 0.5 days
Subtasks:
- Implement CRUD operations
- Handle filter JSONB
- Write integration tests
T3.5: Implement Template Repository
Status: TODO Estimate: 0.5 days
Subtasks:
- Implement CRUD operations
- Handle localization
- Write integration tests
T3.6: Implement Delivery Repository
Status: TODO Estimate: 1 day
Subtasks:
- Implement CRUD operations
- Handle status transitions
- Implement retry logic
- Write integration tests
T3.7: Implement Remaining Repositories
Status: TODO Estimate: 2 days
Subtasks:
- Implement Digest repository
- Implement QuietHours repository
- Implement MaintenanceWindow repository
- Implement EscalationPolicy repository
- Implement EscalationState repository
- Implement OnCallSchedule repository
- Implement Inbox repository
- Implement Incident repository
- Implement Audit repository
- Write integration tests for all
T3.8: Add Configuration Switch
Status: TODO Estimate: 0.5 days
T3.9: Run Verification Tests
Status: TODO Estimate: 1 day
Subtasks:
- Test notification delivery flow
- Test escalation handling
- Test digest aggregation
- Generate verification report
T3.10: Switch to PostgreSQL-Only
Status: DONE Estimate: 0.5 days
Notes:
StellaOps.Notify.WebServicenow registersAddNotifyPostgresStorageexclusively; Mongo/InMemory paths removed.- Integration suites (delivery/escalation/digest) passing on Postgres (see
out/test-results/notify-postgres/TestResults_Postgres.trx).
Exit Criteria
- All 15 repository interfaces implemented
- All integration tests pass
- Notification delivery working end-to-end
- Notify running on PostgreSQL in production
Phase Version: 1.0.0 Last Updated: 2025-12-02