Zum Inhalt springen

Das Kaeso-Gateway, eine Rust-Binary zwischen Ihren Apps und Ihren Anbietern. Es prüft jeden Schlüssel und jedes Limit, übersetzt jedes Format und protokolliert jede Anfrage.

Schritt 1 von 8

Schlüssel

Der API-Schlüssel bestimmt das Projekt und das Mitglied oder Dienstkonto, für das er handelt. Schlüssel werden nur als Hashes gespeichert und 30 Sekunden lang aus dem Arbeitsspeicher beantwortet.

Was die App erhalten kann
  • 401Nicht autorisiertDer Schlüssel fehlt, ist unbekannt, deaktiviert, archiviert oder abgelaufen.
  • 403VerbotenDer Schlüssel hat nur Plattformzugriff, oder seinem Mitglied fehlt das Recht api.request.
  • 429Ratenlimit erreichtVon derselben Adresse kamen zu viele Anfragen mit unbekannten Schlüsseln.

Das Gateway liest den Schlüssel aus x-api-key oder sonst aus Authorization: Bearer:

x-api-key: sk-kso-…Authorization: Bearer sk-kso-…

Was das Gateway mit jeder Anfrage macht.

Schlüssel, die im Gateway bleiben, Zustand in Datenbanken, die Sie bereits betreiben, und ein Dienst, den Sie wie jeden anderen führen.

Schlüssel bleiben im Gateway

Anbieter-Schlüssel erreichen nie Ihre Apps, und jede Aktion in der Konsole wird gegen genau ein Recht geprüft.

Mehr über Anbieter-Schlüssel (öffnet in einem neuen Tab)
Was Ihre Apps verwahrensk-kso-AbC1…wxyzInferenz

Einen Kaeso-Schlüssel, nur als Hash gespeichert, mit Ablaufdatum und Inferenz- oder Plattformzugriff.

Was das Gateway verwahrtOpenAIAnthropicAES-256-GCM

Anbieter-Schlüssel, per Envelope-Verschlüsselung mit AES-256-GCM unter einem Hauptschlüsselbund, den Sie verwahren. Den Hauptschlüssel rotieren Sie mit kaeso master-key rewrap.

Anmeldung
Passwort mit Authenticator-App und Wiederherstellungscodes, Anmeldelinks und Single Sign‑on über den OIDC-Anbieter jeder Organisation
Rechte
Feingranulare Rechte mit eingebauten Rollen und bis zu 50 eigenen Rollen pro Organisation
Audit-Logs
Für die Instanz, jede Organisation und jedes Projekt

Zustand in Datenbanken, die Sie kennen

Gateway-Instanzen speichern nichts selbst, also stellen Sie weitere hinter Ihren Load Balancer. Sie teilen sich ein PostgreSQL, ein ClickHouse und ein Valkey.

Die Architektur lesen (öffnet in einem neuen Tab)
PostgreSQL
Schlüssel, Katalog, Limits, Nutzung und Audit-Logs
ClickHouse
Anfrageprotokolle und Nutzungsaggregate
Valkey
Raten- und Budgetzähler, gemeinsame Caches

Wie jeden Dienst betreiben

Konfigurieren Sie es mit KAESO_*-Variablen oder einer TOML-Datei, lesen Sie jedes Geheimnis aus einer Datei und überwachen Sie es mit den Werkzeugen, die Sie schon nutzen.

Die Konfiguration lesen (öffnet in einem neuen Tab)
1listen = "0.0.0.0:8080"2public_url = "https://kaeso.example.com"3 4[providers.anthropic]5base_url = "https://api.anthropic.com"6 7[upstream]8request_timeout = "600s"9 10[logs]11buffer_size = "256MiB"
Metriken
Prometheus auf Port 9100, den Caddy nicht weiterleitet; halten Sie ihn privat
Zustand
/healthz, solange der Prozess läuft, und /readyz mit dem Zustand von PostgreSQL, Valkey und ClickHouse
Logs
Strukturiertes JSON, Anfrageprotokolle standardmäßig 90 Tage, Inhalte 30 Tage
Streams
Keepalives alle 15 Sekunden; der Aufruf beim Anbieter wird abgebrochen, wenn die App weg ist

Ein Repository, eine Version.

Das Gateway, die Konsole, KPP und Kaeso UI erscheinen gemeinsam, unter der MIT-Lizenz.

Quellcode auf GitHub ansehen (öffnet in einem neuen Tab)

Stellen Sie es vor Ihre Apps.

Eine Compose-Datei mit Caddy, dem Gateway, der Konsole, PostgreSQL, ClickHouse und Valkey, auf Ihren eigenen Servern.