DMARC report analyzer (multi-tenant) - V1 aggregate reports #12
Peter Wickenberg opened 6 months ago

Implementera ny stor feature enligt planen i .sisyphus/plans/dmarc-report-analyzer-multi-tenant.md.

Scope V1:

  • Multi-tenant från start
  • Alias/token-baserad ingest-identitet
  • Mailcow alias-provisionering
  • PostgreSQL lagring + dedupe
  • Magic-link auth + sessions
  • Aggregate (RUA) nu, forensic (RUF) i fas 2
  • Abuse guardrails (rate limits, parser limits, quarantine, retention)

Retention:

  • 30 dagar rådata
  • 400 dagar aggregerad data
  • Peter Wickenberg commented 6 months ago

    Startar implementation på ny feature-branch enligt planen.

  • Peter Wickenberg changed state to 'In Progress' 6 months ago
    Previous Value Current Value
    Open
    In Progress
  • Peter Wickenberg commented 6 months ago

    Första leverans på feature-branch är klar.

    Commit: 5461b12 Branch: feature/dmarc-report-analyzer-v1

    Ändringar:

    • Lade in feature-flag scaffold i backend (DMARC_ANALYZER_ENABLED, DMARC_INGEST_ENABLED, MAILCOW_PROVISIONING_ENABLED)
    • Lade till central settings-modul (backend/app/settings.py)
    • Exponerade flaggstatus i /health för enkel verifiering
    • Uppdaterade .env.example, docker-compose.yml.example, README.md med nya env-nycklar

    Verifiering:

    • docker compose build
    • Smoke-test befintlig endpoint GET /api/check?domain=microsoft.com ✅ (oförändrat beteende)

    Nästa steg enligt plan: DB-schema + migrationer (T2).

  • Peter Wickenberg commented 6 months ago

    T2 scaffold levererat på feature-branch.

    Commit: e55ac6e Branch: feature/dmarc-report-analyzer-v1

    Ändringar:

    • Lade till PostgreSQL-migrationsscaffold i backend:
      • backend/app/db/sql/001_init.up.sql
      • backend/app/db/sql/001_init.down.sql
      • backend/app/db/migrate.py + python -m app.db [up|down]
    • Lade till psycopg[binary] i backend dependencies
    • Utökade .env.example med Postgres-variabler (POSTGRES_*, DATABASE_URL)
    • Utökade docker-compose.yml.example med postgres service + DATABASE_URL wiring till backend
    • README uppdaterad med kort migration-notis för feature branch

    Verifiering:

    • docker compose build
    • Legacy smoke-test (/api/check?domain=microsoft.com) ✅
    • Migration test (up -> down -> up) mot docker-compose.yml.example + Postgres ✅

    Nästa steg enligt plan: T3 (Mailcow alias provisioning service).

  • Peter Wickenberg commented 6 months ago

    T3 scaffold levererat på feature-branch.

    Commit: 7d84d68 Branch: feature/dmarc-report-analyzer-v1

    Ändringar:

    • Ny Mailcow-integration scaffold:
      • backend/app/mailcow/client.py (GET aliases, create alias, delete alias)
      • backend/app/mailcow/service.py (deterministisk alias-localpart och idempotent ensure_alias)
      • export via backend/app/mailcow/__init__.py
    • Utökade settings med MAILCOW_TARGET_MAILBOX och MAILCOW_ALIAS_DOMAIN
    • Uppdaterade .env.example, docker-compose.yml.example, README.md med Mailcow alias-routing variabler

    Verifiering:

    • docker compose build
    • Legacy smoke-test GET /api/check?domain=microsoft.com

    Nästa steg enligt plan: T4 (magic-link auth + session scaffold).

  • Peter Wickenberg commented 6 months ago

    T4 scaffold levererat på feature-branch.

    Commit: 33acd4b Branch: feature/dmarc-report-analyzer-v1

    Ändringar:

    • Ny auth-modul scaffold:
      • backend/app/auth/security.py (token/ua hash helpers)
      • backend/app/auth/repository.py (token/session DB operationer)
      • backend/app/auth/mailer.py (SMTP-magic-link delivery)
      • backend/app/auth/service.py (request/consume/logout-flöde)
    • Nya API-endpoints i backend/app/main.py (feature-flag gated):
      • POST /api/auth/magic-link/request
      • POST /api/auth/magic-link/consume
      • GET /api/auth/me
      • POST /api/auth/logout
    • Utökad settings/env wiring för SMTP, cookie, TTL, app base URL

    Verifiering:

    • docker compose build
    • Legacy smoke-test GET /api/check?domain=microsoft.com ✅ (oförändrat)

    Nästa steg enligt plan: T5 (ingest + parser + quarantine scaffold).

  • OneDev commented 6 months ago

    State changed as pull request #4 is open

  • OneDev changed state to 'In Review' 6 months ago
    Previous Value Current Value
    In Progress
    In Review
1/1
Type
New Feature
Priority
Major
Assignees
Not assigned
Issue Votes (0)
Watchers (1)
Reference
m365-dns-checkup#12
Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover