Torna agli aggiornamenti
New releaseAug 19, 2026

kviklet v0.8.0

Flusso di revisione/approvazione simile a una Pull Request per le query del database. Per un accesso conforme ma fluido dell'ingegneria alla produzione.

Condividi

Kviklet

Kviklet.dev | Note di rilascio | Discord

Accesso sicuro agli ambienti di produzione senza compromettere la produttività degli sviluppatori.

Kviklet Kviklet

Kviklet (pronunciato Quick-let) applica il Principio dei Quattro Occhi all'accesso ai database di produzione, con un flusso di revisione e approvazione simile a una pull request per singole istruzioni SQL o sessioni di database a tempo limitato. Gli ingegneri possono revisionare e approvare reciprocamente le richieste senza instradare ogni query attraverso un DBA o un team operativo.

Kviklet è self-hosted e viene eseguito come container Docker con un database PostgreSQL per lo stato dell'applicazione. La sua interfaccia web consente di inviare, revisionare ed eseguire richieste. Una licenza enterprise opzionale sblocca l'autenticazione SAML, i requisiti di revisione basati sui ruoli, la sincronizzazione dei ruoli e le chiavi API. Richiedi una licenza enterprise su kviklet.dev.

I database supportati sono Postgres, MySQL, MariaDB, MS SQL Server e MongoDB.

Modello di accesso

Consigliamo di collegare Kviklet al tuo identity provider esistente. Kviklet supporta l'SSO tramite OIDC (Google, Keycloak, ecc.) o SAML (solo enterprise), nonché l'autenticazione LDAP (Active Directory, ecc.).
Gli utenti creano quindi richieste per connessioni che corrispondono a uno specifico utente del database. Queste richieste sono:

  • Query singola: una specifica istruzione SQL inviata per la revisione.
  • Accesso temporaneo: una sessione a tempo limitato in cui è possibile eseguire più istruzioni.

A seconda della configurazione, le richieste vengono revisionate e approvate da altri utenti prima che Kviklet ne consenta l'esecuzione.

Kviklet si connette al database per conto dell'utente. La password del database della connessione non viene mai mostrata all'utente.

Un amministratore può configurare quale ruolo ha accesso a quale connessione e quali gate di revisione sono richiesti per l'esecuzione. L'accesso a livello di database è gestito tramite i meccanismi RBAC del database sottostante. Ad esempio, è possibile creare un ruolo di sola lettura per una connessione di sola lettura e assegnare a questa meno requisiti di revisione rispetto a una connessione di scrittura.

Kviklet registra le istruzioni eseguite e le associa all'utente e alla richiesta di accesso. Per una copertura completa dell'accesso manuale al database, limita le connessioni dirette e instrada qualsiasi accesso manuale attraverso Kviklet. Gli ingegneri non hanno bisogno di ricevere o condividere le credenziali del database sottostante.

Ulteriori funzionalità Enterprise includono:

  • SAML: Supporto per l'autenticazione SAML.
  • Proxy (Postgres, MariaDB, MySQL): Usa il tuo client di database preferito attraverso una sessione di accesso temporaneo approvata con una password temporanea. Le istruzioni eseguite vengono registrate nel registro di audit di Kviklet.
  • Gate di revisione basati sui ruoli: Richiedi approvazioni da ruoli specifici prima dell'esecuzione.
  • Sincronizzazione dei ruoli: Sincronizza automaticamente i ruoli utente dai gruppi del tuo identity provider.
  • Chiavi API: Accesso programmatico all'API di Kviklet.
Altri screenshot

Richieste

Tutte le richieste di dati risiedono in un unico posto. Come PR aperte per i tuoi database di produzione:

Requests Requests

Sessioni live

Una richiesta di accesso temporaneo approvata apre una sessione SQL live direttamente nel browser:

Live Session Live Session

Registro di audit

Ogni istruzione eseguita viene registrata — che sia stata eseguita come query singola revisionata, in una sessione live o attraverso il proxy del database:

audit log audit log

Funzionalità per tipo di database/connessione

La maggior parte delle funzionalità è disponibile per tutti i database (SSO, LDAP, RBAC, flusso di revisione/approvazione, registro di audit, ecc.). Ma alcune funzionalità sono limitate, o perché semplicemente non sono ancora state sviluppate o perché non hanno senso per quello specifico scopo. La tabella seguente mostra quali funzionalità sono disponibili per quale tipo di database:

DatabaseRevisione istruzioniAccesso temporaneoProxy(Beta)Explain Plan
Postgres✓✓✓✓
MySQL✓✓✓✓
MariaDB✓✓✓✓
SQL Server✓✓✗✓
MongoDB✓✓✗✗
Kubernetes✓✗✗✗

Configurazione

Kviklet viene distribuito come un semplice container docker. Puoi trovare le versioni disponibili in Releases. Consigliamo di aggiornare regolarmente la versione che stai utilizzando poiché continuiamo a sviluppare nuove funzionalità.
L'ultima attualmente è ghcr.io/kviklet/kviklet:0.8.0, puoi anche usare :main ma potrebbe capitare ogni tanto che uniamo accidentalmente qualcosa di buggato. Anche se cerchiamo di evitarlo.

Avvio rapido

Se vuoi solo provare come funziona:

  1. Ecco un docker-compose.yaml minimale:

    Clicca per espandere il contenuto del compose ``` 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

  1. Esegui il file docker-compose.yml tramite docker-compose up -d. Kviklet si avvierà sulla porta 80, vai su localhost e prova. Il login admin è [email protected] con admin come password.

Categorie