Zum Inhalt springen

Referenz

Konfiguration

Die reale Konfigurationsoberflaeche der Olivares-AI-Steuerungsebene -- Speicher-Backend, TLS, Quellen, Audit-Signaturschluessel und Mandantenverwaltung.

Zuletzt aktualisiert:

Die Steuerungsebene ist ein Go-Binary, olivares, konfiguriert durch eine kleine Menge von Flags auf seinem serve-Unterbefehl und einer Handvoll Umgebungsvariablen — keine ausufernde Konfigurationsdatei. Die Standards sind so gewaehlt, dass sie ablehnend schliessen: Loopback-Binds, TLS an, keine ausgelieferten Credentials. Alles unten stammt aus den eigenen Befehlsdefinitionen und der Kompositionswurzel des Binaries; wo eine Einstellung nicht im Quellcode bestaetigt werden kann, wird sie hier nicht aufgefuehrt.

Geheimnisse, die echte Quellen verdrahten und echte Schluessel verwahren, bleiben in Operator-gehaltenen Dateien oder gemounteten Secrets, referenziert durch Umgebungsvariablen — nie im Speicher. Fuer den ausfuehrbaren Ende-zu-Ende-Pfad siehe den Self-Host-Leitfaden; fuer die vollstaendige Flag-Auflistung siehe die CLI-Referenz.

Der serve-Unterbefehl

olivares serve fuehrt den REST/Web-HTTP-Server und den gRPC-Server in einem Prozess aus, wobei die Webkonsole auf demselben Origin wie die API bereitgestellt wird. Dies sind die gaengigen Konfigurationseingaben.

FlagStandardZweck
--listen127.0.0.1:8443HTTP-Bind-Adresse (REST-API + eingebettete Webkonsole).
--grpc-listen127.0.0.1:8444gRPC-Bind-Adresse (Steuerungsebene / Kollektor-Ingest).
--data-dir$OLIVARES_DATA_DIR oder ./olivares-dataAudit-Signaturschluessel, TLS-Material und — fuer SQLite — die Speicherdatei.
--enginesqliteSpeicher-Engine: sqlite oder postgres.
--dsnleer (SQLite-Datei im Datenverzeichnis)Speicher-Verbindungsstring.
--checkpoint-interval1hWie oft ein signierter Audit-Checkpoint ueber jede Mandantenkette geschrieben wird. 0 deaktiviert.
--insecureausKlartext-HTTP/gRPC bereitstellen. Nur fuer Localhost-Entwicklung.
--seed-demoausEine synthetische Beispielumgebung laden. Weigert sich, auf einem Nicht-Loopback-Bind zu starten.

TLS ist standardmaessig an. Ohne bereitgestelltes --tls-cert/--tls-key stellt die Engine ein selbstsigniertes Zertifikat im Datenverzeichnis einmalig im Voraus sicher, bevor ein Listener eine Verbindung akzeptiert — sodass sowohl der HTTP- als auch der gRPC-Server dasselbe Zertifikat verwenden und keiner auf Klartext zurueckfaellt. Wenn sie dieses Zertifikat generiert, protokolliert sie den SHA-256-Fingerprint, damit Clients es vertrauen oder pinnen koennen.

--insecure ist der einzige Weg, Klartext bereitzustellen, und der gRPC-Pfad schliesst ablehnend: Ausserhalb von --insecure weigert sich der Server, einen Klartext-Listener zu konstruieren, anstatt stillschweigend zu degradieren. Verwenden Sie es nur gegen 127.0.0.1 waehrend der lokalen Entwicklung.

--seed-demo stellt einen Demo-Administrator mit einem oeffentlichen, Quellbaum-Passwort und fabrizierten Umgebungsdaten bereit — nur fuer Demos und E2E. Die Engine weigert sich, es zu starten, wenn einer der Listener Nicht-Loopback ist. Verwenden Sie ein wegwerfbares Datenverzeichnis.

Eine zweite Stufe von Flags steuert verteilte und gegenseitige-TLS-Topologien — --admin-dsn und --allow-privileged-db-role (Postgres), --grpc-client-ca (Kollektor-gegenseitiges-TLS) und --region/--known-regions (Datenresidenz). Diese werden unten behandelt und vollstaendig in der CLI-Referenz aufgefuehrt.

Umgebungsvariablen

Die Engine liest eine kleine Anzahl von Umgebungsvariablen beim Start. Die folgenden sind in der Kompositionswurzel und Verdrahtung bestaetigt.

Datenverzeichnis und Quellen

VariableWirkung
OLIVARES_DATA_DIRStandard-Datenverzeichnis, wenn --data-dir nicht angegeben ist (faellt auf ./olivares-data zurueck). Haelt den Audit-Signaturschluessel, TLS-Material und die SQLite-Speicherdatei. Persistieren Sie es ueber Neustarts.
OLIVARES_SOURCES_CONFIGPfad zu einer JSON-Datei, die echte Beobachtungsquellen, Identitaets-Roster-Provider und Wissensdokument-Quellen vor dem Start der Engine verdrahtet.

OLIVARES_SOURCES_CONFIG ist die einzelne Eingabe, durch die Nicht-Demo-Signalquellen und Roster-Provider aufgeloest werden. Es ist die geheimnisse-tragende Konfiguration des Operators und wird bewusst aus dem Speicher herausgehalten. Die Engine liest sie beim Start und registriert jede Quelle, bevor die Runtime startet.

Die Behandlung ist ehrlich statt fail-fast. Eine fehlende Variable, eine nicht lesbare oder ungueltige-JSON-Datei oder eine konfigurierte-aber-leere Quellenliste warnen alle und ergeben eine leere Konfiguration — die Engine bricht den Start nie ab. Eine unkonfigurierte Quelle zeigt eine Warnung an, anstatt die Ebene zum Absturz zu bringen oder vorzutaeuschen, dass sie funktioniert: Ohne etwas Verdrahtetes bleibt die Zugriffskarte einfach leer. Um sie zu bevoelkern, konfigurieren Sie mindestens eine Quelle — siehe Eine Quelle verbinden und, fuer den kooperativen Claude-Code-Pfad, Claude Code verbinden.

Autorisierungs-Entscheidungspunkt

Die native attributbasierte und rollenbasierte Zugriffskontrolle steuert immer. Ein externer Policy Decision Point (PDP), wenn ausgewaehlt, ist eine zusaetzliche nur-einschraenkende Ebene, die die Entscheidung, die das eingebaute RBAC bereits getroffen hat, nur verengen kann — nie erweitern.

VariableWirkung
OLIVARES_PDP_ENGINEWaehlt den externen PDP: cedar, opa oder none (leer/none = nur natives ABAC).
OLIVARES_PDP_CEDAR_FILECedar-Engine: Pfad zur Richtliniendatei des Operators.
OLIVARES_PDP_OPA_URL / _OPA_PATH / _OPA_TOKENOPA-Engine: Basis-URL, Entscheidungspfad und Bearer-Token fuer den Open Policy Agent-Endpunkt.

Zwei Adapter sitzen hinter einer Naht — ein eingebetteter Cedar-Evaluator (der Pure-Go-Pfad) und ein OPA-ueber-HTTP-Adapter. Wenn OLIVARES_PDP_ENGINE eine Engine auswaehlt, aber deren Konfiguration ungueltig ist (eine nicht lesbare Cedar-Datei, ein fehlerhaftes OPA-Ziel), deaktiviert die Engine nur den externen PDP, behaelt die native ABAC-Engine und RBAC durchsetzend und protokolliert laut. Eine defekte Richtliniendatei laesst Anfragen nie ungesteuert und bringt die Ebene nie zum Absturz. Fuer das standardmaessig-ablehnende Modell siehe Governance.

Audit-Signaturschluessel

Das Audit-Ledger ist nur-anhaengend, hash-verkettet und durch Ed25519-signierte Checkpoints verankert. Der Pro-Ereignis-Signaturschluessel wird beim Start aufgeloest, fail-closed fuer jede verwahrte Quelle.

VariableWirkung
OLIVARES_AUDIT_SIGNING_KEYVom Kunden bereitgestellter Signaturschluessel, base64, inline.
OLIVARES_AUDIT_SIGNING_KEY_FILEPfad zu einem gemounteten Secret, das den Schluessel haelt (bevorzugt — der Wert gelangt nie in die Prozessumgebung).
OLIVARES_KEY_CUSTODYDeklarierte Verwahrungshaltung (byok oder cmek). Ein Start, dessen tatsaechliche Schluesselverwahrung nicht mit der deklarierten uebereinstimmt, wird abgelehnt.

Ohne diese gesetzt wird der Schluessel beim ersten Start im Datenverzeichnis gepraegt — der ehrliche Einzelknoten-/Entwicklungs-Fallback. Das Teilen eines Schluessels ueber Replicas (ueber den Env-Wert oder ein gemountetes Secret) ist fuer Hochverfuegbarkeit erforderlich: Sonst praegt jeder Knoten seinen eigenen und das Ledger forkt beim Failover. Pro-Ereignis-Signierung bleibt immer on-box. KMS-verpackte (kundenverwalteter-Schluessel) Verwahrung ist eine zusaetzliche Haltung, konfiguriert ueber OLIVARES_KEY_WRAP; siehe die CLI-Referenz.

Speicherauswahl

Die Engine waehlt ihren Speicher ueber --engine.

EngineWann verwendenHinweise
sqlite (Standard)Einzelnes Binary, einzelner Knoten, air-gapped Installationen.Eingebetteter Pure-Go-Speicher, null externe Abhaengigkeiten. Ohne --dsn lebt die Speicherdatei im Datenverzeichnis.
postgresMulti-Tenant- und Scale-Out-Deployments.Fuegt Row-Level-Security-Mandantenisolierung hinzu. Erfordert eine Least-Privilege-Anwendungsrolle.

SQLite ist der Standard und braucht keinen externen Dienst — es ist der air-gap-faehige, null-Abhaengigkeiten-Speicher fuer die Einzelknoten-Topologie, und derjenige, den das Ein-Befehl-Docker-Compose-Deployment ausfuehrt. Wechseln Sie zu Postgres, wenn Sie Multi-Tenant-Isolierung oder horizontale Skalierung brauchen, nicht vorher.

Die Auswahl von postgres aktiviert den Row-Level-Security-Backstop, der Mandanten isoliert. Die Engine weigert sich zu starten gegen einen Postgres-Superuser oder eine BYPASSRLS-Rolle — was diesen Backstop deaktivieren wuerde — es sei denn, --allow-privileged-db-role ueberschreibt den Schutz explizit (nur Single-Tenant / wegwerfbar). Fuer volle cross-tenant System-Lesevorgaenge (Org-Auflistung, Multi-Tenant-Checkpoint-Abdeckung) stellen Sie eine dedizierte NOSUPERUSER BYPASSRLS Admin-Rolle ueber --admin-dsn bereit; ohne sie laufen diese Lesevorgaenge RLS-eingeschraenkt und geben moeglicherweise leer zurueck. OLIVARES_DB_MAX_CONNS begrenzt den Pro-Knoten-Anwendungspool.

Mandantenverwaltung und Residenz

Eine einzelne Instanz ist auf Postgres konstruktionsbedingt multi-tenant, mit Row-Level-Security, die die Daten jedes Mandanten isoliert. Datenresidenz wird obenauf durch --region geschichtet.

  • Einzelregion (Standard, kein --region): keine Residenz-Durchsetzung.
  • Regionsbezogen (--region eu, --region us, …): Die Instanz bedient nur Mandanten, die an ihre Heimatregion gepinnt sind, und lehnt regionsueberschreitenden Zugriff ablehnend ab. --known-regions listet die Regionscodes auf, die ueber das gesamte Deployment gueltig sind; der Pin eines Mandanten muss einer davon sein, und eine fehlerhafte Regionskonfiguration laesst den Start fehlschlagen, bevor der Speicher geoeffnet wird.

Audit-Checkpoints

--checkpoint-interval steuert, wie oft ein signierter Checkpoint ueber jede Mandantenkette geschrieben wird (Standard 1h; 0 deaktiviert). Ein letzter Checkpoint wird beim sauberen Herunterfahren geschrieben, bevor der Speicher schliesst, sodass die Kette sowohl beim Herunterfahren als auch im Intervall verankert ist. Siehe Einen Release verifizieren dafuer, wie die signierte Kette nachgelagert verifiziert wird.

Sichere Standards

Diese Haltungen gelten ohne Konfiguration ueber serve hinaus. Sie sind die Standardhaltung des Produkts, keine optionale Haertung.

BereichStandardBedeutung
CredentialsKeine ausgeliefertKein Standard-Benutzername oder -Passwort. Beim ersten Start ohne Benutzer praegt die Engine einen einmaligen Setup-Token und gibt ihn ausschliesslich auf Standardausgabe aus — nie in die Logs.
TransportTLS anHTTP und gRPC werden ueber TLS bereitgestellt; ein selbstsigniertes Zertifikat wird im Datenverzeichnis generiert, wenn keines bereitgestellt wird, und sein Fingerprint wird protokolliert.
Bind-AdresseLoopback--listen und --grpc-listen sind standardmaessig 127.0.0.1. Off-Host-Erreichbarkeit ist eine bewusste Operator-Entscheidung.
KlartextmodusAus--insecure ist der einzige Weg, Klartext bereitzustellen, und der gRPC-Pfad schliesst ablehnend. Nur fuer Localhost-Entwicklung.
Demo-SeedingAus--seed-demo ist aus und weigert sich bei jedem Nicht-Loopback-Bind, weil es einen Demo-Administrator mit oeffentlichem Passwort praegt.
Telemetrie-HeimrufAusDie Engine telefoniert nicht nach Hause. Ausgehende Verbindungen existieren nur zu den Quellen, die Sie konfigurieren — das macht eine air-gapped Steuerungsebene mit null Egress moeglich.

Die Loopback-Binds bedeuten, dass die Engine off-host nicht erreichbar ist, bis Sie sie aendern. Wenn Sie sie veroeffentlichen — zum Beispiel durch das Mapping eines Host-Ports in Docker Compose — ist TLS bereits an, um sie zu schuetzen; kombinieren Sie keinen veroeffentlichten Bind mit --insecure. Bei einer frischen Installation gibt die Engine einen FIRST-BOOT SETUP-Block auf Standardausgabe mit dem einmaligen Setup-Token aus (lesen Sie ihn aus den Container-Logs unter Compose); der Administrator verwendet ihn, um den ersten Benutzer zu erstellen, und authentifiziert sich dann.

Fuer das, was das Produkt beobachtet, wo es steuert und wo die Abdeckung gestuft ist, lesen Sie Ehrlichkeit und Grenzen.

Dokumentation durchsuchen