165 lines
6.3 KiB
Markdown
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.
|