Перейти к содержанию

Чек-лист закрытого контура

Одностраничный чек-лист установки и приёмки 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. Подписи

Роль Имя Дата Подпись
Установка
Проверка ИБ
Владелец инстанса

Что дальше