Help:Introduction: Difference between revisions
No edit summary |
m (some markup fixes) |
||
(19 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Help]] | |||
== Введение == | == Введение == | ||
Сервер историй '''Svacer''' ( | Сервер историй '''Svacer''' (Svace Server) предназначен для хранения и обработки результатов работы статического анализатора Svace. Он разработан с целью заменить старый сервер историй, встроенный в анализатор Svace. Допускается одновременное использование старого и нового серверов. | ||
Допускается одновременное использование старого и нового серверов. | |||
Svacer состоит из единственного исполняемого файла, который можно запустить как в [[Help:Installation|режиме сервера]] для хранения и обработки результатов анализа (при этом требуется PostgreSQL с созданной для Svacer БД), так и использовать как клиент для взаимодействия с этим сервером (в этом случае никаких зависимостей не требуется). Будучи запущенным в качестве сервера, Svacer предоставляет [[Help:ServerClient#Вход_в_сервер|web-UI]] и [[Help:ServerClient#Публичные_REST_запросы|REST API]] для взаимодействия. При использовании Svacer как клиента доступны команды для [[Help:ServerClient#Процесс_импорта|импорта]] предупреждений, [[Help:ServerClient#Загрузка_данных_на_сервер|загрузки]] их на сервер и другие возможности взаимодействия с сервером. | |||
=== Термины === | === Термины === | ||
Line 15: | Line 9: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| | | Project | ||
| Проект, подлежащий анализу. По умолчанию именем проекта считается имя директории, в которой был запущен ''svace build'' и ''svace analyze''. | | Проект, подлежащий анализу. По умолчанию именем проекта считается имя директории, в которой был запущен ''svace build'' и ''svace analyze''. | ||
На сервере проект содержит в себе несколько | На сервере проект содержит в себе несколько веток с результатами работы анализатора | ||
|- | |- | ||
| | | Branch (ветка) | ||
| Ветка в проекте с результатами работы анализатора. По умолчанию проект имеет одну ветку — master | | Ветка в проекте с результатами работы анализатора. По умолчанию проект имеет одну ветку — master | ||
|- | |- | ||
| | | Snapshot (снимок) | ||
| Результат работы ''svace analyze'', импортированный в промежуточное хранилище или на сервер. Содержит: | | Результат работы ''svace analyze'', импортированный в промежуточное хранилище или на сервер. Содержит: | ||
* имя проекта; | * имя проекта; | ||
Line 32: | Line 26: | ||
Допускается импортирование снимков без исходного кода и дополнительной информации | Допускается импортирование снимков без исходного кода и дополнительной информации | ||
|- | |- | ||
| | | Marker (маркер, предупреждение) | ||
| Предупреждение от Svace с информацией о позиции в исходном файле | | Предупреждение от Svace с информацией о позиции в исходном файле | ||
|- | |- | ||
| | | Svacer | ||
| Svace History Server, а также исполняемый файл, содержащий код сервера | | Svace History Server, а также исполняемый файл, содержащий код сервера | ||
|- | |- | ||
| | | Разметка | ||
| Проставление статуса маркера с опциональным добавлением комментария | | Проставление статуса маркера с опциональным добавлением комментария | ||
|} | |} | ||
=== Состав дистрибутива === | === Состав дистрибутива === | ||
Line 47: | Line 40: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| | | bin/svacer<br>bin/svacer.exe | ||
| Бинарный файл сервера и утилита для импортирования результатов. Режим работы зависит от аргументов | | Бинарный файл сервера и утилита для импортирования результатов. Режим работы зависит от аргументов | ||
|- | |- | ||
| | | support/svace-migration/svace-migration.jar | ||
| Утилита подготовки данных для импорта из старого сервера историй. | | Утилита подготовки данных для импорта из старого сервера историй. | ||
Требует JDK для запуска. Может использоваться JDK из состава дистрибутива Svace | Требует JDK для запуска. Может использоваться JDK из состава дистрибутива Svace | ||
|- | |- | ||
| | | extra/docker-compose*.yml || Docker-compose файлы для запуска БД PostgreSQL и Svacer в docker-контейнерах | ||
|- | |- | ||
| | | integrations/vscode || Расширение для Visual Studio Code и документация на него | ||
|} | |} | ||
=== Зависимости === | === Зависимости === | ||
Line 64: | Line 56: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| PostgreSQL | | PostgreSQL версии 10 и выше. Требуется только при запуске Svacer в роли сервера | ||
версии | |||
| Параметры подключения определяются аргументом при запуске сервера или переменной окружения SVACER_PG_URL. По умолчанию, используется следующий connect URL: | | Параметры подключения определяются аргументом при запуске сервера или переменной окружения SVACER_PG_URL. По умолчанию, используется следующий connect URL: | ||
'''postgres://svace:svace@0.0.0.0:5432/svace'''<br> | '''postgres://svace:svace@0.0.0.0:5432/svace'''<br> | ||
Line 77: | Line 68: | ||
| Сервер использует встроенную key-value database для хранения информации об исходном коде: контент-файлов и вспомогательной информации для навигации | | Сервер использует встроенную key-value database для хранения информации об исходном коде: контент-файлов и вспомогательной информации для навигации | ||
|- | |- | ||
| | | Svace | ||
| Для импорта данных на сервер историй требуется наличие Svace на хосте, откуда происходит импорт. Svace используется для получения информации из .svace-dir | | Для импорта данных на сервер историй требуется наличие Svace на хосте, откуда происходит импорт. Svace используется для получения информации из .svace-dir | ||
|} | |} | ||
=== Используемые порты === | === Используемые порты === | ||
Line 95: | Line 85: | ||
|} | |} | ||
=== Системные требования === | |||
{| class="wikitable" | |||
|- | |||
| CPU | |||
| x86-64. Для обработки больших проектов рекомендуется не менее 8 ядер | |||
|- | |||
| RAM | |||
| От 4 Гб. Для обработки больших проектов рекомендуется не менее 16 Гб | |||
|- | |||
| HDD | |||
| От 1 Гб до нескольких Тб при хранении множества снимков больших проектов | |||
|- | |||
| OS | |||
| | |||
* Ubuntu 18 и выше | |||
* Debian 10 и выше | |||
* RHEL/CentOS 7 и 8 | |||
* Astra Linux Special Edition 1.7, базовый уровень защищенности | |||
* Microsoft Windows 10 (build 19043.2130, build 19044.2130) | |||
|- | |||
| Browser | |||
| | |||
В качестве клиента для веб-интерфейса Svacer | |||
* Chrome 103 и выше | |||
* Firefox 100 и выше | |||
* Opera 89 и выше | |||
* Safari 16 и выше | |||
* Edge 103 и выше | |||
|} | |||
Revision as of 13:03, 15 June 2023
Введение
Сервер историй Svacer (Svace Server) предназначен для хранения и обработки результатов работы статического анализатора Svace. Он разработан с целью заменить старый сервер историй, встроенный в анализатор Svace. Допускается одновременное использование старого и нового серверов.
Svacer состоит из единственного исполняемого файла, который можно запустить как в режиме сервера для хранения и обработки результатов анализа (при этом требуется PostgreSQL с созданной для Svacer БД), так и использовать как клиент для взаимодействия с этим сервером (в этом случае никаких зависимостей не требуется). Будучи запущенным в качестве сервера, Svacer предоставляет web-UI и REST API для взаимодействия. При использовании Svacer как клиента доступны команды для импорта предупреждений, загрузки их на сервер и другие возможности взаимодействия с сервером.
Термины
Project | Проект, подлежащий анализу. По умолчанию именем проекта считается имя директории, в которой был запущен svace build и svace analyze.
На сервере проект содержит в себе несколько веток с результатами работы анализатора |
Branch (ветка) | Ветка в проекте с результатами работы анализатора. По умолчанию проект имеет одну ветку — master |
Snapshot (снимок) | Результат работы svace analyze, импортированный в промежуточное хранилище или на сервер. Содержит:
Допускается импортирование снимков без исходного кода и дополнительной информации |
Marker (маркер, предупреждение) | Предупреждение от Svace с информацией о позиции в исходном файле |
Svacer | Svace History Server, а также исполняемый файл, содержащий код сервера |
Разметка | Проставление статуса маркера с опциональным добавлением комментария |
Состав дистрибутива
bin/svacer bin/svacer.exe |
Бинарный файл сервера и утилита для импортирования результатов. Режим работы зависит от аргументов |
support/svace-migration/svace-migration.jar | Утилита подготовки данных для импорта из старого сервера историй.
Требует JDK для запуска. Может использоваться JDK из состава дистрибутива Svace |
extra/docker-compose*.yml | Docker-compose файлы для запуска БД PostgreSQL и Svacer в docker-контейнерах |
integrations/vscode | Расширение для Visual Studio Code и документация на него |
Зависимости
PostgreSQL версии 10 и выше. Требуется только при запуске Svacer в роли сервера | Параметры подключения определяются аргументом при запуске сервера или переменной окружения SVACER_PG_URL. По умолчанию, используется следующий connect URL:
postgres://svace:svace@0.0.0.0:5432/svace |
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 |
|
Browser |
В качестве клиента для веб-интерфейса Svacer
|