Help:Introduction: Difference between revisions
(Created page with "Заготовка") |
(bump recommended postgres version) |
||
(50 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Help]] | |||
== Введение == | |||
Svacer предназначен для хранения и обработки результатов статического анализатора Svace и других анализаторов, поддерживающих формат [[Help:Sarif#Загрузка_на_сервер_из_SARIF|SARIF]]. | |||
Svacer состоит из двух исполняемых файлов: сервера и клиента | |||
* Сервер используется для хранения и обработки результатов анализа, для [[Help:Installation|запуска]] нужен PostgreSQL с созданной БД | |||
* Клиент — для взаимодействия с сервером, для него никакие зависимости не требуются | |||
Запущенный сервер Svacer предоставляет [[Help:UI_manual#Авторизация_в_пользовательском_интерфейсе_сервера_Svacer|web-UI]] и [[Help:Public_API|REST API]] для взаимодействия. | |||
В клиенте Svacer доступны команды для [[Help:Import_from_Svace|импорта]] предупреждений, [[Help:Import_from_Svace#Загрузка_данных_на_сервер|загрузки]] их на сервер и прочего взаимодействия с сервером. | |||
=== Термины === | |||
{| class="wikitable" | |||
|- | |||
| Project | |||
| Проект, подлежащий анализу. По умолчанию именем проекта считается имя директории, в которой был запущен ''svace build'' и ''svace analyze''. | |||
На сервере проект содержит в себе несколько веток с результатами работы анализатора | |||
|- | |||
| Branch (ветка) | |||
| Ветка в проекте с результатами работы анализатора. По умолчанию — master | |||
|- | |||
| Snapshot (снимок) | |||
| Результат работы ''svace analyze'', импортированный в промежуточное хранилище или на сервер. Содержит: | |||
* имя проекта; | |||
* имя ветки; | |||
* результаты анализа (предупреждения); | |||
* исходники, которые были включены в build, на котором производился анализ; | |||
* вспомогательная информация для навигации по исходникам; | |||
* дополнительные данные; | |||
Допускается импорт снимков без исходного кода и дополнительной информации | |||
|- | |||
| Marker (маркер, предупреждение) | |||
| Предупреждение от статического анализатора с информацией о позиции в исходном файле | |||
|- | |||
| Разметка | |||
| Проставление статуса маркера с опциональным добавлением комментария | |||
|} | |||
=== Состав дистрибутива === | |||
{| class="wikitable" | |||
|- | |||
| bin/svacer-server<br>bin/svacer-server.exe | |||
| Бинарный файл сервера | |||
|- | |||
| bin/svacer<br>bin/svacer.exe | |||
| Бинарный файл клиента | |||
|- | |||
| extra/docker-compose*.yml | |||
| docker-compose файлы для запуска БД PostgreSQL и Svacer в docker-контейнерах | |||
|} | |||
=== Зависимости === | |||
{| class="wikitable" | |||
|- | |||
| PostgreSQL версии 14 и выше. Нужен только для сервера | |||
| Параметры подключения определяются при запуске сервера аргументом '''--pg''' или переменной окружения SVACER_PG_URL. По умолчанию: '''postgres://svace:svace@0.0.0.0:5432/svace'''<br/> | |||
Можно запускать PostgreSQL в docker-контейнере, но в production мы рекомендуем использовать выделенный сервер | |||
|- | |||
| libc.so<br>libpthread.so<br>libdl.so<br>linux-vdso.so | |||
| Серверная часть написана на Go с CGO_ENABLED=1 ввиду необходимости читать sqlite-файлы из результатов работы анализатора Svace | |||
|- | |||
| Директория для хранения object storage | |||
| Сервер использует встроенную key-value database для хранения информации об исходном коде: контент-файлов и вспомогательной информации для навигации | |||
|- | |||
| Svace | |||
| Нужен для импорта результатов анализа из .svace-dir. При этом лицензия на Svace нужна только для анализа, для импорта она не требуется | |||
|} | |||
=== Используемые порты === | |||
Приведены значения по умолчанию. Все значения могут быть переопределены. | |||
{| class="wikitable" | |||
|- | |||
| 3002 | |||
| Используется для предоставления gRPC API (внутренний API для загрузки данных на сервер) | |||
|- | |||
| 8080 | |||
| Используется для REST API и web-сервера для предоставления web-UI | |||
|} | |||
=== Системные требования === | |||
{| class="wikitable" | |||
|- | |||
| CPU | |||
| x86-64. Для больших проектов рекомендуется не менее 8 ядер | |||
|- | |||
| RAM | |||
| От 4 ГБ. При обновлении между версиями лучше не меньше 8 ГБ. Для больших проектов — 16+ ГБ | |||
|- | |||
| HDD | |||
| От 1 ГБ до нескольких ТБ при хранении множества снимков больших проектов | |||
|- | |||
| OS | |||
| | |||
* Ubuntu 18 и выше | |||
* Debian 10 и выше | |||
* RHEL/CentOS 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 и выше | |||
|} |
Latest revision as of 12:55, 11 November 2024
Введение
Svacer предназначен для хранения и обработки результатов статического анализатора Svace и других анализаторов, поддерживающих формат SARIF.
Svacer состоит из двух исполняемых файлов: сервера и клиента
- Сервер используется для хранения и обработки результатов анализа, для запуска нужен PostgreSQL с созданной БД
- Клиент — для взаимодействия с сервером, для него никакие зависимости не требуются
Запущенный сервер Svacer предоставляет web-UI и REST API для взаимодействия.
В клиенте Svacer доступны команды для импорта предупреждений, загрузки их на сервер и прочего взаимодействия с сервером.
Термины
Project | Проект, подлежащий анализу. По умолчанию именем проекта считается имя директории, в которой был запущен svace build и svace analyze.
На сервере проект содержит в себе несколько веток с результатами работы анализатора |
Branch (ветка) | Ветка в проекте с результатами работы анализатора. По умолчанию — master |
Snapshot (снимок) | Результат работы svace analyze, импортированный в промежуточное хранилище или на сервер. Содержит:
Допускается импорт снимков без исходного кода и дополнительной информации |
Marker (маркер, предупреждение) | Предупреждение от статического анализатора с информацией о позиции в исходном файле |
Разметка | Проставление статуса маркера с опциональным добавлением комментария |
Состав дистрибутива
bin/svacer-server bin/svacer-server.exe |
Бинарный файл сервера |
bin/svacer bin/svacer.exe |
Бинарный файл клиента |
extra/docker-compose*.yml | docker-compose файлы для запуска БД PostgreSQL и Svacer в docker-контейнерах |
Зависимости
PostgreSQL версии 14 и выше. Нужен только для сервера | Параметры подключения определяются при запуске сервера аргументом --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 |
|
Browser |
В качестве клиента для веб-интерфейса Svacer
|