Voltar às atualizações
New releaseAug 19, 2026

kviklet v0.8.0

Fluxo de Revisão/Aprovação similar a Pull Request para consultas de banco de dados. Para acesso de Engenharia à produção que seja compatível, mas suave.

Compartilhar

Kviklet

Kviklet.dev | Notas de Versão | Discord

Acesso seguro a ambientes de produção sem prejudicar a produtividade dos desenvolvedores.

Kviklet Kviklet

Kviklet (pronuncia-se Quick-let) aplica o Princípio dos Quatro Olhos ao acesso a bancos de dados de produção, com um fluxo de revisão e aprovação semelhante a um pull request para instruções SQL individuais ou sessões de banco de dados com tempo limitado. Engenheiros podem revisar e aprovar as solicitações uns dos outros sem encaminhar cada consulta por meio de um DBA ou equipe de operações.

Kviklet é auto-hospedado e é executado como um contêiner Docker com um banco de dados PostgreSQL para o estado da aplicação. Sua interface web permite enviar, revisar e executar solicitações. Uma licença empresarial opcional desbloqueia autenticação SAML, requisitos de revisão baseados em funções, sincronização de funções e chaves de API. Solicite uma licença empresarial em kviklet.dev.

Os bancos de dados suportados são Postgres, MySQL, MariaDB, MS SQL Server e MongoDB.

Modelo de Acesso

Recomendamos conectar o Kviklet ao seu provedor de identidade existente. O Kviklet suporta SSO por meio de OIDC (Google, Keycloak, etc.) ou SAML (somente empresarial), bem como autenticação LDAP (Active Directory, etc.).
Os usuários então criam solicitações para conexões que mapeiam para um usuário específico do banco de dados. Essas solicitações são:

  • Consulta Única: uma instrução SQL específica enviada para revisão.
  • Acesso Temporário: uma sessão com tempo limitado na qual você pode executar várias instruções.

Dependendo da configuração, as solicitações são revisadas e aprovadas por outros usuários antes que o Kviklet permita a execução.

O Kviklet se conecta ao banco de dados em nome do usuário. A senha do banco de dados da conexão nunca é mostrada ao usuário.

Um administrador pode configurar qual função tem acesso a qual conexão e quais portões de revisão são necessários para a execução. O acesso no nível do banco de dados é gerenciado por meio dos mecanismos de RBAC do banco de dados subjacente. Por exemplo, é possível criar uma função somente leitura para uma conexão somente leitura e atribuir menos requisitos de revisão para essa do que para uma conexão de escrita.

O Kviklet registra as instruções executadas e as associa ao usuário e à solicitação de acesso. Para cobertura completa do acesso manual ao banco de dados, restrinja conexões diretas e encaminhe qualquer acesso manual por meio do Kviklet. Os engenheiros não precisam receber ou compartilhar as credenciais subjacentes do banco de dados.

Recursos empresariais adicionais incluem:

  • SAML: Suporte para autenticação SAML.
  • Proxy (Postgres, MariaDB, MySQL): Use seu cliente de banco de dados preferido por meio de uma sessão de acesso temporário aprovada com uma senha temporária. As instruções executadas são registradas no log de auditoria do Kviklet.
  • Portões de Revisão Baseados em Funções: Exigir aprovações de funções específicas antes da execução.
  • Sincronização de Funções: Sincronizar automaticamente as funções do usuário a partir dos grupos do seu provedor de identidade.
  • Chaves de API: Acesso programático à API do Kviklet.
Mais capturas de tela

Solicitações

Todas as solicitações de dados ficam em um só lugar. Como PRs abertos para seus bancos de dados de produção:

Requests Requests

Sessões ao Vivo

Uma solicitação de acesso temporário aprovada abre uma sessão SQL ao vivo diretamente no navegador:

Live Session Live Session

Log de auditoria

Toda instrução executada é registrada — seja executada como uma consulta única revisada, em uma sessão ao vivo ou por meio do proxy de banco de dados:

audit log audit log

Recurso por Tipo de Banco de Dados/Conexão

A maioria dos recursos está disponível para todos os bancos de dados (SSO, LDAP, RBAC, Fluxo de Revisão/Aprovação, log de auditoria, etc.). Mas alguns recursos são restritos, seja porque simplesmente ainda não foram construídos ou porque não fazem sentido para esse propósito específico. A tabela a seguir mostra quais recursos estão disponíveis para qual tipo de banco de dados:

Banco de DadosRevisão de InstruçãoAcesso TemporárioProxy(Beta)Explain Plan
Postgres✓✓✓✓
MySQL✓✓✓✓
MariaDB✓✓✓✓
SQL Server✓✓✗✓
MongoDB✓✓✗✗
Kubernetes✓✗✗✗

Configuração

O Kviklet é distribuído como um contêiner docker simples. Você pode encontrar as versões disponíveis em Releases. Recomendamos atualizar regularmente a versão que você está usando, pois continuamos a construir novos recursos.
A mais recente atualmente é ghcr.io/kviklet/kviklet:0.8.0, você também pode usar :main, mas pode acontecer de vez em quando de mesclarmos algo com bugs acidentalmente. Embora tentemos evitar isso.

Início Rápido

Se você só quer experimentar como funciona:

  1. Aqui está um docker-compose.yaml mínimo:

    Clique para expandir o conteúdo do 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. Execute o docker-compose.yml via docker-compose up -d. O Kviklet será iniciado na porta 80, acesse localhost e explore. O login de administrador é [email protected] com admin como senha.

Categorias