|
| 1 | +--- |
| 2 | +hide: |
| 3 | + - footer |
| 4 | +--- |
| 5 | + |
| 6 | +# Плагин для Sfera |
| 7 | + |
| 8 | +## Установка плагина |
| 9 | + |
| 10 | +Плагин поставляется в виде jar-файла. |
| 11 | + |
| 12 | +Для установки плагина в **Sfera** необходимо: |
| 13 | + |
| 14 | +1. Поместить jar-файл плагина и файл конфигурации `codescoring.yaml` в папку `plugins`, находящуюся в рабочей директории PPDL приложения. |
| 15 | +2. (*Опционально*) Для управления включением/отключением плагинов можно создать в папке `plugins` файлы `enabled.txt` или `disabled.txt`. |
| 16 | + * В файле должны быть перечислены имена включаемых/отключаемых плагинов. |
| 17 | + * Логика включения/выключения: |
| 18 | + * плагин в `disabled.txt` - отключен; |
| 19 | + * `enabled.txt` не пуст и при этом не содержит плагин - отключен; |
| 20 | + * в остальных случаях плагин включен. |
| 21 | + |
| 22 | +## Настройка плагина |
| 23 | + |
| 24 | +Для настройки плагина используется файл `codescoring.yaml`. |
| 25 | + |
| 26 | +Пример содержания файла: |
| 27 | + |
| 28 | +```yaml |
| 29 | + |
| 30 | +codeScoringAPI: |
| 31 | + # Базовый URL для всех эндпоинтов CodeScoring API. |
| 32 | + # Обязательный параметр. |
| 33 | + # Пример: https://host:port или https://host |
| 34 | + url: |
| 35 | + |
| 36 | + # Ваш API токен CodeScoring для аутентификации. |
| 37 | + # Обязательный параметр. |
| 38 | + token: |
| 39 | + |
| 40 | + # Размер пула соединений HTTP-клиента к сервису CodeScoring BE. |
| 41 | + connectionPoolSize: 50 |
| 42 | + |
| 43 | + # По умолчанию, если CodeScoring API не ответил в течение 60 секунд, запрос будет отменен. |
| 44 | + # Этот параметр позволяет настроить длительность таймаута в секундах. |
| 45 | + timeout: 60 |
| 46 | + |
| 47 | + # Если вы используете прокси, необходимо указать Hostname/IP и порт. |
| 48 | + proxy: |
| 49 | + host: |
| 50 | + port: |
| 51 | + |
| 52 | +# Если установлено значение 'false', разрешает загрузку артефактов независимо от ошибок CodeScoringAPI или плагина |
| 53 | +blockOnErrors: true |
| 54 | + |
| 55 | +# Если установлено значение 'true', плагин будет сканировать все поддерживаемые репозитории, |
| 56 | +# за исключением указанных в разделе "excludeRepositories". |
| 57 | +scanAllRepositories: false |
| 58 | + |
| 59 | +# Настройки по умолчанию для всех репозиториев. Могут быть переопределены в настройках конкретных репозиториев (repositories.repo-name) |
| 60 | +defaults: |
| 61 | + dockerRegistryUrl: registry.my.domain |
| 62 | + |
| 63 | + # warmup | Прогрев кэша сканирования без мониторинга запросов, без блокировки |
| 64 | + # spectator | Прогрев кэша сканирования с мониторингом запросов, без блокировки |
| 65 | + # moderate | Блокировка на основе политик с использованием результатов кэша, разрешена загрузка непросканированных компонентов |
| 66 | + # strict | Блокировка на основе политик с использованием результатов кэша, загрузка непросканированных компонентов заблокирована |
| 67 | + # strict_wait | Блокировка на основе политик, ожидание завершения сканирования компонента |
| 68 | + # значение по умолчанию — strict_wait, если оно не указано в настройках или в случае опечатки |
| 69 | + workMode: strict_wait |
| 70 | + |
| 71 | + # Позволяет этому пользователю пропускать сканирование |
| 72 | + skipScanUser: codescoring |
| 73 | + |
| 74 | + # URL менеджера репозиториев для применения политик CodeScoring. |
| 75 | + # Значение ДОЛЖНО быть равно Repository Manager URL в CodeScoring |
| 76 | + # Пример: https://sfera.my.domain.ru |
| 77 | + repositoryManagerUrl: |
| 78 | + |
| 79 | +# Настройки для конкретных репозиториев |
| 80 | +# Пример: |
| 81 | +# repositories: |
| 82 | +# docker-remote: |
| 83 | +# docker-local: |
| 84 | +# dockerRegistryUrl: another-registry.my.domain |
| 85 | +# skipScanUser: anotheruser |
| 86 | +# workMode: spectator |
| 87 | +# pypi-remote: |
| 88 | +# workMode: warmup |
| 89 | +repositories: |
| 90 | + |
| 91 | +# Список исключенных репозиториев. Используется, если scanAllRepositories=true |
| 92 | +# Пример: |
| 93 | +# excludeRepositories: |
| 94 | +# - npm-remote |
| 95 | +# - maven-local |
| 96 | +excludeRepositories: |
| 97 | + |
| 98 | +# Список типов репозиториев для сканирования. Используется, если scanAllRepositories=true |
| 99 | +# Поддерживаемые значения: maven, npm, pypi, nuget, go, gems, debian, yum, alpine, docker |
| 100 | +# Пример: |
| 101 | +# repositoryTypes: |
| 102 | +# - npm |
| 103 | +# - go |
| 104 | +repositoryTypes: |
| 105 | +``` |
| 106 | +
|
| 107 | +### Описание параметров |
| 108 | +
|
| 109 | +- **codeScoringAPI** - настройки параметров взаимодействия плагина с платформой CodeScoring; |
| 110 | + - **url** – адрес платформы CodeScoring (обязательно указание протокола); |
| 111 | + - **token** – ключ для авторизации вызовов API (*Создается из CodeScoring раздела `Profile -> Home`*); |
| 112 | + - **connectionPoolSize** – размер пула соединений с платформой CodeScoring; |
| 113 | + - **timeout** - время ожидания ответа (в секундах). По умолчанию, если CodeScoring API не отвечает в течение 60 секунд, запрос будет отменен; |
| 114 | + - **proxy** - настройки прокси-сервера; |
| 115 | + - **host** - хост/IP; |
| 116 | + - **port** - порт; |
| 117 | +- **blockOnErrors** - блокирование загрузки компонентов в случае ошибки при взаимодействии с платформой CodeScoring; |
| 118 | +- **scanAllRepositories** - подключение всех поддерживаемых репозиториев за исключением указанных в параметре **excludeRepositories**; |
| 119 | +- **defaults** – настройки сканирования по умолчанию для всех подключенных репозиториев; |
| 120 | + - **dockerRegistryUrl** – адрес docker registry; |
| 121 | + - **workMode** – режим работы плагина. Условия каждого режима работы описаны в секции ниже; |
| 122 | + - **skipScanUser** – пользователь, для которого пропускается сканирование компонентов. Необходимо для того, чтобы CodeScoring мог самостоятельно забрать компонент для сканирования; |
| 123 | + - **repositoryManagerUrl** - URL Sfera. Тот же URL должен быть указан в CodeScoring для применения политик по репозиториям. |
| 124 | +- **repositories** – список репозиториев, для которых работает сканирование компонентов. Для каждого репозитория можно отдельно указать параметры, как в параметре **defaults**; |
| 125 | +- **excludeRepositories** - список названий репозиториев, исключенных из обработки плагином. |
| 126 | + |
| 127 | +### Настройка режимов работы {: #work-mode-configuration } |
| 128 | + |
| 129 | +Режим работы плагина определяется переменной **workMode** в файле `codescoring.yaml`. |
| 130 | + |
| 131 | +Плагин имеет 6 режимов работы, определяющих строгость проверки компонентов перед загрузкой. |
| 132 | + |
| 133 | +- **warmup** – загрузка данных в кэш CodeScoring без блокировки компонентов; |
| 134 | +- **spectator** – загрузка данных в кэш CodeScoring без блокировки компонентов, сохранение результатов запросов компонентов на платформе; |
| 135 | +- **moderate** – блокировка компонентов, не прошедших проверку политик. Разрешена загрузка непросканированных компонентов; |
| 136 | +- **strict** – блокировка компонентов, не прошедших проверку политик. Запрещена загрузка непросканированных компонентов; |
| 137 | +- **strict_wait** – блокировка компонентов, не прошедших проверку политик. Ожидание проверки для непросканированных компонентов. |
| 138 | + |
| 139 | +**Важно**: выбранный режим работы будет влиять на **все** репозитории, указанные в переменной `repositories`. |
| 140 | + |
| 141 | +## Блокировка компонента |
| 142 | + |
| 143 | +При блокировании загрузки компонента в консоли пользователя отображается одна из следующих причин блокировки: |
| 144 | + |
| 145 | +- **"The download has been blocked in accordance with the policies configured in CodeScoring"** – блокировка компонента согласно настроенным на платформе политикам; |
| 146 | +- **"The component has not yet been scanned by CodeScoring, it is scheduled to be scanned shortly. The download is blocked according to the plugin settings"** – блокировка непросканированного компонента с последующим запуском сканирования. Используется в режиме `strict`; |
| 147 | +- **"The download has been blocked due to the failure of the scan of the component in CodeScoring"** – не удалось просканировать компонент; |
| 148 | +- **"The download has been blocked due to the wrong mode of the plugin"** – используется некорректный [режим работы плагина](#work-mode-configuration); |
| 149 | +- **"The download has been blocked due to the timeout of the scan of the component in CodeScoring"** – истекло время ожидания сканирования компонента. Используется в режиме `strict_wait`; |
| 150 | +- **"The download has been blocked, because registry is not configured in CodeScoring"** – отсутствует соответствующий Registry в платформе. |
| 151 | + |
| 152 | +Ответ также содержит ссылку на страницу компонента в CodeScoring с информацией о сработавших политиках безопасности и найденных уязвимостях: |
| 153 | + |
| 154 | + |
0 commit comments