Une application SaaS éducative nécessite une séparation stricte des données entre établissements scolaires. L'architecture multi-tenant par sous-domaine (ecole-alpha.classeo.local) permet cette isolation tout en utilisant une base de code unique. Le choix d'une résolution basée sur les sous-domaines plutôt que sur des headers ou tokens facilite le routage au niveau infrastructure (reverse proxy) et offre une UX plus naturelle où chaque école accède à "son" URL dédiée.
19 lines
703 B
YAML
19 lines
703 B
YAML
# Tenants de développement
|
|
# Ces tenants sont automatiquement chargés en environnement dev
|
|
|
|
parameters:
|
|
tenant.dev_configs:
|
|
- tenantId: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'
|
|
subdomain: 'ecole-alpha'
|
|
databaseUrl: '%env(DATABASE_URL)%'
|
|
- tenantId: 'b2c3d4e5-f6a7-8901-bcde-f12345678901'
|
|
subdomain: 'ecole-beta'
|
|
databaseUrl: '%env(DATABASE_URL)%'
|
|
|
|
services:
|
|
App\Shared\Infrastructure\Tenant\TenantRegistry:
|
|
class: App\Shared\Infrastructure\Tenant\InMemoryTenantRegistry
|
|
factory: ['@App\Shared\Infrastructure\Tenant\TenantRegistryFactory', 'createFromConfig']
|
|
arguments:
|
|
$configs: '%tenant.dev_configs%'
|