Help:Introduction: Difference between revisions

From Svacer Wiki
(bump recommended postgres version)
(add '8GB for migration' disclaimer)
(One intermediate revision by the same user not shown)
Line 58: Line 58:
{| class="wikitable"
{| class="wikitable"
|-  
|-  
| PostgreSQL версии 14 и выше. Нужен только для сервера
| PostgreSQL версии 10 и выше. Нужен только для сервера
| Параметры подключения определяются при запуске сервера аргументом '''--pg''' или переменной окружения SVACER_PG_URL. По умолчанию: '''postgres://svace:svace@0.0.0.0:5432/svace'''<br/>
| Параметры подключения определяются при запуске сервера аргументом '''--pg''' или переменной окружения SVACER_PG_URL. По умолчанию: '''postgres://svace:svace@0.0.0.0:5432/svace'''<br/>
Можно запускать PostgreSQL в docker-контейнере, но в production мы рекомендуем использовать выделенный сервер
Можно запускать PostgreSQL в docker-контейнере, но в production мы рекомендуем использовать выделенный сервер
Line 100: Line 100:
* Ubuntu 18 и выше
* Ubuntu 18 и выше
* Debian 10 и выше
* Debian 10 и выше
* RHEL/CentOS 8
* RHEL/CentOS 7 и 8
* Astra Linux Special Edition 1.7, базовый уровень защищенности
* Astra Linux Special Edition 1.7, базовый уровень защищенности
* Alt Linux p8 и выше
* Alt Linux p8 и выше
Line 106: Line 106:
|-
|-
| Browser
| Browser
|
|  
В качестве клиента для веб-интерфейса Svacer
В качестве клиента для веб-интерфейса Svacer
* Chrome 103 и выше
* Chrome 103 и выше

Revision as of 15:27, 4 July 2024

Введение

Svacer предназначен для хранения и обработки результатов статического анализатора Svace и других анализаторов, поддерживающих формат SARIF.

Svacer состоит из двух исполняемых файлов: сервера и клиента

  • Сервер используется для хранения и обработки результатов анализа, для запуска нужен PostgreSQL с созданной БД
  • Клиент — для взаимодействия с сервером, для него никакие зависимости не требуются

Запущенный сервер Svacer предоставляет web-UI и REST API для взаимодействия.

В клиенте Svacer доступны команды для импорта предупреждений, загрузки их на сервер и прочего взаимодействия с сервером.

Термины

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

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

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

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

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

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

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

Зависимости

PostgreSQL версии 10 и выше. Нужен только для сервера Параметры подключения определяются при запуске сервера аргументом --pg или переменной окружения SVACER_PG_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-dir. При этом лицензия на Svace нужна только для анализа, для импорта она не требуется

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

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

3002 Используется для предоставления gRPC API (внутренний API для загрузки данных на сервер)
8080 Используется для REST API и web-сервера для предоставления web-UI

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

CPU x86-64. Для больших проектов рекомендуется не менее 8 ядер
RAM От 4 ГБ. При обновлении между версиями лучше не меньше 8 ГБ. Для больших проектов — 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 и выше