Systemvoraussetzungen
TrakState läuft als ein Serverdienst neben einer PostgreSQL-Datenbank. Der Dienst bedient die Schnittstelle, die Oberfläche und die Plugin-Teile über einen einzigen Netzwerkport. Arbeitsplätze brauchen nur einen Browser.
Software
Abschnitt betitelt „Software“| Baustein | Anforderung | Anmerkung |
|---|---|---|
| Container-Laufzeit | Docker mit docker compose |
Das ausgelieferte Bauergebnis ist ein Container-Abbild. |
| Datenbank | PostgreSQL 16 | Eine Datenbank für die Anwendung, eine zweite für die Betriebsdaten des Mandanten. |
| Node.js | 24 oder neuer | Nur nötig, wenn Sie ohne Container betreiben. Das Abbild bringt Node 24 mit. |
| Python | python3 |
Nur für Python-Skripte. Im Abbild enthalten, ohne pip und ohne virtuelle Umgebungen. |
| Identitätsanbieter | Zitadel | TrakState hat keine eigene Benutzeranmeldung, siehe unten. |
Node 24 ist keine Vorliebe, sondern Bedingung: die Prozessgrenze, in der Plugin-Code läuft,
setzt das --permission-Modell voraus, das es erst ab Node 22.13 gibt.
Datenbank
Abschnitt betitelt „Datenbank“TrakState verlangt mehrere Datenbankrollen, nicht eine:
| Rolle | Wofür | Rechte |
|---|---|---|
| Eigentümer | Migrationen, Schema, Richtlinien | Besitzt das Schema. |
| Laufzeitrolle | jede fachliche Anfrage | Kein Eigentum, kein DDL, der Zeilenschutz (RLS) gilt für sie. |
| Install-Rolle | nur der Installationsvorgang eines Pakets | DDL ausschließlich im eigenen Schema. |
| Betriebsdatenrolle | die fachlichen Daten des Mandanten | Erreicht nur die eigene Datenbank. |
Diese Trennung ist keine Empfehlung. Der Dienst prüft sie beim Start und startet nicht, wenn die Laufzeitrolle den Zeilenschutz umgehen könnte.
Netz und Verschlüsselung
Abschnitt betitelt „Netz und Verschlüsselung“Der Dienst spricht HTTP im Klartext auf PORT (Standard 3000) und lauscht auf allen
Adressen. TLS bringt er nicht mit. Ein vorgeschalteter Reverse-Proxy beendet die
verschlüsselte Verbindung; auf unserem eigenen Betrieb ist das Traefik.
PUBLIC_BASE_URL muss die Adresse sein, die der Browser tatsächlich verwendet. Die
Sitzungs-Cookies werden genau dann als secure gesetzt, wenn dieser Wert mit https://
beginnt.
Anmeldung
Abschnitt betitelt „Anmeldung“Die Benutzeranmeldung läuft über Zitadel als Identitätsanbieter, per OIDC. TrakState
selbst kennt kein Kennwortformular für Anwender. IDENTITY_MODE entscheidet, ob Zitadel
die Benutzer selbst hält (local) oder an ein Verzeichnis des Kunden weiterreicht
(federated).
Nur die Betreiber-Oberfläche (Console) hat eine eigene, lokale Anmeldung.
Arbeitsplätze
Abschnitt betitelt „Arbeitsplätze“Ein aktueller Browser. Geprüft wird gegen Chromium; die Oberfläche wird ohne Rückwärtsübersetzung für ältere Browser gebaut.
Wofür es noch keine Zahl gibt
Abschnitt betitelt „Wofür es noch keine Zahl gibt“Für Rechenkerne, Arbeitsspeicher und Plattenplatz ist keine verbindliche Größe festgelegt. Ebenso ist nicht festgelegt, wie schnell die Datenbank mit der Zahl der erfassten Datensätze und der Tag-Änderungen wächst. Bitte klären Sie beides für Ihre Anlage mit uns ab, bevor Sie Hardware beschaffen.