SecurityFlow Кабинет лицензий , откроется в новой вкладке

Документация / Руководство администратора / Настройки платформы

Настройки Radar

Обновлено 20 октября 2026

Настройки Radar живут в двух местах:

  • в интерфейсе Radar, меню "Настройки": "Очистка", "Уч. Данные Docker", "Воркеры", "Персонализация", "DNS", "Таймаут Пайплайнов";
  • в Core, "Radar" → "Настройки": подключение к Radar, SSH-ключ для репозиториев, учётные данные реестра для сканеров.

Как Radar выполняет пайплайны: Как работает Radar. Джобы и последовательности: Джобы и последовательности.

Токен доступа

У Radar нет пользователей и ролей. Доступ к интерфейсу и API даёт один общий токен доступа:

  • администратор входит в интерфейс Radar по нему: поле "Токен Авторизации", кнопка "Войти с Токеном";
  • воркеры Radar передают его в API Radar из параметра ACCESS_TOKEN;
  • Core передаёт его в API Radar из поля "Токен доступа".

Токен передаётся в заголовке Authorization: Bearer <токен>. Radar хранит только хеш bcrypt и сам токен показать не может. Храните токен в хранилище секретов и передавайте администраторам защищённым каналом.

Выпуск при установке

Токен выпускает команда SecurityFlow при установке:

  1. Генерирует случайный токен.
  2. Задаёт его в параметре ACCESS_TOKEN для API и воркеров Radar.
  3. При первом запуске API записывает хеш токена в свою базу, если токена там ещё нет.
  4. Тот же токен вносится в Core: "Radar" → "Настройки" → "Токен доступа".

ACCESS_TOKEN в окружении API включает ещё и фоновые задачи Radar: проверку таймаутов раз в 10 секунд и сбор статистики времени джоб раз в час. Без него таймауты не срабатывают. Значение ACCESS_TOKEN должно совпадать с токеном, созданным в Radar.

Смена токена

Меняйте токен при компрометации, смене администраторов и по регламенту ротации секретов. Смену выполняет команда SecurityFlow по заявке.

  1. Команда SecurityFlow записывает хеш нового токена в базу Radar на место старого и задаёт новое значение ACCESS_TOKEN для API и воркеров.
  2. API и воркеры Radar перезапускаются. Старый токен перестаёт приниматься после перезапуска API.
  3. Администратор вносит новый токен в Core: "Radar" → "Настройки" → "Токен доступа" - и проверяет "Статус подключения".
  4. Администраторы входят в интерфейс Radar с новым токеном.

Перезапуск останавливает сканы

При старте API Radar останавливает все пайплайны в статусах "В ожидании" и "Выполняется". Планируйте смену токена на время без сканирования.

Не удаляйте токен из базы Radar

Если в базе нет токена, API при старте удаляет все джобы и создаёт их заново из поставки. Свои джобы и изменённые настройки джоб, в том числе пути образов, пропадут. Новый токен записывают на место старого.

Сменить токен только в параметре ACCESS_TOKEN нельзя: API запишет новое значение, лишь когда токена в базе нет, а воркеры с новым значением получат отказ и не возьмут пайплайны в работу.

Ограничьте сетевой доступ к интерфейсу и API Radar: к ним должны обращаться только Core, воркеры Radar и администраторы. Сетевые потоки: Сетевое взаимодействие.

Подключение Core к Radar

Раздел Core: "Radar" → "Настройки". Нужна роль с правом "Radar": "Изменение" и лицензия, которая открывает Radar: корпоративная или Radar.

Аутентификация

Шаг 1 "Аутентификация":

Поле Что задаёт По умолчанию
"Radar URL" базовый адрес Radar, например https://radar.example.ru/; косую черту в конце Core добавит сам -
"Токен доступа" токен доступа Radar; хранится зашифрованным -
"Проверять SSL" проверка TLS-сертификата Radar включено

Блок "Статус подключения" показывает два признака. Кнопка "Проверить подключение" обновляет их.

Признак Норма Ошибка и что проверить
доступность "Подключено" "Недоступно: проверьте ваш Radar URL" - адрес, сеть, сертификат
токен "Аутентифицировано" "Не аутентифицировано: проверьте ваш токен доступа" - токен

Через API: GET /api/v1/ci/health-check/ возвращает {"is_healthy": true, "is_authenticated": true}.

Отчёты Radar отправляет обратно в Core на "Внутренний URL приложения" из "Глобальные настройки" → "Рабочий процесс": <внутренний URL>api/v1/scan/import/. Этот адрес должен открываться из сети воркеров Radar.

Окружение пайплайнов

Шаг 2 "Настройки окружения пайплайнов". Значения Core передаёт в каждый пайплайн переменными:

Поле Переменная Скрытая Назначение
"Приватный SSH ключ" PRIVATE_SSH_KEY да клонирование репозиториев джобой Code Downloader; один ключ на все репозитории
"Пользователь Docker-репозитория" DOCKER_REGISTRY_USER нет доступ сканеров образов к реестру
"Пароль Docker-репозитория" DOCKER_REGISTRY_PASSWORD да то же
"Адрес Docker-репозитория" DOCKER_REGISTRY_ADDRESS нет то же

Значения хранятся в Core зашифрованными. Для реестров с интеграцией в Core учётные данные подставляются автоматически.

Публичную часть SSH-ключа добавьте в системы контроля версий как ключ только для чтения.

Скрытые переменные видны сканерам

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

Учётные данные реестра

Radar скачивает образ джобы перед каждым запуском. Если образ лежит в закрытом реестре, нужны учётные данные. Их два вида:

Где Для чего Как попадают к джобе
Radar: "Настройки" → "Уч. Данные Docker" скачать образ самой джобы привязываются к джобе полем "Учетные данные"; перед скачиванием Radar выполняет вход в реестр
Core: "Radar" → "Настройки", шаг 2 сканировать образы из закрытого реестра переменные DOCKER_REGISTRY_* в окружении джобы

Экран "Уч. Данные Docker" в Radar:

Поле Что задаёт
"Docker-реджистри" адрес реестра, например registry.example.ru
"Имя пользователя" учётная запись реестра
"Пароль" пароль или токен; API возвращает только признак, что пароль задан

Тот же список доступен в Core: "Radar" → "Настройки", блок "Учетные данные Docker для получения образов джоб". Он работает, когда подключение к Radar настроено.

Пароли Radar шифрует ключом из параметра установки DOCKER_ENCRYPTION_TOKEN длиной 16 или 32 байта. После смены ключа сохранённые пароли не расшифровываются: удалите и создайте учётные данные заново.

Воркеры

Экран "Воркеры" только показывает состояние, настроек на нём нет.

Блок Что показывает
"Пайплайн" воркеры, которые выполняют пайплайны
"Утилиты" воркеры технических задач: остановка джоб, очистка образов и томов
"Воркеры:", "Потоки:", "Всего:", "Используется:" число воркеров, процессов и занятых процессов

Нет ни одного воркера - экран показывает "Нет Доступных Воркеров", пайплайны не выполняются.

  • Один процесс воркера выполняет один пайплайн. Джобы внутри пайплайна идут по очереди.
  • Одновременно выполняется столько пайплайнов, сколько процессов у всех воркеров пайплайнов. Процессов на воркер - не больше значения параметра установки MAX_SCALEWORKERS_COUNT, по умолчанию 2.
  • Лимитов CPU и памяти на контейнеры сканеров Radar не ставит. Ресурсы закладывайте на уровне узлов воркеров: Расчёт ресурсов.

Изменить число воркеров и процессов - задача команды SecurityFlow: Запуск, остановка и масштабирование.

API: GET /api/v1/workers/total/ и GET /api/v1/workers/active/.

DNS

Экран "DNS" задаёт DNS-серверы для контейнеров джоб. Подсказка экрана: "Значения DNS используются в джобах для работы с вашими доменами".

Элемент Назначение
"Адрес сервера" IP-адрес DNS-сервера
"Комментарий" пояснение
"Добавить Адрес Сервера" ещё один сервер
"Сохранить DNS" сохранить список
  • Список пуст - контейнеры джоб используют DNS демона Docker.
  • Записи без адреса пропускаются.
  • Используйте, когда сканеры должны разрешать внутренние домены, которых не знает DNS по умолчанию на узлах воркеров.

После изменения запустите тестовый пайплайн с джобой по домену и проверьте в логе, что домен разрешается.

API: GET, POST /api/v1/dns/.

Таймауты

Таймаут Где задаётся Единица 0 Что происходит
джобы поле джобы "Таймаут джобы (в минутах)" минуты без таймаута контейнер джобы останавливается, джоба получает "Джоба прервана по тайм-ауту"
пайплайна "Настройки" → "Таймаут Пайплайнов" → "Глобальный таймаут пайплайнов (в минутах)" минуты без таймаута пайплайн, который выполняется дольше, останавливается со статусом "Тайм-аут"
  • По умолчанию глобальный таймаут - 0.
  • Таймауты проверяются раз в 10 секунд, если у API задан ACCESS_TOKEN.
  • Джоба, прерванная по таймауту, останавливает пайплайн, если у неё выключено "Разрешить падение".

Задайте глобальный таймаут: зависший пайплайн занимает процесс воркера, пока его не остановят.

Фиксированные таймауты, которые не настраиваются:

Запрос Таймаут
отправка отчёта в Core 20 секунд; не уложились - джоба завершается с ошибкой
Core → Radar, чтение и изменение 10 секунд
Core → Radar, запуск пайплайнов 60 секунд

API: GET, POST /api/v1/timeout/ с полем pipelines_timeout.

Очистка

Экран "Очистка" задаёт срок хранения томов и записей пайплайнов.

Поле Что удаляется По умолчанию Ограничения
"Дней хранить артефакты до очистки" тома Docker старше N дней по дате создания: код из репозиториев, отчёты, артефакты джоб 1 0 и больше
"Дней хранить пайплайны до очистки" записи завершённых пайплайнов старше N дней вместе с джобами и логами 1 не меньше срока артефактов
  • Очистка запускается раз в сутки в 00:00 UTC: часовой пояс планировщика Radar не настраивается.
  • После очистки артефакты и логи удалённых пайплайнов не скачать.
  • Значение 0 удаляет все неиспользуемые тома при каждом запуске, в том числе общий том пайплайна, который в полночь ждёт следующую джобу. Оставляйте не меньше 1.

Кнопка "Удалить Образы Джоб" удаляет с демона Docker все образы, указанные в настройках джоб. Образ одной джобы удаляет "Удалить Образ" в её карточке. Следующий запуск скачает образ заново.

API: GET, POST /api/v1/cleaner-config/.

Очистка затрагивает все тома демона Docker

Очистка удаляет все неиспользуемые тома демона Docker, на котором Radar запускает сканеры, а не только тома Radar. Запускайте Radar на выделенном демоне Docker и не размещайте на нём другие контейнеры и тома.

Персонализация

Экран "Персонализация" меняет "Тему" и язык интерфейса Radar: русский, английский или узбекский. На работу пайплайнов не влияет.

Проверка

  1. В Core "Статус подключения" показывает "Подключено" и "Аутентифицировано".
  2. В Radar на экране "Воркеры" есть воркеры пайплайнов и утилит.
  3. Запустите аудит тестового продукта из Core: пайплайн появился в Radar и дошёл до статуса "Завершен", в Core появился аудит с уязвимостями.
  4. Без входа API Radar отвечает на GET /api/v1/health-check/ телом {"is_healthy": true}.