Ваша инфраструктура. Ваши данные. Ваши ключи.
Cronable создан, чтобы работать как надёжная часть вашего собственного стека. Вот как именно он держит вашу автоматизацию, секреты и историю под вашим контролем.
Локальный по замыслу
Cronable устанавливается на вашу собственную машину — как десктопное приложение для Mac или Windows либо как сервер под systemd/launchd. Нет ни уровня SaaS, ни зависимости от облака. Регулярные исходящие обращения движка — это периодическая проверка лицензии, которая подтверждает вашу подписку и сообщает простые сведения о числе задач и пользователей, и проверка новых подписанных выпусков; а также, только если вы их включите, исходящее подключение к размещённому у Cronable relay для входящих webhook или удалённого управления. Ваша рабочая нагрузка — определения задач, секреты, запуски и выводы — остаётся на машине и никогда не передаётся нам. Единственное исключение — активный сеанс удалённого управления: его трафик к панели ретранслируется через наши граничные серверы (тот же уровень доверия, что и к любому размещённому прокси), а сквозное шифрование до вашей собственной машины — запланированная опция уровня Enterprise.
Секреты и учётные данные зашифрованы в состоянии покоя
Значения секретов шифруются алгоритмом AES-256-GCM ключом, производным от вашего собственного ключа шифрования (scrypt со случайной солью для каждой установки). Типизированные учётные данные — API-ключи, bearer-токены, basic auth, пользовательские заголовки и строки подключения Postgres — хранятся в том же зашифрованном хранилище и указываются по имени, никогда не вставляются в файлы задач. Ничто не записывается в git и ничто не покидает вашу машину. Ключ вы храните отдельно — потеряете его, и секреты по замыслу невозможно восстановить.
Маскируются в каждом логе и потоке
Раскрытые значения секретов и учётных данных заменяются на «***» в файлах логов, выводе задач и живом потоке логов — даже когда значение разбито на несколько потоковых фрагментов. То, что выполняется на вашей машине, остаётся на вашей машине.
С аутентификацией и минимальными привилегиями
Веб-консоль требует входов для каждого пользователя с хешированием паролей argon2id и блокировкой при переборе. Движок по умолчанию привязан к localhost и предназначен для запуска под выделенным пользователем с низкими привилегиями. Вызовы «сервер-сервер» используют приватный bearer-токен; браузеры — короткоживущий сеансовый cookie, и выход из системы или истечение сессии закрывают даже открытые потоки живых логов в течение секунд. Пароли также должны пройти проверку надёжности — минимальная длина плюс проверка на угадываемость — поэтому слабые или легко угадываемые отклоняются. Необязательная двухфакторная аутентификация (TOTP) добавляет одноразовый код из приложения-аутентификатора, такого как Google Authenticator, с кодами восстановления на случай потери устройства; она обязательна для использования удалённого доступа, поэтому машину можно открыть в размещённой панели только тем, у кого она включена.
Командный доступ с ролями
Веб-консоль многопользовательская, с четырьмя упорядоченными ролями — наблюдатель (только чтение), редактор (создаёт задачи, секреты и запуски), администратор (управляет пользователями, ролями и настройками) и владелец, первый аккаунт установки. Администраторы добавляют и удаляют пользователей, назначают роль каждому, сбрасывают пароль или устройство двухфакторной аутентификации и отзывают доступ в разделе «Настройки → Пользователи» — так уходящий участник команды сразу теряет доступ, и никто не пользуется общим логином. Особо защищённые установки могут включить больше: разграничение прав на выполнение ограничивает, кто может создавать задачи, выполняющие команды, а утверждение изменений добавляет двойной контроль — второй администратор должен одобрить ожидающее изменение задачи или секрета, прежде чем оно вступит в силу.
Единый вход через OIDC
Подключите своего провайдера идентификации — Okta, Entra ID, Google, Keycloak — по потоку authorization-code OIDC с PKCE и полной проверкой ID-токена. Входы через SSO должны сопоставляться с существующим локальным аккаунтом: ничто не создаётся автоматически, а ошибки провайдера отображаются как понятные фиксированные сообщения, а не сырые редиректы.
Журнал аудита, который действительно можно читать
Входы и неудачные попытки, изменения секретов и учётных данных, правки задач, обновления настроек и синхронизации git записываются в журнал аудита только на добавление — только имена и метаданные, никогда значения — их можно просматривать и фильтровать прямо в консоли в разделе «Настройки → Аудит».
Усиленные входящие webhook
Входящие webhook достигают вашего daemon через наш релей с лицензионным контролем по соединению, которое ваш сервер открывает наружу, поэтому вы никогда не открываете порт — если только сами сознательно этого не захотите. Каждый хук привязан к вашей лицензии — никакой другой клиент не может его присвоить или получать его события, даже зная его URL — и защищён токеном для каждого хука, который хранится только как SHA-256-хеш и проверяется за постоянное время. URL требует не менее 32 неугадываемых символов плюс этот токен; неверный, отсутствующий, отключённый или неизвестный — все возвращают один и тот же общий 401, а повторные попытки с одного IP временно блокируются — поэтому нечего перебирать и нечего взламывать. Токены раскрываются один раз при создании и меняются в один клик. Если вы предпочитаете, чтобы входящие данные вообще не проходили через наши серверы, можно обойтись без релея и поднять собственную конечную точку HTTPS — это единственный случай, когда вы действительно открываете порт, и тогда webhook приходят прямо на вашу машину.
Аудируемая через git, обратимая история
Каждое определение задачи — это файл в git-репозитории, которым владеете вы. Каждое изменение — это коммит: полностью сравнимый, с указанием автора и обратимый. Историю ваших задач можно аудировать инструментами, которыми ваша команда уже пользуется. Когда вы подключаете репозиторий для двусторонней синхронизации, Cronable принимает только приватный — он отклоняет публичный репозиторий и останавливает синхронизацию, если подключённый репозиторий позже сделают публичным, — так что определения ваших задач никогда не станут общедоступными для чтения.
Честно о границе доверия
Задача Cronable — выполнять команды, ИИ-агентов и HTTP от вашего имени, поэтому относитесь к нему как к оболочке на машине. Выражения выполняются в песочнице, защищающей от очевидных ошибок, а не в усиленной границе безопасности — никогда не подавайте в неё недоверенный ввод. Мы помогаем развернуть его с минимальными привилегиями и разумной сетевой изоляцией.
Запускайте его за вашим брандмауэром.
Нужно соответствовать требованиям безопасности? Расскажите нам о вашем окружении, и мы вместе разберём развёртывание, усиление защиты и контроль доступа.
Cronable — и это никогда не покидает вашу машину.