
kviklet v0.8.0
Процесс рецензирования/утверждения запросов к базе данных по аналогии с Pull Request. Для соответствующего требованиям, но при этом беспрепятственного доступа инженеров к продакшену.
Kviklet
Kviklet.dev | Примечания к выпуску | Discord
Безопасный доступ к производственным средам без ущерба для продуктивности разработчиков.

Kviklet (произносится Quick-let) применяет принцип «четырёх глаз» к доступу к производственным базам данных, с рабочим процессом проверки и утверждения, подобным pull request, для отдельных SQL-запросов или сессий базы данных с ограничением по времени. Инженеры могут проверять и утверждать запросы друг друга, не направляя каждый запрос через DBA или команду эксплуатации.
Kviklet разворачивается самостоятельно и работает как Docker-контейнер с базой данных PostgreSQL для хранения состояния приложения. Его веб-интерфейс позволяет отправлять, проверять и выполнять запросы. Дополнительная корпоративная лицензия открывает аутентификацию SAML, требования к проверке на основе ролей, синхронизацию ролей, API-ключи, прокси базы данных и MCP-сервер для ИИ-агентов. Запросите корпоративную лицензию на 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.
- MCP-сервер: Подключение ИИ-агентов, таких как Claude Code или Codex, к Kviklet. Они действуют с правами самого пользователя и проходят те же проверки.
Дополнительные скриншоты
Запросы
Все запросы на доступ к данным находятся в одном месте. Как открытые PR для ваших производственных баз данных:

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

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

Функции по типу базы данных/подключения
Большинство функций доступно для всех баз данных (SSO, LDAP, RBAC, процесс проверки/утверждения, журнал аудита и т. д.). Но некоторые функции ограничены — либо потому, что они ещё просто не реализованы, либо потому, что они не имеют смысла для конкретного назначения. В следующей таблице показано, какие функции доступны для какого типа базы данных:
| База данных | Проверка запросов | Временный доступ | Прокси (бета) | План выполнения |
|---|---|---|---|---|
| Postgres | ✓ | ✓ | ✓ | ✓ |
| MySQL | ✓ | ✓ | ✓ | ✓ |
| MariaDB | ✓ | ✓ | ✓ | ✓ |
| SQL Server | ✓ | ✓ | ✗ | ✓ |
| MongoDB | ✓ | ✓ | ✗ | ✗ |
| Kubernetes | ✓ | ✗ | ✗ | ✗ |
Установка
Kviklet поставляется как простой docker-контейнер.
Доступные версии можно найти в разделе Releases. Мы рекомендуем регулярно обновлять используемую версию, так как мы продолжаем добавлять новые функции.
Последняя на данный момент — ghcr.io/kviklet/kviklet:0.10.0, также можно использовать :main, но иногда может случиться, что мы случайно смёржим что-то с ошибками. Хотя мы стараемся этого избегать.
Быстрый старт
Если вы просто хотите попробовать, как это работает:
-
Вот минимальный 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