Files
git.stella-ops.org/docs/db/tasks/PHASE_3_NOTIFY.md
StellaOps Bot 175b750e29 Implement InMemory Transport Layer for StellaOps Router
- Added InMemoryTransportOptions class for configuration settings including timeouts and latency.
- Developed InMemoryTransportServer class to handle connections, frame processing, and event management.
- Created ServiceCollectionExtensions for easy registration of InMemory transport services.
- Established project structure and dependencies for InMemory transport library.
- Implemented comprehensive unit tests for endpoint discovery, connection management, request/response flow, and streaming capabilities.
- Ensured proper handling of cancellation, heartbeat, and hello frames within the transport layer.
2025-12-05 01:00:10 +02:00

4.0 KiB

Phase 3: Notify Module Conversion

Sprint: 4 Duration: 1 sprint Status: DONE (2025-12-02) Dependencies: Phase 0 (Foundations)


Objectives

  1. Create StellaOps.Notify.Storage.Postgres project
  2. Implement Notify schema in PostgreSQL
  3. Implement 15 repository interfaces
  4. Handle delivery tracking and escalation state
  5. 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.channels
  • notify.rules
  • notify.templates
  • notify.deliveries
  • notify.digests
  • notify.quiet_hours
  • notify.maintenance_windows
  • notify.escalation_policies
  • notify.escalation_states
  • notify.on_call_schedules
  • notify.inbox
  • notify.incidents
  • notify.audit

Task Breakdown

T3.1: Create Notify.Storage.Postgres Project

Status: DONE Estimate: 0.5 days

Subtasks:

  • Create project structure
  • Add NuGet references
  • Create NotifyDataSource class
  • Create ServiceCollectionExtensions.cs

T3.2: Implement Schema Migrations

Status: DONE Estimate: 1 day

Subtasks:

  • Create schema migration
  • Include all tables and indexes
  • Test migration idempotency

T3.3: Implement Channel Repository

Status: DONE Estimate: 0.5 days

Subtasks:

  • Implement CRUD operations
  • Handle channel types (email, slack, teams, etc.)
  • Write integration tests

T3.4: Implement Rule Repository

Status: DONE Estimate: 0.5 days

Subtasks:

  • Implement CRUD operations
  • Handle filter JSONB
  • Write integration tests

T3.5: Implement Template Repository

Status: DONE Estimate: 0.5 days

Subtasks:

  • Implement CRUD operations
  • Handle localization
  • Write integration tests

T3.6: Implement Delivery Repository

Status: DONE Estimate: 1 day

Subtasks:

  • Implement CRUD operations
  • Handle status transitions
  • Implement retry logic
  • Write integration tests

T3.7: Implement Remaining Repositories

Status: DONE 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: DONE Estimate: 0.5 days


T3.9: Run Verification Tests

Status: DONE 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.WebService now registers AddNotifyPostgresStorage exclusively; 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

Execution Log

Date (UTC) Update Owner
2025-12-02 Cutover to PostgreSQL-only; Mongo/InMemory paths removed. Notify
2025-12-04 Synced task statuses; linked verification report (docs/db/reports/notify-verification-2025-12-02.md). PM

Phase Version: 1.0.0 Last Updated: 2025-12-02