Backend-Konfiguration
Das skai-Backend wird über HOCON-Konfigurationsdateien (Human-Optimized Config Object Notation) gesteuert. Alle Dateien liegen unter src/main/resources/ im Backend-Projekt. Nahezu jede Einstellung lässt sich durch eine Umgebungsvariable überschreiben; die Konfigurationsdatei enthält jeweils den Standardwert für die lokale Entwicklung.
Konfigurationsstruktur
Die Hauptdatei application.conf bindet alle Teilkonfigurationen per include ein:
Datei | Inhalt |
|---|---|
| Einstiegspunkt: Ktor-Server, Include aller Module, Provider-Block |
| Allgemeine Flags, SMTP, Stripe, Lizenz, CORS, Feature-Flags |
| Datenbankverbindungen (MongoDB, S3, Qdrant, MySQL, PostgreSQL) |
| OAuth 2.0-Clients (Login, Mail, Dateiquellen, Entra, MCP) |
| Standard-Konfiguration der Operator-Organisation |
| Service-Parameter (Kontextlimits, VAD, Embedding-Schwellwerte) |
| Zuordnung von Aufgabentypen zu KI-Modellen |
| Mehrstufige Modell-Pipelines (Audio, Deep Research) |
| Detailkonfiguration je KI-Anbieter (25+ Dateien) |
Ktor-Server
Schlüssel | Umgebungsvariable | Standard | Beschreibung |
|---|---|---|---|
| – |
| HTTP-Port des Backends |
|
|
| Öffentlich erreichbare Backend-URL (wird in E-Mails und OAuth-Redirects verwendet) |
| – |
| Maximale Dateigröße für allgemeine Uploads |
| – |
| Maximale Dateigröße für Chatbot-Uploads |
| – |
| Puffergröße für reaktive Streams |
Datenbankverbindungen
MongoDB
MongoDB ist der primäre Datenspeicher für Benutzer, Chats, Spaces, Quellen, Chatbots und Experten.
Schlüssel | Umgebungsvariable | Standard |
|---|---|---|
|
|
|
S3 / MinIO
S3-kompatibler Objektspeicher für Datei- und Blob-Daten.
Schlüssel | Umgebungsvariable | Standard |
|---|---|---|
|
|
|
|
|
|
|
|
|
| – |
|
| – |
|
Qdrant (Vektordatenbank)
Qdrant speichert Embedding-Vektoren für die RAG-Suche in Wissensquellen.
Schlüssel | Umgebungsvariable | Standard | Beschreibung |
|---|---|---|---|
|
|
| Hostname der Qdrant-Instanz |
|
|
| gRPC-Port |
|
|
| TLS-Verschlüsselung aktivieren |
|
|
| API-Schlüssel |
| – |
| Zeitlimit für Anfragen in Millisekunden |
MySQL / MariaDB
Wird ausschließlich vom Buchhaltungsmodul (Rechnungen, Bankkonten) verwendet.
Schlüssel | Umgebungsvariable | Standard |
|---|---|---|
|
|
|
|
|
|
|
|
|
PostgreSQL
Wird für Credits und Tagging verwendet.
Schlüssel | Umgebungsvariable | Standard |
|---|---|---|
|
|
|
| – |
|
| – |
|
|
|
|
| – |
|
| – |
|
|
|
|
Authentifizierung (OAuth 2.0)
Für jeden OAuth-Client müssen clientId und clientSecret gesetzt werden. Die Standardwerte sind Entwicklungs-Credentials und dürfen in Produktionsumgebungen nicht verwendet werden.
Anmeldung
Client | Umgebungsvariable (ID) | Umgebungsvariable (Secret) | Verwendung |
|---|---|---|---|
Microsoft |
|
| Azure AD-Login |
|
| Google-Login |
E-Mail-Integration
Client | Umgebungsvariable (ID) | Umgebungsvariable (Secret) | Verwendung |
|---|---|---|---|
Outlook |
|
| Outlook-Postfach als Wissensquelle |
Datei-Integrationen
Client | Umgebungsvariable (ID) | Umgebungsvariable (Secret) | Verwendung |
|---|---|---|---|
OneDrive |
|
| OneDrive als Wissensquelle |
SharePoint |
|
| SharePoint als Wissensquelle |
Azure Blob Storage |
|
| Azure Blob Storage als Wissensquelle |
Google Drive |
|
| Google Drive als Wissensquelle |
Benutzerverwaltung
Client | Umgebungsvariable (ID) | Umgebungsvariable (Secret) | Verwendung |
|---|---|---|---|
Microsoft Entra |
|
| Entra ID-Synchronisation |
MCP (Model Context Protocol)
Schlüssel | Umgebungsvariable | Beschreibung |
|---|---|---|
|
| Überschreibt die OAuth-Client-ID für lokale Entwicklung |
|
| Anzeigename des MCP-OAuth-Clients |
E-Mail (SMTP)
Schlüssel | Umgebungsvariable | Standard | Beschreibung |
|---|---|---|---|
| – |
| SMTP-Server-Adresse |
| – |
| SMTP-Port |
| – | SMTP-Benutzername | |
| – | (gesetzt) | SMTP-Passwort |
| – | Absenderadresse | |
|
| Empfängeradresse für Support-Anfragen |
Lizenz
Die Lizenz wird als JWT übergeben. Beide Werte sind Pflichtfelder in Produktionsumgebungen.
Schlüssel | Umgebungsvariable | Beschreibung |
|---|---|---|
|
| JWT-Lizenzschlüssel |
|
| Kunden-ID aus dem Lizenzschlüssel |
| Programmargument | Verschlüsselungsschlüssel für gespeicherte Zugangsdaten (mindestens 20 Zeichen, je länger desto besser) |
Metriken
Die Metriken-Endpunkte sind mit HTTP Basic Auth geschützt.
Schlüssel | Umgebungsvariable | Standard |
|---|---|---|
|
|
|
|
|
|
Allgemeine Einstellungen
Schlüssel | Umgebungsvariable | Standard | Beschreibung |
|---|---|---|---|
|
|
| Betriebsmodus des Systems |
|
|
| On-Premise-Modus aktivieren |
|
| – | Standard-Subdomain für die Frontend-URL |
|
|
| Kostenansicht im Usage-Log anzeigen |
|
|
| Lizenzinformationen in der UI ausblenden |
| – |
| Basis-Domain für CORS |
|
|
| Erlaubte Frontend-Hosts (kommagetrennte Liste) |
Registrierung
Gilt nur wenn Self-Service-Registrierung aktiv ist (config.onPremise = false).
Schlüssel | Umgebungsvariable | Standard | Beschreibung |
|---|---|---|---|
|
|
| Erlaubte Subdomains für die Registrierung |
|
|
| Dauer des kostenlosen Tests in Tagen |
|
|
| Link zu den AGB |
|
|
| Link zur Datenschutzerklärung |
Feature-Flags
Feature-Flags aktivieren experimentelle oder optionale Funktionen.
Schlüssel | Umgebungsvariable | Standard | Beschreibung |
|---|---|---|---|
|
|
| QA-Agenten für Slot-Game-Projekte |
|
|
| Rechnungsdownload via Agent |
|
|
| Umsatzprognose via Agent |
|
|
| TOM4-Synchronisation aktivieren |
Service-Konfiguration
Kontextlimits
Schlüssel | Umgebungsvariable | Standard | Beschreibung |
|---|---|---|---|
|
|
| Maximale Anzahl an Nachrichten im Chat-Kontext |
|
|
| Maximale Anzahl an Nachrichten im Chatbot-Kontext |
|
|
| Maximale Anzahl an Nachrichten im Telefonbot-Kontext |
Telefonbot: Voice Activity Detection (VAD)
Schlüssel | Standard | Beschreibung |
|---|---|---|
|
| Empfindlichkeitsschwelle für Spracherkennung |
|
| Schwelle, ab der ein laufender Bot-Turn unterbrochen wird |
|
| Stille-Dauer in ms, nach der eine Äußerung als beendet gilt |
|
| Minimale Sprachdauer in ms, damit eine Äußerung verarbeitet wird |
|
| Vorlauf-Sprache in ms, die dem Transkriptions-Segment vorangestellt wird |
Embedding-Retrieval-Schwellwerte
Die Schwellwerte bestimmen, wie viele Vektorsegmente bei einer Wissenssuche zurückgegeben werden. Es gibt drei Retrieval-Qualitätsstufen (low, moderate, informative) für Segmente und Quelldokumente.
Schlüssel | Standard ( | Beschreibung |
|---|---|---|
|
| Minimaler Ähnlichkeitsscore |
|
| Maximale Anzahl zurückgegebener Segmente |
|
| Limit für Experten-Gedächtnis-Abruf |
Operator-Organisation
Beim ersten Start legt der Backend diese Organisation automatisch an. Alle Felder können über Umgebungsvariablen gesetzt werden.
Administrator-Benutzer
Schlüssel | Umgebungsvariable | Beschreibung |
|---|---|---|
|
| E-Mail / Benutzername |
|
| Passwort |
|
| Vorname |
|
| Nachname |
Organisations-Stammdaten
Schlüssel | Umgebungsvariable | Beschreibung |
|---|---|---|
|
| Stadt |
|
| Ländercode (ISO 3166-1 alpha-2, z. B. |
|
| Anschrift |
|
| Adresszusatz |
|
| Postleitzahl |
|
| Bundesland / Staat |
|
| Umsatzsteuer-ID |
|
| Rechnungs-E-Mail |
|
| Spracheinstellung (IETF BCP 47, z. B. |
|
| Zeitzone (Zone ID, z. B. |
Features und Anbieter
Schlüssel | Umgebungsvariable | Standard | Beschreibung |
|---|---|---|---|
|
|
| Kommagetrennte Liste aktivierter Features; |
|
|
| Explizit deaktivierte Features |
|
|
| Erlaubte KI-Anbieter-IDs; |
|
|
| Erlaubte Anmeldemethoden |
|
|
| Subdomain der Organisation |
Verfügbare Feature-Bezeichner (Auswahl):
Guthaben und Speicher
Schlüssel | Umgebungsvariable | Standard | Beschreibung |
|---|---|---|---|
|
|
| Aufrufe bei negativem Guthaben blockieren |
|
|
| Guthaben-Schwellwert für automatisches Aufladen |
|
|
| Aufladeintervall |
|
|
| Maximaler Speicherverbrauch in Bytes |
Externe Dienste
Zendesk
Schlüssel | Umgebungsvariable | Beschreibung |
|---|---|---|
|
| Basis-URL für Zendesk-Webhooks |
TOM4-Synchronisation
Schlüssel | Umgebungsvariable | Standard | Beschreibung |
|---|---|---|---|
|
|
| Maximale Anzahl importierter Benutzer |
|
|
| Maximale Anzahl importierter Projekte |
Python-Ausführungsservice
Schlüssel | Standard | Beschreibung |
|---|---|---|
|
| Python-Service deaktivieren |
|
| URL des Python-Microservices |
Umgebungsvariablen – Vollständige Referenz
Umgebungsvariable | Konfigurationsschlüssel | Beschreibung |
|---|---|---|
|
| Öffentliche Backend-URL |
|
| E-Mail des globalen System-Administrators |
|
| Passwort des globalen System-Administrators |
|
| JWT-Lizenzschlüssel |
|
| Kunden-ID |
|
| MongoDB-Verbindungsstring |
|
| S3/MinIO-URL |
|
| S3 Access Key |
|
| S3 Secret Key |
|
| Qdrant-Hostname |
|
| Qdrant-Port |
|
| Qdrant TLS aktivieren |
|
| Qdrant API-Schlüssel |
|
| MariaDB-Verbindungsstring |
|
| MariaDB-Benutzername |
|
| MariaDB-Passwort |
|
| PostgreSQL-Hostname |
|
| PostgreSQL Read-only-Passwort |
|
| PostgreSQL Root-Passwort |
|
| Azure AD OAuth Client ID |
|
| Azure AD OAuth Client Secret |
|
| Google OAuth Client ID |
|
| Google OAuth Client Secret |
|
| Outlook OAuth Client ID |
|
| Outlook OAuth Client Secret |
|
| OneDrive OAuth Client ID |
|
| OneDrive OAuth Client Secret |
|
| SharePoint OAuth Client ID |
|
| SharePoint OAuth Client Secret |
|
| Azure Blob OAuth Client ID |
|
| Azure Blob OAuth Client Secret |
|
| Google Drive OAuth Client ID |
|
| Google Drive OAuth Client Secret |
|
| Entra ID OAuth Client ID |
|
| Entra ID OAuth Client Secret |
|
| MCP OAuth Client-ID-Überschreibung |
|
| MCP OAuth Anzeigename |
|
| Metriken Basic-Auth-Benutzername |
|
| Metriken Basic-Auth-Passwort |
|
| Empfänger für Support-Anfragen |
|
| Kostenanzeige im Usage-Log |
|
| Lizenzanzeige ausblenden |
|
| On-Premise-Modus |
|
| Betriebsmodus |
|
| Standard-Frontend-Subdomain |
|
| Erlaubte Frontend-Hosts |
|
| Erlaubte Registrierungs-Subdomains |
|
| Testphase in Tagen |
|
| AGB-Link |
|
| Datenschutz-Link |
|
| Feature-Flag |
|
| Feature-Flag |
|
| Feature-Flag |
|
| Feature-Flag |
|
| Chat-Kontextlimit |
|
| Chatbot-Kontextlimit |
|
| Telefonbot-Kontextlimit |
|
| Org-Admin-Benutzername |
|
| Org-Admin-Passwort |
|
| Org-Admin-Vorname |
|
| Org-Admin-Nachname |
|
| Organisations-Stadt |
|
| Ländercode (ISO 3166-1 alpha-2) |
|
| Anschrift |
|
| Adresszusatz |
|
| Postleitzahl |
|
| Bundesland |
|
| Umsatzsteuer-ID |
|
| Rechnungs-E-Mail |
|
| Spracheinstellung (IETF BCP 47) |
|
| Zeitzone (Zone ID) |
|
| Aktivierte Features |
|
| Deaktivierte Features |
|
| Erlaubte KI-Anbieter |
|
| Anmeldemethoden |
|
| Organisations-Subdomain |
|
| Guthaben-Validierung |
|
| Auflade-Schwellwert |
|
| Auflade-Intervall |
|
| Speicherlimit in Bytes |
|
| Zendesk-Webhook-Basis-URL |
|
| TOM4 Benutzer-Importlimit |
|
| TOM4 Projekt-Importlimit |