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

Миграция на OSA Proxy Go

Этот раздел описывает перенос конфигурации со старой Java/Spring-версии OSA Proxy на OSA Proxy Go. Legacy-конфигурация использовала файл application.yml; Go-версия использует osa-proxy.yml.

Основные изменения

Было в legacy OSA Proxy Стало в OSA Proxy Go
application.yml osa-proxy.yml
codescoring.host codescoring.url
codescoring.proxy-manager-host codescoring.osa-proxy-url
Spring Boot logging через logging.level.ru.codescoring logging.level: debug/info/warn/error
Actuator endpoints /healthz, /metrics, /api/v3/api-docs, /api/swagger/
Глобальный codescoring.work-mode codescoring.work-mode плюс переопределение repository[*].work-mode

Поля codescoring.enable-status-line, codescoring.block-status-code, codescoring.block-on-codescoring-errors и codescoring.remove-blocked-versions сохраняют смысл, но должны быть перенесены в новую структуру osa-proxy.yml.

Новые возможности

  • Поддержка Composer и RubyGems.
  • Переопределение режима работы для отдельного репозитория через repository[*].work-mode.
  • Фильтрация типов файлов на уровне репозитория через repository[*].file-type-filter.
  • Явная настройка HTTP-сервера и HTTP-клиента в http.server и http.client вместо Spring Boot / WebFlux properties.

Пример миграции npm

Legacy-конфигурация:

codescoring:
  host: https://codescoring.example.com
  token: "<token>"
  work-mode: strict_wait
  proxy-manager-host: https://osa-proxy.example.com
  block-on-codescoring-errors: true
  remove-blocked-versions: true

npm:
  enabled: true
  repository:
    - name: internet-npm
      scan-package: true
      scan-manifest: true
      url-encoded-config: true
      registry: https://registry.npmjs.org

Конфигурация для OSA Proxy Go:

codescoring:
  url: https://codescoring.example.com
  token: "<token>"
  work-mode: strict_wait
  osa-proxy-url: https://osa-proxy.example.com
  block-on-codescoring-errors: true
  remove-blocked-versions: true
  block-status-code: 403

npm:
  enabled: true
  repository:
    - name: internet-npm
      scan-package: true
      scan-manifest: true
      work-mode: strict_wait
      url-encoded-config: true
      registry: https://registry.npmjs.org

logging:
  level: info

После миграции npm-клиент использует тот же route name:

npm config set registry https://osa-proxy.example.com/internet-npm/
npm view lodash version

Checklist миграции

  1. Создайте новый файл osa-proxy.yml.
  2. Перенесите URL платформы CodeScoring из codescoring.host в codescoring.url.
  3. Перенесите токен в codescoring.token.
  4. Перенесите внешний URL прокси из codescoring.proxy-manager-host в codescoring.osa-proxy-url.
  5. Выберите глобальный codescoring.work-mode и при необходимости задайте repository[*].work-mode для отдельных репозиториев.
  6. Перенесите секции пакетных менеджеров и проверьте name, registry, scan-manifest, scan-package, url-encoded-config.
  7. Включайте cache.judge.enabled только если доступен Redis и нужно кэширование вердиктов.
  8. Обновите конфигурацию package managers, чтобы они использовали URL OSA Proxy Go.
  9. Проверьте GET /healthz, GET /metrics и один тестовый запрос к каждому включенному типу репозитория.

Что удалить из старой конфигурации

Spring Boot параметры, JVM options и actuator-настройки не являются частью osa-proxy.yml. Для Go-версии не используются endpoints /actuator/metrics и /actuator/prometheus; метрики доступны напрямую по /metrics.

Страница была полезна?