Sicherheitsprinzipien
betool ist für regulierte Umgebungen konzipiert. Sicherheit ist keine Schicht, die nachträglich aufgesetzt wird: Sie ist die Invariante, die jede Codezeile, jede Migration und jedes Modul prägt.
1. Strikte Mandantentrennung
Jede Organisation besitzt ihre eigenen Daten, Pipelines, Geheimnisse, Dateien und LLM-Schlüssel. Die Isolation wird durchgesetzt:
- Auf Datenbankebene — jede Geschäftstabelle trägt eine indizierte Spalte
org_id, und serverseitige Abfragen filtern immer nach der Sitzungsorganisation. - Auf Dateisystemebene — jede Organisation hat ihr eigenes Stammverzeichnis unter
<data_root>/orgs/<org_id>/. Keine gemeinsam genutzten Pfade. - Auf Cache-Ebene — Caches pro Organisation; kein gemeinsamer Eintrag ohne ein explizites Flag
is_shared = TRUE. - Auf Geheimnisebene — jede Organisation hat ihren eigenen Tresor, ihre eigenen API-Schlüssel, ihre eigenen Tokens. Kein globaler Fallback.
2. Verpflichtende Auditierung mandantenübergreifender Zugriffe
Bestimmte Rollen (typischerweise Plattformbetreiber-Konten auf Anbieterseite) könnten aus Support-Gründen auf die Inhalte einer anderen Organisation zugreifen müssen. Ein solcher Zugriff ist:
- An ein Opt-in der Zielorganisation gebunden — jederzeit über das Administrationspanel widerrufbar.
- Bei jedem Zugriff protokolliert — dedizierte Audit-Tabelle, auf die Zielorganisation begrenzt, für Kunden über eine Route
GET /api/admin/me/*-readseinsehbar. - Verweigert, wenn der Audit-Schreibvorgang fehlschlägt — kein Lesevorgang ohne Nachweis.
Siehe DSGVO-Audit.
3. Begründete Verweigerung bei destruktiven Operationen
Jede Operation, die den Inhalt einer anderen Organisation zerstört oder ersetzt (REPLACE-IN-PLACE von Kindelementen, DELETE), wird verweigert, wenn die Zielorganisation das Lese-Opt-in nicht aktiviert hat. Begründung: Ohne Sichtbarkeit würde der Operator eine Nutzlast vorschlagen, die bestehende Inhalte blind überschreiben könnte.
4. Souveränität über das LLM-Modell
- Natives BYOK — Ihre Schlüssel für OpenAI, Anthropic und Mistral werden von Ihrer Organisation verwaltet. Kein organisationsübergreifendes Durchsickern.
- Private Modelle im Enterprise-Plan — Ollama, vLLM, gehostet auf Ihrer eigenen Hardware oder in Ihrer Private Cloud. Prompts und Completions verlassen niemals Ihren Perimeter.
- Kein stiller gemeinsamer Pool — verwendet eine Organisation ein gemeinsames Modell, ist dies eine explizite Entscheidung mit Zugriffskontrolle.
Ingenieurhaltung
Unser Standard ist Präzision: maximale Robustheit, vollständige Beobachtbarkeit, Determinismus, Anti-Halluzination, Anti-Regression, Tests an jeder Ecke.
Konkret bedeutet das bei jedem Kompromiss in Architektur / Code / Prompt:
| Wahl | Erwartete Wahl | Warum |
|---|---|---|
| Latenz × 2 vs. abgekürztes Reasoning | × 2 | Verlorene Präzision wird durch das Vertrauen der Nutzer zurückgezahlt |
| Feingranulare Beobachtbarkeit vs. nur wesentliche Logs | Feingranular | Ohne Sichtbarkeit ist Debugging blind |
| Abkürzung, die ein Verhalten verschlechtert | Verweigerung | Verhaltensrisiko wird in Kundenvorfällen gemessen |
Mantra: „Wenn jemand einen Fehler findet, bedeutet das, dass wir nicht genug Schutzvorrichtungen hatten, nicht zu viele.“