Brio-IO Communication Server

Betrieb

Wie ein Brio-IO-Server konfiguriert wird: Profile und Umgebungsvariablen, das Git-Konfigurationsrepository, Anmeldung und Tokens, Health-Endpunkte und Logging.

Stand: Beispiele geprüft gegen brio-server fa237ec7ad

Diese Seite richtet sich an alle, die einen Brio-IO-Server betreiben. Sie ist bewusst schlank: Sie beschreibt die Stellschrauben, die es heute gibt.

Zum Bezug: Brio-IO ist im Early Access. Es gibt keinen öffentlichen Self-Service-Download; Zugänge und Installationspakete richten wir persönlich ein. Frag uns nach einem Zugang — schreib kurz dazu, welche Schnittstellen du integrieren willst.

Aufbau eines Deployments

Ein Brio-IO-Deployment besteht aus drei Teilen:

  • Brio-IO Server — die headless laufende Anwendung. Sie hält die Channels, die Connectoren und die Laufzeit.
  • PostgreSQL — der Nachrichtenspeicher. Schema-Migrationen fährt der Server beim Start selbst.
  • Brio-IO UI — die Weboberfläche. Sie ist ein eigenes Deployment und wird nicht in den Server gepackt: Ein UI kann mehrere Server bedienen (Server-Auswahl in der Oberfläche), etwa Produktion, Staging und Test in einer Konsole.

Konfiguration: Profile und Umgebungsvariablen

Der Server nutzt Spring-Profile. Ausgeliefert werden unter anderem brio-dev (Standard) und brio-staging; sie unterscheiden sich in den Vorgaben für Datenbank, Konfigurationspfad und Log-Level. Alles Betriebsrelevante lässt sich über Umgebungsvariablen setzen.

Datenbank

VariableBedeutung
BRIO_DATASOURCE_URLJDBC-URL der PostgreSQL-Instanz
BRIO_DATASOURCE_USERNAMEDatenbank-Benutzer
BRIO_DATASOURCE_PASSWORDDatenbank-Passwort

Konfigurations-Repository

VariableBedeutung
BRIO_CONFIG_REPO_PATHVerzeichnis des Git-Konfigurationsrepositories

Standard ist ./data/config-repo (Entwicklung) bzw. /var/lib/brio/config-repo (Staging-Profil). Dieses Verzeichnis ist die Konfiguration — Channels, Connectoren, Skripte, Code-Templates. Es gehört in die Sicherung, und zwar als Git-Repository, nicht als Dateikopie.

Anmeldung und Tokens

VariableBedeutung
BRIO_AUTH_MODElocal, oidc oder both (Standard: local)
BRIO_ADMIN_USERNAMEName des initialen Administrators (Standard: admin)
BRIO_ADMIN_PASSWORDPasswort des initialen Administrators
BRIO_JWT_ACCESS_TTLLebensdauer des Access-Tokens (Standard: 15 Minuten)
BRIO_JWT_REFRESH_TTLLebensdauer des Refresh-Tokens (Standard: 8 Stunden)

Die Voreinstellungen für die Token-Laufzeiten sind bewusst so gewählt: Ein kurzlebiges Access-Token, das die Oberfläche selbstständig erneuert, und ein Refresh-Token, das eine Schicht abdeckt — damit sich niemand mitten in der Arbeit neu anmelden muss.

Für OIDC (BRIO_AUTH_MODE=oidc oder both) gibt es die üblichen Stellschrauben: BRIO_OIDC_ISSUER_URI, BRIO_OIDC_CLIENT_ID, BRIO_OIDC_CLIENT_SECRET, BRIO_OIDC_AUDIENCE sowie BRIO_OIDC_ROLE_CLAIM für den Pfad zu den Rollen im Token (Keycloak legt sie unter realm_access.roles ab, Azure AD in einem roles-Anspruch auf oberster Ebene). both lässt die lokale Anmeldung als Rückfallweg bestehen — sinnvoll, solange der Identity-Provider noch nicht als alleiniger Zugang erprobt ist.

Branch-Engine

VariableBedeutung
BRIO_BRANCH_ENGINE_ENABLEDBranch-Engine an/aus (Standard: an)
BRIO_BRANCH_ENGINE_MAXmaximale Zahl gleichzeitiger Shadow-Engines (Standard: 5)
BRIO_BRANCH_ENGINE_MAX_MESSAGESObergrenze gespeicherter Shadow-Nachrichten (Standard: 100 000)
BRIO_BRANCH_ENGINE_PURGE_ON_MERGEShadow-Daten beim Merge aufräumen (Standard: an)
BRIO_BRANCH_ENGINE_PURGE_ON_DELETEShadow-Daten beim Löschen eines Branches aufräumen (Standard: an)
BRIO_BRANCH_ENGINE_MAX_DIFF_EXAMPLESZahl konkreter Abweichungs-Beispiele in der Merge-Zusammenfassung (Standard: 20; 0 = nur Zählwerte)

Die beiden Obergrenzen sind der Grund, warum Shadowing den Server nicht langsam volllaufen lässt: Shadow-Verkehr ist Diagnose-Material mit begrenzter Haltbarkeit, kein zweiter Produktivbestand.

Lizenz

VariableBedeutung
BRIO_LICENSE_KEYLizenzschlüssel des Deployments
BRIO_LICENSE_SECRETSignaturgeheimnis zur Lizenzprüfung

BRIO_LICENSE_SECRET muss in Produktion gesetzt werden. Der eingebaute Vorgabewert ist ausdrücklich nur für Entwicklung gedacht.

Health und Info

Der Server stellt Actuator-Endpunkte bereit:

curl -s http://localhost:8080/actuator/health
  • health liefert den Zustand; Details erscheinen nur für berechtigte Aufrufer.
  • info enthält Build- und Git-Angaben — nützlich, um zu prüfen, welcher Stand tatsächlich läuft. Genau diese Frage ist der häufigste Grund für falsche Diagnosen nach einem Deploy.

Der JMS-Health-Indicator ist bewusst abgeschaltet: JMS-Konnektivität ist bei Brio-IO eine Eigenschaft einzelner Channels, kein Lebenszeichen des Prozesses. Ohne diese Abschaltung würde ein fehlender Broker den gesamten Server als DOWN melden.

API-Dokumentation

Die REST-API ist Spec-First: Die maßgebliche OpenAPI-Beschreibung ist ein gepflegtes Dokument, das der Server unter /api/docs ausliefert. Eine Swagger-Oberfläche liegt unter /swagger-ui.html und lädt genau diese Spec.

Eine vollständige API-Referenz ist nicht Teil dieser Dokumentation — die Spec am Server ist die aktuellere Quelle.

Logging

Log-Level je Umgebung: DEBUG für io.brio im Entwicklungsprofil, INFO im Staging-Profil. Beim Deployment eines Channels lohnt ein Blick ins Log — dort erscheinen zwei Warnungen, die man ernst nehmen sollte:

  • Deprecation-Warnung, wenn der Channel mindestens ein js-legacy-Skript enthält, mit Namen der betroffenen Skripte.
  • Warnung auf veraltete Datentyp-Pfade in Skripten (XPN_1, FN_1 …), die heute still einen leeren String liefern würden. Siehe Konzepte.

Sicherung

Zwei Dinge sind zu sichern, und sie sind unterschiedlicher Natur:

  1. Das Konfigurations-Repository (BRIO_CONFIG_REPO_PATH) — die Wahrheit über deine Channels. Am besten als Git-Remote, dann ist die Sicherung zugleich die Historie.
  2. Die PostgreSQL-Datenbank — der Nachrichtenspeicher.

Ein Server lässt sich aus dem Konfigurations-Repository allein wieder aufbauen; die Datenbank trägt die verarbeiteten Nachrichten, nicht die Konfiguration.

Diese Seite gibt es bisher auf Deutsch und Englisch. Die spanische Fassung folgt.