gh_UserManager/docs/roadmap.md
bermooda-company 54d5891edf user
2026-08-23 23:59:14 +03:30

165 lines
6.3 KiB
Markdown

# Roadmap
## Vision
Identity Platform is the **central identity infrastructure** for the holding. Every product (Bermooda, Hamsoo, future) connects to it — no product owns identity, the platform does.
---
## Current (v1.0 - MVP)
### Completed
- [x] Custom User model (UUID, email/phone, no username)
- [x] JWT authentication (RS256, access + refresh + ID token)
- [x] Login, refresh, logout endpoints
- [x] Organization CRUD + slug auto-generation
- [x] Membership model (roles: owner/admin/member, statuses)
- [x] OAuth Application registry (client_id/secret, redirect URIs, scopes)
- [x] Session tracking (device, IP, UA, type, revocation)
- [x] SecurityEvent audit log (login, logout, refresh, revoke, MFA, brute-force)
- [x] Rate limiting (per-user, per-IP, endpoint-specific)
- [x] OIDC Discovery (`.well-known/openid-configuration`, JWKS)
- [x] drf-spectacular OpenAPI schema + Swagger UI
- [x] Django admin for all models
- [x] 21 backend tests passing
- [x] Next.js 14 landing page (10 sections, RTL, bilingual fa/en)
- [x] Docker Compose (postgres, redis, api, web)
- [x] Brand-configurable via env vars
- [x] Dark enterprise theme (Adobe-inspired)
---
## v1.1 — Hardening & DX (Q1 2025)
### Backend
- [ ] **Token blacklist** — Redis-backed for instant revocation checking
- [ ] **Key rotation** — Automated RS256 key rotation with overlap window
- [ ] **Device trust** — Remember device, skip MFA on trusted
- [ ] **Account lockout** — Configurable threshold, admin unlock, email notify
- [ ] **Password breach check** — Integrate HaveIBeenPwned on set/change
- [ ] **Email verification flow** — Send code, verify, mark `email_verified`
- [ ] **Phone verification flow** — SMS OTP (provider-agnostic)
- [ ] **Admin API tokens** — Long-lived service tokens with scopes
### Frontend
- [ ] **Admin dashboard** — React admin panel (users, orgs, apps, sessions, events)
- [ ] **Login page** — Branded, MFA-ready, remembers device
- [ ] **Password reset flow** — Request → email → set new
- [ ] **Email/phone verification UI**
- [ ] **Session management UI** — List, revoke, current indicator
- [ ] **Developer portal** — App registration, credentials, logs
### DevOps
- [ ] **CI/CD** — GitHub Actions (test, lint, typecheck, build, deploy)
- [ ] **Staging environment** — Auto-deploy on merge to `main`
- [ ] **Structured logging** — JSON logs, correlation IDs
- [ ] **Metrics** — Prometheus `/metrics` endpoint
- [ ] **Health checks**`/health/` with DB/Redis connectivity
---
## v1.2 — MFA & Compliance (Q2 2025)
### MFA
- [ ] **TOTP** — Google Authenticator, Authy, 1Password
- [ ] **Backup codes** — 10 single-use codes on enrollment
- [ ] **WebAuthn / Passkeys** — Platform authenticator + cross-device
- [ ] **MFA policies** — Per-org: required/optional, allowed methods
- [ ] **Step-up auth** — Re-auth for sensitive actions (delete org, rotate secret)
### Compliance
- [ ] **GDPR export** — User data download (JSON)
- [ ] **GDPR deletion** — Anonymize on request (retain audit log)
- [ ] **SOC 2 readiness** — Access reviews, evidence collection
- [ ] **Data processing addendum** — Template for customers
---
## v1.3 — Federation & Enterprise (Q3 2025)
### External Identity Providers
- [ ] **SAML 2.0** — SP-initiated, IdP-initiated, metadata exchange
- [ ] **OIDC Federation** — Connect to Google, Microsoft, Okta, Auth0
- [ ] **SCIM 2.0** — Provision/deprovision users from HR systems
- [ ] **Just-in-Time (JIT) Provisioning** — Auto-create on first SSO login
### Enterprise Features
- [ ] **Custom domains**`auth.customer.com` → platform
- [ ] **White-labeling** — Logo, colors, favicon, email templates per org
- [ ] **Audit log streaming** — Webhook / Kafka / Splunk / Datadog
- [ ] **IP allowlists** — Per-application or per-org
- [ ] **Session policies** — Idle timeout, max duration, concurrent limit
---
## v2.0 — Platform Maturity (Q4 2025)
### Architecture
- [ ] **Multi-region deployment** — Active-active with session sync
- [ ] **Event sourcing** — Identity events as source of truth
- [ ] **GraphQL API** — Flexible queries for complex UIs
- [ ] **Webhooks v2** — Retry, signing, dead-letter, replay
### Developer Experience
- [ ] **SDKs** — Python, TypeScript, Go, Rust
- [ ] **Terraform provider** — Manage orgs, apps, users as code
- [ ] **CLI**`idp` command for admin tasks
- [ ] **Local dev container** — One-command full stack
### Product Integrations
- [ ] **Bermooda** — Full SSO, org sync, role mapping
- [ ] **Hamsoo** — Full SSO, profile linkage
- [ ] **Template for new products** — Cookiecutter + docs
---
## Backlog / Ideas
| Area | Idea |
|------|------|
| **Security** | Risk-based auth (impossible travel, new device) |
| **Security** | Passwordless login (magic link, passkey-only) |
| **Security** | Hardware key enforcement (YubiKey) |
| **Org** | Nested organizations (parent/child) |
| **Org** | Custom roles & permissions (RBAC builder) |
| **API** | API keys (non-OAuth, for server-to-server) |
| **API** | GraphQL subscriptions (real-time events) |
| **DX** | Storybook for UI components |
| **DX** | Visual regression tests (Chromatic) |
| **Ops** | Chaos engineering (Litmus) |
| **Ops** | Disaster recovery drill (quarterly) |
| **Compliance** | HIPAA BAA template |
| **Compliance** | ISO 27001 controls mapping |
---
## Release Cadence
| Cycle | Duration | Contents |
|-------|----------|----------|
| **Patch** | 2 weeks | Bug fixes, security patches |
| **Minor** | 8 weeks | New features, non-breaking |
| **Major** | 6 months | Breaking changes, architecture shifts |
**Versioning:** SemVer. API version in URL (`/api/v1/`).
---
## Decision Log
| Date | Decision | Rationale |
|------|----------|-----------|
| 2024-01 | RS256 over HS256 | Products verify without private key |
| 2024-01 | UUID PK for User | Immutable, unguessable, distributed-friendly |
| 2024-01 | Modular monolith | Single deploy, clear boundaries, later extract |
| 2024-01 | SQLite for local dev | Zero-config, fast, mirrors Postgres behavior |
| 2024-01 | RTL-first, Persian default | Target market primary language |
| 2024-01 | Env-driven branding | No hardcoded "Identity Platform" |
| 2024-01 | No "military-grade" claims | Honest security marketing |
---
## Contributing
1. Fork → feature branch → PR.