From 0ef67e13a2d7032b5c8c2160fcfa73c568a6dae2 Mon Sep 17 00:00:00 2001 From: DanielS Date: Wed, 19 Aug 2026 00:04:50 +0200 Subject: [PATCH] docs(brain): update second brain with postgres multi-tenancy ADR --- .brain/adr-log.md | 17 +++++++++++++++++ .brain/index.md | 8 +++++--- .brain/postgres-multi-tenant.md | 12 ++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 .brain/postgres-multi-tenant.md diff --git a/.brain/adr-log.md b/.brain/adr-log.md index e69de29..4e77ef1 100644 --- a/.brain/adr-log.md +++ b/.brain/adr-log.md @@ -0,0 +1,17 @@ +# ADR 001: PostgreSQL 16 Hybrid Multi-Tenant Architektur + +## Status +Akzeptiert + +## Kontext +Gastro-SaaS Tischreservierung benötigt strenge Mandantentrennung bei hoher Performance. + +## Entscheidung +- Nutzung von PostgreSQL 16 Schema-basierter Multi-Tenancy. +- Master-Schema (`public` / `tenants` Tabelle) für Mandantenverwaltung. +- Eigene Schemas pro Tenant (`tenant_`) für operative Daten (`reservations`, `restaurant_tables`, `guests`). +- Spring Boot 3 `SchemaBasedMultiTenantConnectionProvider` & `CurrentTenantIdentifierResolver`. + +## Konsequenzen +- Hohe Datenisolation & einfache Backups pro Tenant. +- Migrationen laufen schemaweise über Flyway. diff --git a/.brain/index.md b/.brain/index.md index ba1c8d5..5dfb12d 100644 --- a/.brain/index.md +++ b/.brain/index.md @@ -1,5 +1,7 @@ # Second Brain Wiki -- [Supabase Schema](file:///c:/source/webshop/.brain/supabase-schema.md) -- [ADR Log](file:///c:/source/webshop/.brain/adr-log.md) -- [LicServer API Spezifikation](file:///c:/source/webshop/.brain/licserver-api.md) +- [PostgreSQL Hybrid Multi-Tenant Setup](file:///c:/source/SmartSeat/SmartSeat/.brain/postgres-multi-tenant.md) +- [ADR Log](file:///c:/source/SmartSeat/SmartSeat/.brain/adr-log.md) +- [Supabase Schema](file:///c:/source/SmartSeat/SmartSeat/.brain/supabase-schema.md) +- [LicServer API Spezifikation](file:///c:/source/SmartSeat/SmartSeat/.brain/licserver-api.md) + diff --git a/.brain/postgres-multi-tenant.md b/.brain/postgres-multi-tenant.md new file mode 100644 index 0000000..2e3793f --- /dev/null +++ b/.brain/postgres-multi-tenant.md @@ -0,0 +1,12 @@ +# PostgreSQL 16 Hybrid Multi-Tenant Setup + +## Architektur Overview +- **Docker Setup**: PostgreSQL 16 Alpine via Docker Compose. +- **Rollen-Isolation**: `app_user` (DML) & `migration_user` (DDL). +- **Master Schema**: `tenants` Tabelle in `V1__init_master_schema.sql`. +- **Tenant Schemas**: `dining_areas`, `restaurant_tables`, `guests`, `reservations`, `reservation_table_assignments`, `staff_users` in `V1__init_tenant_schema.sql`. + +## Backend Integration +- `TenantContext` (ThreadLocal Schema Resolver) +- `SchemaBasedMultiTenantConnectionProvider` (Hibernate Connection Handling) +- HikariCP Connection Pool optimiert für Postgres in `application.yml`.