Чек-лист закрытого контура¶
Одностраничный чек-лист установки и приёмки Synth без доступа в интернет. Отмечайте пункты по порядку; при отклонении фиксируйте причину и возвращайтесь к соответствующему разделу.
1. Подготовка¶
- Определена версия Synth (
<version>) и платформа: Linux / macOS / Windows / контейнеры. - Проверена архитектура:
x86_64/amd64илиarm64. - Linux:
getconf GNU_LIBC_VERSION>= 2.28; дистрибутив из списка поддержки. - macOS: версия 26 (Intel/ARM) или 27 (только ARM); выбран правильный артефакт.
- Windows: 10/11 x64; режим standalone или hybrid; права пользователя без admin.
- Достаточно места под данные, backup и логи (
df -h). - Свободны порты
4300(standalone) /5000и8080(managed). - Известны параметры LLM-endpoint: URL, модель, ключ, CA, прокси.
- Для Keycloak: issuer, client ID/secret, redirect URI, роли.
- Определён каталог для резервных копий и ответственный за них.
2. Перенос и целостность¶
- Архив получен из доверенного источника (GitHub Releases или внутреннее зеркало).
-
SHA256SUMSполучен отдельно от архива. - Linux:
sha256sum -c SHA256SUMS— все строкиOK. - macOS:
shasum -a 256 -c SHA256SUMS— все строкиOK. - Windows:
Get-FileHash -Algorithm SHA256совпал сSHA256SUMS. - При расхождении файл не запускался; перенос повторён.
- Для управляемого парка хеш добавлен в allowlist (WDAC/AppLocker/MDM/fapolicyd).
3. Установка¶
- Архив распакован в отдельный каталог.
-
bin/synth --version(илиsynth.cmd --version) отвечает. - Установщик из бандла выполнен от нужного пользователя (system — root, user — без root).
- Linux: unit-файл systemd (system или user) создан и активен.
- macOS: LaunchAgent загружен; LaunchDaemon не используется.
- Windows: установка per-user; служба Windows не создавалась.
- Каталог данных создан; владелец и права корректны (не
777). - API-ключ создан/задан и хранится с ограниченным доступом (
0600/ACL). - Автозапуск настроен (если нужен): systemd / LaunchAgent / Task Scheduler «At log on».
4. Вход и роли¶
- Выбран режим: Keycloak (OIDC) или API-key.
- Keycloak: issuer доступен, redirect URI совпадает, роли
admin/user/lead/auditor. - Keycloak: мапперы ролей включают
id.token.claimиaccess.token.claim. - Keycloak: CA IdP добавлен в доверие (если внутренний).
- API-key: ключ даёт
ADMIN; режим не используется для многопользовательской команды. - Проверен вход в UI и отсутствие
401в логах.
5. LLM¶
- Провайдер добавлен (
synth config provider listпоказывает запись). - URL соответствует типу: OpenAI —
/v1, Ollama — без/v1, Anthropic — базовый URL. - Ключ провайдера хранится в env/Secret, не в репозитории и не в истории shell.
- Модель по умолчанию выбрана (админка «Модели» или API).
- Проверен короткий чат с моделью.
- Для внутреннего CA настроен
security.tls/SYNTH_TLS_CA_FILE. - Для прокси настроены
proxy/SYNTH_PROXY_*; локальная Ollama вnoProxy. - Модели не пытались скачаться в Synth: их поставляет владелец Ollama/endpoint.
6. Сеть и безопасность¶
- Наружу открыт только необходимый порт;
4300недоступен из недоверенной сети. - TLS перед Synth терминируется reverse proxy (для серверного сценария).
- Firewall настроен (
firewall-cmd/ufw). - SELinux не отключён; контекст
/opt/synthисправлен при необходимости. -
rejectUnauthorized: false/curl -kне используются в рабочем контуре. - Gatekeeper/SmartScreen не отключены глобально; артефакт добавлен в allowlist по хешу или одобрен согласно политике.
- Секреты (
secrets/, env-файлы, Secret) не попадают в git и логи.
7. Эксплуатация¶
-
curl -fsS http://127.0.0.1:4300/health— успех. -
curl -fsS http://127.0.0.1:4300/ready— успех. -
synth doctor— без ошибок. - Логи доступны: journalctl / файл /
docker compose logs/kubectl logs. -
synth backup --out <dir>создаёт архив; архив проверен. -
synth restore <archive> --dry-runпроходит. - Определён регламент backup и тестового восстановления.
- Известно, что
synth updateв офлайне не работает. - Описан порядок обновления: backup → замена бандла →
synth migrate --yes→ проверка. - Описан откат: предыдущий бандл + restore backup (схема может быть несовместима).
8. Приёмка¶
- Интерфейс открывается, вход работает.
- Создаётся сессия и проект; сообщение сохраняется после перезапуска.
- Файловые инструменты работают в workspace проекта.
-
grep_filesнаходит строку в тестовом файле. - Git-инструменты работают (если установлен Git; на Windows — Git for Windows).
-
execute_shellработает (или зафиксировано ограничение Windows без Git). - Keycloak: пользователь с ролью
USERне видит админку;ADMINвидит. - API-key: ключ даёт доступ; неверный ключ —
401. - Перезапуск сервиса не теряет данные и настройки.
9. Подписи¶
| Роль | Имя | Дата | Подпись |
|---|---|---|---|
| Установка | |||
| Проверка ИБ | |||
| Владелец инстанса |