How maif/izanami works
Izanami is a centralized feature-flag platform. Clients request evaluated flags through the API; authenticated administrators manage tenants, projects, contexts, tags, users, rights, imports, and webhooks through the frontend. Controllers dispatch to domain services, which apply feature and authorization rules and use PostgreSQL-backed datastores. Feature changes and usage generate events consumed by the webhook worker for external notifications. Some controller/service call sites were not sampled, so those relationships reflect explicit module responsibilities and documented capabilities.
Components 21
API Runtime
- Feature API
app/fr/maif/izanami/web/FeatureController.scala - Auth Actions
app/fr/maif/izanami/web/AuthAction.scala - Login API
app/fr/maif/izanami/web/LoginController.scala
Feature Domain
- Feature Service
app/fr/maif/izanami/services/FeatureService.scala - Usage Service
app/fr/maif/izanami/services/FeatureUsageService.scala - Feature Contexts
app/fr/maif/izanami/web/FeatureContextController.scala
Governance
- Rights Service
app/fr/maif/izanami/services/RightService.scala
Integrations UI
- Admin Frontend
izanami-frontend/src/App.tsx - Import API
app/fr/maif/izanami/web/ImportController.scala - Webhook Worker
app/fr/maif/izanami/jobs/WebhookListener.scala - Webhook API
app/fr/maif/izanami/web/WebhookController.scala
Persistence
- Feature Store
app/fr/maif/izanami/datastores/FeaturesDatastore.scala - Context Store
app/fr/maif/izanami/datastores/FeatureContextDatastore.scala - Event Service
app/fr/maif/izanami/services/EventService.scala - Webhook Store
app/fr/maif/izanami/datastores/WebhooksDatastore.scala - PostgreSQL
app/fr/maif/izanami/env/postgresql.scala - User Store
app/fr/maif/izanami/datastores/UsersDatastore.scala
Other components
- Feature Client
- Administrator
- OAuth Provider
- Webhook Endpoint
Connections 28
- Feature Client → Feature API: requests flags
- Feature API → Auth Actions: checks access
- Feature API → Feature Service: evaluates flags
- Feature Service → Feature Store: reads features
- Feature Service → Context Store: reads contexts
- Feature Service → Usage Service: records usage
- Feature API → Feature Client: returns results
- Usage Service → Event Service: publishes usage
- Feature Service → Event Service: publishes changes
- Administrator → Admin Frontend: manages flags
- Admin Frontend → Feature API: calls API
- Admin Frontend → Login API: authenticates
- Admin Frontend → Webhook API: manages hooks
- Administrator → Import API: uploads exports
- Import API → PostgreSQL: imports transactionally
- Login API → OAuth Provider: exchanges tokens
- Login API → User Store: creates sessions
- Auth Actions → User Store: validates credentials
- Administrator → Rights Service: changes rights
- Rights Service → User Store: updates rights
- Webhook API → Webhook Store: stores hooks
- Event Service → Webhook Worker: streams events
- Webhook Worker → Webhook Store: tracks deliveries
- Webhook Worker → Webhook Endpoint: posts events
- Feature Store → PostgreSQL: reads writes
- Context Store → PostgreSQL: reads writes
- Webhook Store → PostgreSQL: reads writes
- User Store → PostgreSQL: reads writes