Zum Inhalt springen

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.

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.

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.

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.

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.

Ein aktueller Browser. Geprüft wird gegen Chromium; die Oberfläche wird ohne Rückwärtsübersetzung für ältere Browser gebaut.

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.