Help:Introduction: Difference between revisions

From Svacer Wiki
(add Alt Linux supported version)
(remove obsolete components from the distribution list)
Line 42: Line 42:
| bin/svacer<br>bin/svacer.exe
| bin/svacer<br>bin/svacer.exe
| Бинарный файл сервера и утилита для импортирования результатов. Режим работы зависит от аргументов
| Бинарный файл сервера и утилита для импортирования результатов. Режим работы зависит от аргументов
|-
| support/svace-migration/svace-migration.jar
| Утилита подготовки данных для импорта из старого сервера историй.
Требует JDK для запуска. Может использоваться JDK из состава дистрибутива Svace
|-
|-
| extra/docker-compose*.yml || Docker-compose файлы для запуска БД PostgreSQL и Svacer в docker-контейнерах
| extra/docker-compose*.yml || Docker-compose файлы для запуска БД PostgreSQL и Svacer в docker-контейнерах
|-
| integrations/vscode || Расширение для Visual Studio Code и документация на него
|}
|}



Revision as of 15:39, 22 February 2024

Введение

Сервер историй Svacer (Svace Server) предназначен для хранения и обработки результатов работы статического анализатора Svace. Он разработан с целью заменить старый сервер историй, встроенный в анализатор Svace. Допускается одновременное использование старого и нового серверов.

Svacer состоит из единственного исполняемого файла, который можно запустить как в режиме сервера для хранения и обработки результатов анализа (при этом требуется PostgreSQL с созданной для Svacer БД), так и использовать как клиент для взаимодействия с этим сервером (в этом случае никаких зависимостей не требуется). Будучи запущенным в качестве сервера, Svacer предоставляет web-UI и REST API для взаимодействия. При использовании Svacer как клиента доступны команды для импорта предупреждений, загрузки их на сервер и другие возможности взаимодействия с сервером.

Термины

Project Проект, подлежащий анализу. По умолчанию именем проекта считается имя директории, в которой был запущен svace build и svace analyze.

На сервере проект содержит в себе несколько веток с результатами работы анализатора

Branch (ветка) Ветка в проекте с результатами работы анализатора. По умолчанию проект имеет одну ветку — master
Snapshot (снимок) Результат работы svace analyze, импортированный в промежуточное хранилище или на сервер. Содержит:
  • имя проекта;
  • имя ветки;
  • результаты анализа (предупреждения);
  • исходники, которые были включены в build, на котором производился анализ;
  • вспомогательная информация для навигации по исходникам;
  • дополнительные данные;

Допускается импортирование снимков без исходного кода и дополнительной информации

Marker (маркер, предупреждение) Предупреждение от Svace с информацией о позиции в исходном файле
Svacer Svace History Server, а также исполняемый файл, содержащий код сервера
Разметка Проставление статуса маркера с опциональным добавлением комментария

Состав дистрибутива

bin/svacer
bin/svacer.exe
Бинарный файл сервера и утилита для импортирования результатов. Режим работы зависит от аргументов
extra/docker-compose*.yml Docker-compose файлы для запуска БД PostgreSQL и Svacer в docker-контейнерах

Зависимости

PostgreSQL версии 10 и выше. Требуется только при запуске Svacer в роли сервера Параметры подключения определяются аргументом при запуске сервера или переменной окружения SVACER_PG_URL. По умолчанию, используется следующий connect URL:

postgres://svace:svace@0.0.0.0:5432/svace
Можно использовать PostgreSQL в docker-контейнере.
Настоятельно рекомендуем использовать выделенный сервер для хранения БД, особенно в production

libc.so
libpthread.so
libdl.so
linux-vdso.so
Серверная часть написана на Go с CGO_ENABLED=1 ввиду необходимости читать sqlite-файлы из результатов работы анализатора Svace
Выделенная директория для хранения object storage Сервер использует встроенную key-value database для хранения информации об исходном коде: контент-файлов и вспомогательной информации для навигации
Svace Для импорта данных на сервер историй требуется наличие Svace на хосте, откуда происходит импорт. Svace используется для получения информации из .svace-dir

Используемые порты

Приведены значения по умолчанию. Все значения могут быть переопределены.

3002 Используется для предоставления gRPC API.

gRPC API является внутренним и предназначен для загрузки данных на сервер

8080 Используется для предоставления REST API и web-сервера для предоставления web-UI

Системные требования

CPU x86-64. Для обработки больших проектов рекомендуется не менее 8 ядер
RAM От 4 Гб. Для обработки больших проектов рекомендуется не менее 16 Гб
HDD От 1 Гб до нескольких Тб при хранении множества снимков больших проектов
OS
  • Ubuntu 18 и выше
  • Debian 10 и выше
  • RHEL/CentOS 7 и 8
  • Astra Linux Special Edition 1.7, базовый уровень защищенности
  • Alt Linux p8 и выше
  • Microsoft Windows 10
Browser

В качестве клиента для веб-интерфейса Svacer

  • Chrome 103 и выше
  • Firefox 100 и выше
  • Opera 89 и выше
  • Safari 16 и выше
  • Edge 103 и выше