feat: Infrastructure multi-tenant avec isolation par sous-domaine

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.
This commit is contained in:
2026-01-30 23:34:10 +01:00
parent 6da5996340
commit 1fd256346a
71 changed files with 14390 additions and 37 deletions

View File

@@ -0,0 +1,18 @@
# Tenants pour les tests
# Utilise les mêmes tenants que dev pour les tests d'intégration
parameters:
tenant.test_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.test_configs%'