Files
meldestelle/docs/03_Development/Backend/Multi_Tenant_Kurz.md
T

1.4 KiB
Raw Blame History

type, status, owner, last_update
type status owner last_update
Reference ACTIVE Lead Architect 2026-04-03

Tenant-Isolation & MultiTenant (Kurzfassung)

Vollständige Entscheidung: ADR0021: TenantResolutionStrategie (SchemaperTenant).

Kernaussagen

  • Eine Veranstaltung = ein Tenant = ein Datenbankschema (SchemaperTenant).
  • Requests tragen X-Event-Id; Backend validiert gegen control.tenants und schaltet das Schema je Request.
  • Flyway führt Migrationen je TenantSchema aus (eigene flyway_schema_history).
  • Stammdaten (Reiter/Pferde/Vereine/Funktionäre) sind global und nicht tenantspezifisch; Entries/Kassa sind tenantlokal.

Umsetzung (Kurz)

  • WebLayer: TenantWebFilter (Spring) bzw. Plugin (Ktor) liest X-Event-Id und legt TenantContext ab.
  • Persistence: SCHEMAMultitenancy (SET search_path) oder HibernateMultiTenantConnectionProvider.
  • Registry: control.tenants(event_id, schema_name, status, db_url?, version, created_at).

Betroffene Bereiche

  • Datenmodell tenantlokal: veranstaltungen, turniere, bewerbe, abteilungen, teilnehmer_konten, turnier_kassa (siehe Datenbankschema).
  • Services: Der EntriesService arbeitet mandantenfähig; andere Services bleiben SingleTenant/global (vgl. BackendRoadmap).