Overview
Alerts are stored in SQLite but never delivered. NGOs never receive notifications. We need a lightweight background worker to attempt delivery.
Scope
Acceptance Criteria
- When an alert is created, the worker attempts delivery within 60 seconds
- Failed deliveries are retried up to 3 times
- Delivery status is queryable via API
- Worker runs as FastAPI
BackgroundTasks (no external queue needed for MVP)
Resources
Difficulty: Intermediate
Labels: help wanted, backend, api
Overview
Alerts are stored in SQLite but never delivered. NGOs never receive notifications. We need a lightweight background worker to attempt delivery.
Scope
alertstable.env)organization.webhook_urldelivered,failed,pending)GET /api/organizations/{org_id}/alerts/pendingfor monitoringAcceptance Criteria
BackgroundTasks(no external queue needed for MVP)Resources
src/climatevision/api/main.py— alert creation endpointssrc/climatevision/db.py— SQLite schemateam_docs/PM_ROLE_UPDATES_FOR_GAPS.md— gap docs: add Francis Umo role documentation #5 detailsDifficulty: Intermediate
Labels:
help wanted,backend,api