SovrGPT Dokumentation
GovBridge

Betrieb

GovBridge im Betrieb: Hosting in den Niederlanden, Umgebungsvariablen, Größen-Limits, Timeouts, Caching und die Fehlermeldungen des Adapters.

GovBridge ist ein schlanker, zustandsloser Node-Dienst. Die rooom AG betreibt ihn in einem Rechenzentrum in den Niederlanden.

Hosting

AspektWert
Hosting-AnbieterRailway (Sitz in den USA)
Regioneurope-west4 (Niederlande)
Öffentliche URLhttps://govbridge.sovrgpt.com
Health-CheckGET /healthz → 200 {"status":"ok","protocols":["cmis","fit-connect"]} (bediente Protokolle)
Imageprivates GHCR-Image, Pull über Registry-Zugangsdaten
TLSLet's-Encrypt-Zertifikat, automatisch ausgestellt

Der Dispatcher ist zustandslos; mehrere Instanzen können parallel laufen.

Konfiguration (Umgebungsvariablen)

VariableDefaultZweck
PORT8080HTTP-Listen-Port.
SUPABASE_URL— (Pflicht)Supabase-Projekt-URL (Endpunkt-Lookup).
SUPABASE_SERVICE_ROLE_KEY— (Pflicht)Service-Role-Key für den Endpunkt-Lookup.
GOVBRIDGE_ENCRYPTION_KEY— (Pflicht)32-Byte-base64-AES-Schlüssel.
GOVBRIDGE_PROTOCOLScmisKomma-Liste der bedienten Protokolle.
BACKEND_TIMEOUT_MS15000Hartes Timeout pro DMS-HTTP-Call.
LOG_LEVELinfoerror / warn / info / debug.
SENTRY_DSN— (optional)Error-Monitoring (Region DE).

Größen-Limits

Harte Grenzen schützen Speicher und Antwortzeit:

GrenzeWertWo
JSON-RPC-Request-Body1 MBTransport (Einzelaufruf oder Batch)
Inline-Text (cmis_dokument_holen)32 KBcontent.ts (MAX_TEXT_BYTES)
Inline-Binär (base64)5 MBcontent.ts (MAX_INLINE_BYTES)
CMIS-JSON-Antwort4 MBcmis/client.ts (MAX_JSON_BYTES)
FIT-Connect-JSON-Antwort1 MBfit-connect/client.ts (MAX_JSON_BYTES)
FIT-Connect-Antragsdaten (fit_antrag_senden)5 MBfit-connect/index.ts (MAX_INLINE_BYTES)
FIT-Connect-Anhängemax. 10 Stück, je 5 MBfit-connect/index.ts (MAX_ATTACHMENTS, MAX_INLINE_BYTES)
OAuth-Token-Antwort64 KBbackend-auth.ts

Inhalts-Policy bei cmis_dokument_holen

  • Text ≤ 32 KB → inline als Text-Ressource.
  • Allowlist-Binärtyp ≤ 5 MB (PDF, DOC/DOCX, XLS/XLSX, PNG, JPEG) → base64-Blob.
  • Alles Größere und nicht gelistete MIME-Typen → nur eine Referenz (cmis://<objectId>) mit Metadaten, ohne Bytes.

Timeouts & Caching

  • Hartes Upstream-Timeout (BACKEND_TIMEOUT_MS, Default 15 s) über AbortController: Ein hängendes Backend blockiert den Chat nicht.
  • Das OAuth-Token des Backends liegt je Endpunkt im Prozess-RAM und wird 30 s vor Ablauf erneuert (SAFETY_WINDOW_MS).
  • Das CMIS-Repository-Service-Dokument bleibt 5 Minuten im Cache (REPO_TTL_MS); das spart einen Round-Trip pro Aufruf.
  • Fachinhalte cacht der Adapter nie. Jeder Aufruf liest live aus dem DMS.

Fehlerverhalten

Fehler kommen als Meldung im Tool-Ergebnis zurück (isError: true), nicht als Protokollabbruch. So kann das Modell darauf reagieren.

UrsacheMeldung an das Modell
Backend-Timeout„Das Fachverfahren hat nicht rechtzeitig geantwortet (Timeout).“
Backend-HTTP-/Netzwerkfehler„Fehler beim Zugriff auf das Fachverfahren: …“
Fehlender Parameter„Parameter 'name' fehlt.“
Schreibzugriff gesperrt„Schreibzugriff ist für diesen Endpoint nicht freigegeben.“
Unbekanntes Werkzeug„Unbekanntes Tool: name“

Auf Transportebene gilt: ungültige Route oder Methode → 404/405, fehlgeschlagene Mandantenauflösung → generisches 401, reine Notifications → 202 ohne Body.

Verfügbarkeitsprüfung

curl -s https://govbridge.sovrgpt.com/healthz
# → {"status":"ok","protocols":["cmis","fit-connect"]}

Den initialize-Handshake gegen einen konkreten Endpunkt beschreibt die Einrichtung.

Betrieb