diff --git a/ROADMAP.md b/ROADMAP.md index 1bcec00..85c7d4a 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -72,3 +72,32 @@ Goal: add AI-powered analysis and external tool integration. ## Completed in this PR All Phase 5 items marked done were implemented in v1.3.0–v1.5.0. Redis caching + async queue implemented in v1.6.0, switched to Valkey. +UI polish (topbar, footer, clickable pills) in v1.6.1–v1.6.4. + +--- + +## Phase 6: Multi-Tenancy (Premium) ⏸️ +Goal: allow MSPs to manage multiple client tenants from a single deployment. + +Status: **Planned — not started**. Architecture designed, pending validation of core features (SIEM export, alerting) in production first. + +### Architecture +- Row-level isolation: `tenant_id` field on every MongoDB document +- Each tenant has their own Microsoft Entra tenant + app registration credentials +- Auth: user's JWT `tid` claim maps to tenant config automatically +- Super-admin role for MSP staff to access all tenants + +### Implementation phases +- **Phase 6.1** (2–3 days): Tenant model & registry, tenant-aware data layer, per-tenant Graph API auth +- **Phase 6.2** (1 day): Tenant-scoped API routes, tenant-specific config endpoints +- **Phase 6.3** (2 days): Frontend tenant switcher, tenant name display, admin page +- **Phase 6.4** (1 day): License gating — signed JWT `LICENSE_KEY` gates multi-tenant mode + +### Licensing model +- Single-tenant: remains MIT/free +- Multi-tenant: premium feature requiring a signed license key +- License key is a JWT with claims: `plan`, `max_tenants`, `exp`, `features` +- Offline license generation tool included + +### Effort estimate +~7–9 days total. Deferred until SIEM export and alerting are battle-tested.