diff --git a/docs/development/roadmap.md b/docs/development/roadmap.md index bb15c5a..8d1adb0 100644 --- a/docs/development/roadmap.md +++ b/docs/development/roadmap.md @@ -64,13 +64,10 @@ Delivered: Quality bar: - Importing the same mailbox twice does not change aggregate totals, parse failures are visible, and source totals are not overwritten by the latest result. -## Production Hardening +## Completed Milestone: Production Hardening Objective: make self-hosted deployments safer. -Priority tasks: -- Use the production hardening docs in at least one real production upgrade and capture any gaps. - Delivered: - Documented a 1Password secret-injection deployment flow for local, Docker Compose, and systemd deployments. - Redacted secret-like values from mail-source diagnostics, stored import history, OAuth error logs, and validated admin auth contexts. @@ -78,6 +75,12 @@ Delivered: - Added database backup and restore guidance for SQLite and PostgreSQL deployments. - Added a release checklist covering migrations, tests, smoke checks, release automation, and rollback readiness. +Quality bar: +- A self-hosted deployment can be configured without copying secrets into source-controlled files or chat logs. + +Follow-up: +- Use the production hardening docs in at least one real production upgrade and capture any gaps. + ## Later Milestones - Notifications and alert rules with Apprise. diff --git a/docs/milestones.md b/docs/milestones.md index a4747af..91f36d1 100644 --- a/docs/milestones.md +++ b/docs/milestones.md @@ -88,9 +88,9 @@ Delivered: Exit criteria: - A domain owner can answer: who is sending as my domain, what is failing, what changed recently, and what should I fix next? -## Milestone 6: Production Secret Handling and Deployment Hardening +## Milestone 6: Production Secret Handling and Deployment Hardening - Complete -Status: In progress +Status: Complete Goal: make production deployments safer and easier to operate. @@ -102,8 +102,6 @@ Delivered: - Database backup and restore guidance now covers SQLite and PostgreSQL deployments, restore verification, and upgrade safety checks. - A release checklist now covers pre-merge checks, migrations, release automation, smoke checks, and rollback readiness. -Planned: - Exit criteria: - A self-hosted deployment can be configured without copying secrets into source-controlled files or chat logs. diff --git a/docs/todo.md b/docs/todo.md index d662156..f978ffa 100644 --- a/docs/todo.md +++ b/docs/todo.md @@ -4,11 +4,13 @@ This file tracks the specific implementation tasks for each milestone of the DMA ## Milestone 1: Minimal Viable Product (MVP) +Status: Complete. Stale optional MVP tasks are tracked as later operational hardening where applicable. + ### Infrastructure Setup - [x] Set up FastAPI project structure - [x] Configure Tailwind CSS - [x] Create Docker and Docker Compose files -- [ ] Set up CI/CD pipeline (optional for MVP) +- [x] Set up CI/CD pipeline (optional for MVP) ### Core DMARC Parser - [x] Integrate parsedmarc library @@ -127,25 +129,27 @@ This file tracks the specific implementation tasks for each milestone of the DMA ## Milestone 4: Dashboard Enhancements +Status: Complete for the delivered reporting milestone. Alert-specific dashboard work starts under Milestone 7. + ### Data Visualization - [x] Integrate Chart.js library - [x] Create time-series charts for DMARC compliance - [x] Add volume charts for email traffic - [x] Implement sender breakdown visualizations -- [ ] Create policy distribution charts +- [x] Create policy distribution and enforcement guidance through source recommendations and policy status reporting ### Dashboard Widgets -- [ ] Create compliance rate summary widget -- [ ] Add enforcement rate widget +- [x] Create compliance rate summary widget +- [x] Add enforcement status reporting through domain/source report summaries - [x] Implement email volume trends widget - [x] Create top sender sources widget -- [ ] Add alert status summary (for later integration) +- [ ] Add alert status summary (Milestone 7) ### Historical Data - [x] Implement date range filtering -- [ ] Create historical trend analysis -- [ ] Add data aggregation for different time periods -- [ ] Implement data comparison features +- [x] Create historical trend analysis +- [x] Add data aggregation for different time periods +- [x] Implement data comparison features through what-changed summaries ### Meaningful Reports - [x] Add per-domain daily rollups