Назад к обновлениям
New releaseAug 19, 2026

kviklet v0.8.0

Процесс рецензирования/утверждения запросов к базе данных по аналогии с Pull Request. Для соответствующего требованиям, но при этом беспрепятственного доступа инженеров к продакшену.

Поделиться

Kviklet

Kviklet.dev | Release Notes | Discord

Безопасный доступ к production-средам без ущерба для продуктивности разработчиков.

Kviklet Kviklet

Kviklet (произносится «Квиклет») применяет принцип четырёх глаз к доступу к production-базам данных, с рабочим процессом проверки и утверждения, похожим на pull request, для отдельных SQL-запросов или сессий доступа к базе данных с ограничением по времени. Инженеры могут проверять и утверждать запросы друг друга, не направляя каждый запрос через DBA или команду эксплуатации.

Kviklet разворачивается самостоятельно и работает как Docker-контейнер с базой данных PostgreSQL для хранения состояния приложения. Его веб-интерфейс позволяет отправлять, проверять и выполнять запросы. Опциональная корпоративная лицензия открывает аутентификацию SAML, требования к проверке на основе ролей, синхронизацию ролей и API-ключи. Запросить корпоративную лицензию можно на kviklet.dev.

Поддерживаемые базы данных: Postgres, MySQL, MariaDB, MS SQL Server и MongoDB.

Модель доступа

Мы рекомендуем подключить Kviklet к вашему существующему провайдеру идентификации. Kviklet поддерживает SSO через OIDC (Google, Keycloak и т. д.) или SAML (только для корпоративной версии), а также аутентификацию LDAP (Active Directory и т. д.).
Затем пользователи создают запросы для подключений, которые сопоставлены с конкретным пользователем базы данных. Эти запросы бывают двух типов:

  • Одиночный запрос: конкретный SQL-запрос, отправленный на проверку.
  • Временный доступ: сессия с ограничением по времени, в рамках которой можно выполнить несколько запросов.

В зависимости от конфигурации запросы проверяются и утверждаются другими пользователями, прежде чем Kviklet разрешит выполнение.

Kviklet подключается к базе данных от имени пользователя. Пароль подключения к базе данных никогда не показывается пользователю.

Администратор может настроить, какая роль имеет доступ к какому подключению и какие этапы проверки требуются для выполнения. Доступ на уровне базы данных управляется через механизмы RBAC самой базы данных. Например, можно создать роль только для чтения для подключения только для чтения и назначить для него меньше требований к проверке, чем для подключения с записью.

Kviklet записывает выполненные запросы и связывает их с пользователем и запросом на доступ. Для полного охвата ручного доступа к базе данных ограничьте прямые подключения и направьте любой ручной доступ через Kviklet. Инженерам не нужно получать или передавать учётные данные базовой базы данных.

Дополнительные корпоративные функции включают:

  • SAML: Поддержка аутентификации SAML.
  • Прокси (Postgres, MariaDB, MySQL): Используйте предпочитаемый клиент базы данных через утверждённую сессию временного доступа с временным паролем. Выполненные запросы записываются в журнал аудита Kviklet.
  • Этапы проверки на основе ролей: Требовать утверждения от определённых ролей перед выполнением.
  • Синхронизация ролей: Автоматическая синхронизация ролей пользователей из групп вашего провайдера идентификации.
  • API-ключи: Программный доступ к API Kviklet.
Больше скриншотов

Запросы

Все запросы на доступ к данным находятся в одном месте. Как открытые PR для ваших production-баз данных:

Requests Requests

Живые сессии

Утверждённый запрос на временный доступ открывает живую SQL-сессию прямо в браузере:

Live Session Live Session

Журнал аудита

Каждый выполненный запрос записывается — независимо от того, был ли он выполнен как проверенный одиночный запрос, в живой сессии или через прокси базы данных:

audit log audit log

Функции по типу базы данных/подключения

Большинство функций доступны для всех баз данных (SSO, LDAP, RBAC, процесс проверки/утверждения, журнал аудита и т. д.). Но некоторые функции ограничены — либо потому, что они ещё просто не реализованы, либо потому, что они не имеют смысла для конкретного назначения. Следующая таблица показывает, какие функции доступны для какого типа базы данных:

База данныхПроверка запросовВременный доступПрокси (Beta)План выполнения
Postgres✓✓✓✓
MySQL✓✓✓✓
MariaDB✓✓✓✓
SQL Server✓✓✗✓
MongoDB✓✓✗✗
Kubernetes✓✗✗✗

Установка

Kviklet поставляется как простой docker-контейнер. Доступные версии можно найти в разделе Releases. Мы рекомендуем регулярно обновлять используемую версию, так как мы продолжаем добавлять новые функции.
Последняя на данный момент — ghcr.io/kviklet/kviklet:0.8.0, также можно использовать :main, но иногда может случиться, что мы случайно смёржим что-то с багами. Хотя мы стараемся этого избегать.

Быстрый старт

Если вы просто хотите попробовать, как это работает:

  1. Вот минимальный docker-compose.yaml:

    Нажмите, чтобы развернуть содержимое 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. Запустите docker-compose.yml через docker-compose up -d. Kviklet запустится на порту 80, перейдите на localhost и попробуйте. Логин администратора — [email protected] с паролем admin.

Категории