Требования к установке¶
Операционная система¶
Установка on-premise версии возможна на GNU/Linux дистрибутивы (включая отечественные: AstraLinux, AltLinux, RedOS и иные).
Ресурсы сервера¶
Базовые требования для рабочей среды¶
- Минимально допустимые требования для серверов приложения: 32Gb RAM, 16 ядер CPU.
Рекомендация по ресурсам
Для установки в рабочей среде не рекомендуется опускаться ниже указанных значений, так как это может приводить к деградации производительности и нестабильной работе платформы.
Требования к сервисам данных¶
- PostgreSQL: от 32Gb RAM;
- Redis: от 2Gb RAM;
- Размер
shmдля PostgreSQL: не менее 4Gb; - При использовании внешней базы данных для PostgreSQL рекомендуется от 64Gb RAM.
Требования к хранилищу¶
- Для модуля CodeScoring.SCA при использовании VCS-проектов объем тома
analysis-rootрассчитывается из размера анализируемых репозиториев, умноженного на три; - Для модуля CodeScoring.SCA при использовании CLI-проектов и для модуля CodeScoring.OSA отдельные требования по формуле
×3не предъявляются; - При оффлайн-установке для базы данных CodeScoring Index необходимо выделять от 300Gb с запасом под последующие обновления;
Пример высоконагруженной инсталляции¶
- Сервер базы данных: 96Gb RAM, 24 ядер CPU;
- Сервер приложений: 192Gb RAM, 48 ядер CPU.
Поддерживаемые версии внешних сервисов¶
При использовании собственных экземпляров баз данных убедитесь, что их версии соответствуют требованиям ниже:
Redis¶
- Минимальная версия: 7.0.0;
- Протестированная версия: 7.4.6.
PostgreSQL¶
- Минимальная версия: 15.x (любая минорная);
- Протестированная версия: 15.15.
Использование других мажорных веток не гарантирует корректный результат и может приводить к ошибкам или снижению производительности.
Внешние запросы¶
Для установки системы должен быть доступен Docker Registry с образами CodeScoring, адрес которого предоставляется вместе с ключом активации.
Для корректной работы с сервера также должен быть доступен адрес index.codescoring.ru с постоянно актуализируемой базой известных пакетов, их атрибутов и уязвимостей.
Из Index API платформа получает обогащенную информацию по найденным зависимостям, их лицензиям и уязвимостями.
Общая архитектура работы представлена на изображении ниже.

Из платформы в облако CodeScoring не отправляется исходный код, но для получения информации по зависимостям и лицензионного контроля отправляются:
- анонимизированные данные по найденным манифестам пакетных менеджеров и их содержимому;
- хэши файлов исходного кода для поиска прямых включений Open Source библиотек в код проектов;
- количество активных авторов за последний год;
- количество проектов в системе;
- версия платформе.
Пути манифестов и названия хэшируемых файлов специально анонимизируются. От платформы в облако не уходят хэши файлов, размер которых не превышает 512 байт.
Пример содержимого запроса от платформе к Index API с данными по манифестам пакетных менеджеров:
[
{
"path": "114bc73d-a9ba-433d-9a3e-f2b29d822204",
"type": "file",
"extension": ".txt",
"result": {
"platform": "pypi",
"dependencies": [
{
"name": "django",
"requirement": "==3.0.0",
"resolved_requirement": "3.0.0",
"env": "dev"
}
],
"kind": "manifest",
"success": true,
"extra": {}
}
},
{
"path": "efde2364-dc0c-45a9-905a-a487b3361ac7",
"type": "file",
"extension": ".xml",
"result": {
"platform": "maven",
"dependencies": [
{
"name": "org.liquibase:liquibase-core",
"requirement": "3.6.2",
"resolved_requirement": "3.6.2",
"env": "compile"
},
{
"name": "xpp3:xpp3",
"requirement": "1.1.4c",
"resolved_requirement": "1.1.4c",
"env": "compile"
}
],
"kind": "manifest",
"success": true,
"extra": {}
}
},
{
"path": "49dd4c09-b5de-474a-998a-3ce0a94a5221",
"type": "file",
"extension": ".txt",
"result": {
"platform": "pypi",
"dependencies": [
{
"name": "apt-wrapper",
"requirement": "==1.18",
"resolved_requirement": "1.18",
"env": "runtime"
},
{
"name": "django",
"requirement": "==2.0.0",
"resolved_requirement": "2.0.0",
"env": "runtime"
},
{
"name": "text-unidecode",
"requirement": "==1.3",
"resolved_requirement": "1.3",
"env": "runtime"
}
],
"kind": "manifest",
"success": true,
"extra": {}
}
}
]
Пример содержимого запроса от платформы к Index API с данными по хэшам файлов исходного кода: