Zurück zu den Updates
New releaseAug 19, 2026

kviklet v0.8.0

PR-ähnlicher Überprüfungs-/Genehmigungsprozess für Datenbankabfragen. Für konformen, aber reibungslosen Engineering-Zugriff auf die Produktion.

Teilen

Kviklet

Kviklet.dev | Release Notes | Discord

Sicherer Zugriff auf Produktionsumgebungen, ohne die Produktivität der Entwickler zu beeinträchtigen.

Kviklet Kviklet

Kviklet (ausgesprochen Quick-let) wendet das Vier-Augen-Prinzip auf den Zugriff auf Produktionsdatenbanken an, mit einem pull-request-ähnlichen Review- und Genehmigungsworkflow für einzelne SQL-Anweisungen oder zeitlich begrenzte Datenbanksitzungen. Entwickler können die Anfragen ihrer Kollegen gegenseitig überprüfen und genehmigen, ohne jede Abfrage über einen DBA oder ein Betriebsteam leiten zu müssen.

Kviklet ist selbst gehostet und läuft als Docker-Container mit einer PostgreSQL-Datenbank für den Anwendungszustand. Die Web-Oberfläche ermöglicht das Einreichen, Überprüfen und Ausführen von Anfragen. Eine optionale Enterprise-Lizenz schaltet SAML-Authentifizierung, rollenbasierte Review-Anforderungen, Rollensynchronisierung und API-Schlüssel frei. Fordern Sie eine Enterprise-Lizenz unter kviklet.dev an.

Unterstützte Datenbanken sind Postgres, MySQL, MariaDB, MS SQL Server und MongoDB.

Zugriffsmodell

Wir empfehlen, Kviklet mit Ihrem bestehenden Identity Provider zu verbinden. Kviklet unterstützt SSO über OIDC (Google, Keycloak usw.) oder SAML (nur Enterprise) sowie LDAP-Authentifizierung (Active Directory usw.).
Benutzer erstellen dann Anfragen für Verbindungen, die einem bestimmten Datenbankbenutzer zugeordnet sind. Diese Anfragen sind entweder:

  • Einzelabfrage: eine bestimmte SQL-Anweisung, die zur Überprüfung eingereicht wird.
  • Temporärer Zugriff: eine zeitlich begrenzte Sitzung, in der Sie mehrere Anweisungen ausführen können.

Je nach Konfiguration werden die Anfragen von anderen Benutzern überprüft und genehmigt, bevor Kviklet die Ausführung zulässt.

Kviklet verbindet sich im Namen des Benutzers mit der Datenbank. Das Datenbankpasswort der Verbindung wird dem Benutzer niemals angezeigt.

Ein Administrator kann konfigurieren, welche Rolle Zugriff auf welche Verbindung hat und welche Review-Gates für die Ausführung erforderlich sind. Der Zugriff auf Datenbankebene wird über die RBAC-Mechanismen der zugrunde liegenden Datenbank verwaltet. So ist es beispielsweise möglich, eine schreibgeschützte Rolle für eine schreibgeschützte Verbindung zu erstellen und dieser weniger Review-Anforderungen zuzuweisen als einer Schreibverbindung.

Kviklet zeichnet ausgeführte Anweisungen auf und ordnet sie dem Benutzer und der Zugriffsanfrage zu. Um eine vollständige Abdeckung des manuellen Datenbankzugriffs zu erreichen, beschränken Sie direkte Verbindungen und leiten Sie jeden manuellen Zugriff über Kviklet. Entwickler müssen die zugrunde liegenden Datenbank-Anmeldedaten weder erhalten noch weitergeben.

Zusätzliche Enterprise-Funktionen sind:

  • SAML: Unterstützung für SAML-Authentifizierung.
  • Proxy (Postgres, MariaDB, MySQL): Verwenden Sie Ihren bevorzugten Datenbankclient über eine genehmigte Sitzung mit temporärem Zugriff und einem temporären Passwort. Ausgeführte Anweisungen werden im Audit-Log von Kviklet aufgezeichnet.
  • Rollenbasierte Review-Gates: Erfordern Genehmigungen von bestimmten Rollen vor der Ausführung.
  • Rollensynchronisierung: Benutzerrollen automatisch aus den Gruppen Ihres Identity Providers synchronisieren.
  • API-Schlüssel: Programmatischer Zugriff auf die Kviklet-API.
Weitere Screenshots

Anfragen

Alle Datenanfragen befinden sich an einem Ort. Wie offene PRs für Ihre Produktionsdatenbanken:

Requests Requests

Live-Sitzungen

Eine genehmigte Anfrage für temporären Zugriff öffnet eine Live-SQL-Sitzung direkt im Browser:

Live Session Live Session

Audit-Log

Jede ausgeführte Anweisung wird aufgezeichnet — ob sie als überprüfte Einzelabfrage, in einer Live-Sitzung oder über den Datenbank-Proxy ausgeführt wurde:

audit log audit log

Funktionen nach Datenbank-/Verbindungstyp

Die meisten Funktionen sind für alle Datenbanken verfügbar (SSO, LDAP, RBAC, Review-/Genehmigungsworkflow, Audit-Log usw.). Einige Funktionen sind jedoch eingeschränkt, entweder weil sie einfach noch nicht entwickelt wurden oder weil sie für diesen spezifischen Zweck keinen Sinn ergeben. Die folgende Tabelle zeigt, welche Funktionen für welchen Datenbanktyp verfügbar sind:

DatenbankAnweisungs-ReviewTemporärer ZugriffProxy(Beta)Explain Plan
Postgres✓✓✓✓
MySQL✓✓✓✓
MariaDB✓✓✓✓
SQL Server✓✓✗✓
MongoDB✓✓✗✗
Kubernetes✓✗✗✗

Einrichtung

Kviklet wird als einfacher Docker-Container ausgeliefert. Die verfügbaren Versionen finden Sie unter Releases. Wir empfehlen, die von Ihnen verwendete Version regelmäßig zu aktualisieren, da wir kontinuierlich neue Funktionen entwickeln.
Die aktuellste ist derzeit ghcr.io/kviklet/kviklet:0.8.0, Sie können auch :main verwenden, aber es kann vorkommen, dass wir versehentlich etwas Fehlerhaftes mergen. Wir versuchen das jedoch zu vermeiden.

Schnellstart

Wenn Sie einfach ausprobieren möchten, wie es funktioniert:

  1. Hier ist eine minimale docker-compose.yaml:

    Klicken Sie hier, um den Compose-Inhalt zu erweitern ``` services: postgres: image: postgres:16 restart: always environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres ports: - "5432:5432" volumes: - ./postgres-data:/var/lib/postgresql/data # - ./sample_data.sql:/docker-entrypoint-initdb.d/init.sql

    kviklet-postgres: image: postgres:16 restart: always environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: kviklet ports: - "5433:5432" volumes: - ./kviklet-postgres-data:/var/lib/postgresql/data

    kviklet: image: ghcr.io/kviklet/kviklet:main ports: - "80:8080" environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://kviklet-postgres:5432/kviklet - SPRING_DATASOURCE_USERNAME=postgres - SPRING_DATASOURCE_PASSWORD=postgres - INITIAL_USER_EMAIL=[email protected] - INITIAL_USER_PASSWORD=admin depends_on: - kviklet-postgres

```

Kategorien