Release notes 12-0-0: Difference between revisions
(→Автоочистка снимков/веток/проектов: добавил ссылку на клинап) |
(minor fixes) |
||
| Line 1: | Line 1: | ||
== Разметка маркеров с помощью AI == | |||
= Разметка маркеров с помощью AI = | |||
Добавлена возможность разметки маркеров с помощью ассистента AI, который на основании модели, обученной на множестве размеченных данных, предсказывает статус разметки маркера False Positive или Confirmed. | Добавлена возможность разметки маркеров с помощью ассистента AI, который на основании модели, обученной на множестве размеченных данных, предсказывает статус разметки маркера False Positive или Confirmed. | ||
| Line 15: | Line 14: | ||
[[File:Review marker-2.png|thumb|none|x250px|Форма групповой разметки маркеров]] | [[File:Review marker-2.png|thumb|none|x250px|Форма групповой разметки маркеров]] | ||
= Изменения в пользовательских фильтрах = | == Изменения в пользовательских фильтрах == | ||
В пользовательских фильтрах реализованы дополнительные возможности фильтрации маркеров: | В пользовательских фильтрах реализованы дополнительные возможности фильтрации маркеров: | ||
1. Атрибут «'''Период последнего изменения'''» для фильтрации маркеров по дате (периоду) актуальной разметки. | 1. Атрибут «'''Период последнего изменения'''» для фильтрации маркеров по дате (периоду) актуальной разметки. | ||
2. | 2. Поле ввода шаблона расширенного фильтра для фильтрации маркеров по сложным предикатам, таким как: | ||
* поля маркера, его трассы, разметки и комментариев; | * поля маркера, его трассы, разметки и комментариев; | ||
* информацию из контекста (имя проекта, ветки, снимка и т.п.); | * информацию из контекста (имя проекта, ветки, снимка и т. п.); | ||
* атрибуты снимка (включая пользовательские атрибуты, заданные при импорте); | * атрибуты снимка (включая пользовательские атрибуты, заданные при импорте); | ||
* статусы разметки; | * статусы разметки; | ||
* текст и атрибуты комментариев. | * текст и атрибуты комментариев. | ||
Описание, как составить выражение для расширенного фильтра, можно получить кликнув на [[File:icon_question_mark2.png|x25px]]. | Описание, как составить выражение для расширенного фильтра, можно получить, кликнув на [[File:icon_question_mark2.png|x25px]]. | ||
[[File:Custom filter v12.png|thumb|none|x450px]] | [[File:Custom filter v12.png|thumb|none|x450px]] | ||
= Изменения в разделе '''Поиск''' = | == Изменения в разделе '''Поиск''' == | ||
В разделе '''Поиск''' выполнены следующие доработки: | В разделе '''Поиск''' выполнены следующие доработки: | ||
1. | 1. Реализована возможность просмотра информации о маркере непосредственно в разделе '''Поиск'''. | ||
[[File:Search-1.png|thumb|none|upright=4]] | [[File:Search-1.png|thumb|none|upright=4]] | ||
2. Поиск маркеров по полям расширен дополнительными атрибутами: | |||
2. | |||
* Инвариант маркера; | * Инвариант маркера; | ||
| Line 46: | Line 43: | ||
[[File:Search-2.png|thumb|none|upright=4]] | [[File:Search-2.png|thumb|none|upright=4]] | ||
= Изменения на вкладке с исходным кодом файла = | == Изменения на вкладке с исходным кодом файла == | ||
1. | 1. Панель функций перенесена на верх вкладки с файлом исходного кода. | ||
2. | 2. Реализована возможность добавления файла в фильтр по файлам, а также исключения файла из фильтра, если он был добавлен ранее. | ||
[[File:Cove view.png|thumb|none|upright=4.5]] | [[File:Cove view.png|thumb|none|upright=4.5]] | ||
= Сравнение маркеров при их сопоставлении = | == Сравнение маркеров при их сопоставлении == | ||
В процессе сопоставления маркеров реализована возможность сравнения маркеров. Это помогает | В процессе сопоставления маркеров реализована возможность сравнения маркеров. Это помогает определить причину, почему при импорте снимка маркеры не сопоставились автоматически. | ||
[[File:Match markers-1.png|thumb|none|upright=3.5]] | [[File:Match markers-1.png|thumb|none|upright=3.5]] | ||
| Line 59: | Line 56: | ||
[[File:Match markers-2.png|thumb|none|upright=3.5]] | [[File:Match markers-2.png|thumb|none|upright=3.5]] | ||
= Просмотр JSON маркера = | == Просмотр JSON маркера == | ||
В | В дополнение к команде копирования JSON маркера добавлена команда просмотра JSON маркера в таблице маркеров и правой панели. | ||
[[File:JSON-1.png|thumb|none|upright=3.5]] | [[File:JSON-1.png|thumb|none|upright=3.5]] | ||
| Line 66: | Line 63: | ||
[[File:JSON-2.png|thumb|none|upright=3.5]] | [[File:JSON-2.png|thumb|none|upright=3.5]] | ||
= Изменения в разделе '''Проекты''' = | == Изменения в разделе '''Проекты''' == | ||
1. Фокусировка на ветке master при создании нового проекта. | 1. Фокусировка на ветке master при создании нового проекта. | ||
| Line 72: | Line 69: | ||
[[File:Project 1.png|thumb|none|upright=4]] | [[File:Project 1.png|thumb|none|upright=4]] | ||
= Редактирование маркеров при импорте = | == Редактирование маркеров при импорте == | ||
При импорте .svace-dir, SARIF или snap-файла добавлена возможность (опция) задать правила трансформации, пропуска и дедупликации маркеров. Правила задаются в JSON-формате. | При импорте .svace-dir, SARIF или snap-файла добавлена возможность (опция) задать правила трансформации, пропуска и дедупликации маркеров. Правила задаются в JSON-формате. | ||
При импорте в CLI данная опция называется edit-markers и позволяет указать путь к JSON-файлу с правилами. Подробнее здесь [[Edit markers (command line)]]. | При импорте в CLI данная опция называется edit-markers и позволяет указать путь к JSON-файлу с правилами. Подробнее здесь: [[Edit markers (command line)]]. | ||
В пользовательском интерфейсе при импорте .svace-dir или SARIF возможно задать данную опцию и в ней указать путь к JSON-файлу в архиве .svace-dir или SARIF. А при импорте snap-файла возможно как подгрузить JSON-файл так и ввести выражение в формате JSON в поле ввода. | В пользовательском интерфейсе при импорте .svace-dir или SARIF возможно задать данную опцию и в ней указать путь к JSON-файлу в архиве .svace-dir или SARIF. А при импорте snap-файла возможно как подгрузить JSON-файл, так и ввести выражение в формате JSON в поле ввода. | ||
[[File:Edit markers svace-dir.png|thumb|none|upright=3|Форма импорта .svace-dir]] | [[File:Edit markers svace-dir.png|thumb|none|upright=3|Форма импорта .svace-dir]] | ||
| Line 84: | Line 81: | ||
[[File:Edit markers snap.png|thumb|none|upright=3|Форма импорта snap-файла]] | [[File:Edit markers snap.png|thumb|none|upright=3|Форма импорта snap-файла]] | ||
= Добавлена форма управления асинхронными задачами = | == Добавлена форма управления асинхронными задачами == | ||
В разделе '''Настройки | В разделе '''Настройки > Асинхронные задачи''', где доступен просмотр и управление (отмена и откат) следующими асинхронными операциями: | ||
* Экспорт snap-файлов; | * Экспорт snap-файлов; | ||
| Line 91: | Line 88: | ||
* Копирование снимков. | * Копирование снимков. | ||
Пользователь с серверным доступом '''Администрирование сервера''' может просматривать и управлять запущенными или выполненными асинхронными задачами всех | Пользователь с серверным доступом '''Администрирование сервера''' может просматривать и управлять запущенными или выполненными асинхронными задачами всех пользователей. Пользователю без данного доступа доступно управление только своими асинхронными задачами. | ||
[[File:Async tasks.png|thumb|none|upright=4|Форма Асинхронные задачи]] | [[File:Async tasks.png|thumb|none|upright=4|Форма Асинхронные задачи]] | ||
| Line 103: | Line 100: | ||
* Копирование ветки. | * Копирование ветки. | ||
= Изменения в разделе '''Информация о сервере''' = | == Изменения в разделе '''Информация о сервере''' == | ||
В разделе '''Настройки | В разделе '''Настройки > Информация о сервере''', который доступен пользователям с серверным доступом '''Администрирование сервера''', представление информации разделено на три вкладки: | ||
* Параметры; | * Параметры; | ||
| Line 110: | Line 107: | ||
* Системный журнал. | * Системный журнал. | ||
Т.к. системный лог может иметь большой размер, то вывод информации на форме ограничен последними 1Мб (значение регулируется переменной окружения SVACER_TAIL_LOG_SIZE). Скачивание лога позволяет выгрузить файл полностью. | Т. к. системный лог может иметь большой размер, то вывод информации на форме ограничен последними 1Мб (значение регулируется переменной окружения SVACER_TAIL_LOG_SIZE). Скачивание лога позволяет выгрузить файл полностью. | ||
[[File:Server info-1.png|thumb|none|upright=4|Информация о сервере | [[File:Server info-1.png|thumb|none|upright=4|Информация о сервере — вкладка Параметры]] | ||
[[File:Server info-2.png|thumb|none|upright=4|Информация о сервере | [[File:Server info-2.png|thumb|none|upright=4|Информация о сервере — вкладка Системный лог]] | ||
[[File:Server info-3.png|thumb|none|upright=4|Информация о сервере | [[File:Server info-3.png|thumb|none|upright=4|Информация о сервере — вкладка Системный журнал]] | ||
= Лицензирование Svacer = | == Лицензирование Svacer == | ||
Реализован механизм лицензирования. Просмотр и применение лицензии доступно в CLI, а также в UI, где добавлен раздел Лицензия. Просмотр лицензии доступен всем пользователям, а активация лицензии | Реализован механизм лицензирования. Просмотр и применение лицензии доступно в CLI, а также в UI, где добавлен раздел Лицензия. Просмотр лицензии доступен всем пользователям, а активация лицензии — пользователям с серверным доступом «Администрирование сервера». | ||
[[File:Licence.png|thumb|none|upright=3.5]] | [[File:Licence.png|thumb|none|upright=3.5]] | ||
'''Примечание''': функциональность добавлена для возможности будущего развития продукта. В дистрибутив Svacer v.12 лицензия встроена и не вносит никаких ограничений. Срок действия встроенной лицензии до 31.12.2027. | '''Примечание''': функциональность добавлена для возможности будущего развития продукта. В дистрибутив Svacer v.12 лицензия встроена и не вносит никаких ограничений. Срок действия встроенной лицензии — до 31.12.2027. | ||
= Парольная политика = | == Парольная политика == | ||
Реализована возможность в конфигурационном файле | Реализована возможность задать парольную политику в конфигурационном файле: | ||
1. Механизм установки минимальной сложности паролей. | 1. Механизм установки минимальной сложности паролей. | ||
Пример задания конфигурационных настроек: | Пример задания конфигурационных настроек: | ||
auth: | |||
svacer: | svacer: | ||
password: | password: | ||
| Line 137: | Line 134: | ||
- "[A-Z]" | - "[A-Z]" | ||
- "[0-9]" | - "[0-9]" | ||
- "[!#]" | - "[!#]" | ||
В поле min_length | |||
В поле min_length — минимальная длина пароля. В поле complexity список регулярных выражений, задающих группу требуемых символов. В примере требуется наличие строчных, заглавных букв, цифр и спецсимволов <code>!#</code>. | |||
2. Механизм блокировки учетной записи пользователя при нескольких неудачных попытках авторизации. | 2. Механизм блокировки учетной записи пользователя при нескольких неудачных попытках авторизации. | ||
Пример задания конфигурационных настроек: | Пример задания конфигурационных настроек: | ||
security: | |||
login: | login: | ||
max_attempts: 5 | max_attempts: 5 | ||
lock_time: 2m | lock_time: 2m | ||
Т.е. учетная запись будет блокироваться на 2 минуты при 5 неудачных попытках авторизации. | |||
Т. е. учетная запись будет блокироваться на 2 минуты при 5 неудачных попытках авторизации. | |||
Также реализована команда CLI для разблокировки учетной записи пользователя: | Также реализована команда CLI для разблокировки учетной записи пользователя: | ||
svacer user-proiver unlock -login chernykov_sv | |||
= Открытие вкладки LDAP по умолчанию = | == Открытие вкладки LDAP по умолчанию == | ||
Добавлен параметр конфигурации default. Если он true, то на странице авторизации в пользовательском интерфейсе по умолчанию будет | Добавлен параметр конфигурации default. Если он true, то на странице авторизации в пользовательском интерфейсе по умолчанию будет открываться вкладка Svacer, если false — то при наличии сконфигурированного LDAP по умолчанию будет открываться вкладка LDAP, иначе флаг default игнорируется. | ||
Пример задания конфигурационных настроек: | Пример задания конфигурационных настроек: | ||
auth: | |||
svacer: | svacer: | ||
enabled: true | enabled: true | ||
default: false | default: false | ||
= Автоочистка снимков/веток/проектов = | == Автоочистка снимков/веток/проектов == | ||
Расширены опции команды cleanup, вызываемой в CLI: | Расширены опции команды cleanup, вызываемой в CLI: | ||
* ??? | * ??? — удалять пустые ветки; | ||
* ??? | * ??? — удалять пустые проекты; | ||
* max-snapshots | * max-snapshots — верхняя граница по количеству снимков в ветке; | ||
* min-snapshots | * min-snapshots — нижняя граница по количеству снимков в ветке. | ||
= Веб-хуки для нотификаций = | Подробное описание функции и ее опций: [[Help:CLI/cleanup]]. | ||
== Веб-хуки для нотификаций == | |||
Реализован механизм веб-хуков для отправки нотификаций по API во внешние системы. Механизм настраивается в конфигурационном файле в секции webhook. | Реализован механизм веб-хуков для отправки нотификаций по API во внешние системы. Механизм настраивается в конфигурационном файле в секции webhook. | ||
| Line 177: | Line 178: | ||
* разметка маркера / групповая разметка маркеров; | * разметка маркера / групповая разметка маркеров; | ||
* добавление / обновление комментария маркера; | * добавление / обновление комментария маркера; | ||
* добавление / копирование / изменение / удаление контейнеров (группа / проект / ветка); | |||
* добавление / копирование / изменение / удаление контейнеров (группа / проект / | |||
* импорт / копирование / удаление / изменение снимков; | * импорт / копирование / удаление / изменение снимков; | ||
* копирование разметки. | * копирование разметки. | ||
Пример задания конфигурационных настроек: | Пример задания конфигурационных настроек: | ||
webhook: | |||
enabled: true | enabled: true | ||
journalLength: 86400 | journalLength: 86400 | ||
| Line 194: | Line 194: | ||
caCerts: "" | caCerts: "" | ||
retryCount: 1 | retryCount: 1 | ||
timeout: 500 | timeout: 500 | ||
Управление механизмом осуществляется в CLI с помощью команд: | Управление механизмом осуществляется в CLI с помощью команд: | ||
* просмотра записей журнала отправки событий: | * просмотра записей журнала отправки событий: | ||
svacer server webhook journal | |||
* просмотр статистики по работе службы: | * просмотр статистики по работе службы: | ||
svacer server webhook stat | |||
Revision as of 13:19, 21 October 2025
Разметка маркеров с помощью AI
Добавлена возможность разметки маркеров с помощью ассистента AI, который на основании модели, обученной на множестве размеченных данных, предсказывает статус разметки маркера False Positive или Confirmed.
Если пользователь применяет предсказанный статус маркера, то к маркеру автоматически добавляется комментарий с информацией о дате разметки, используемой модели AI и уровне доверия, также маркеру добавляется метка AI.
Примечание: прогнозируемый ассистентом AI статус разметки маркера носит рекомендательный характер. Окончательное решение о применении предсказанного моделью статуса остается за пользователем.
Форма разметки с помощью AI открывается путем активации параметра Режим разметки с помощью AI на стандартных формах разметки маркера или групповой разметки маркера.
Если текущий статус разметки маркера совпадает со статусом, предсказанным моделью AI, то такой маркер повторно разметить с помощью AI нельзя.


Изменения в пользовательских фильтрах
В пользовательских фильтрах реализованы дополнительные возможности фильтрации маркеров:
1. Атрибут «Период последнего изменения» для фильтрации маркеров по дате (периоду) актуальной разметки.
2. Поле ввода шаблона расширенного фильтра для фильтрации маркеров по сложным предикатам, таким как:
- поля маркера, его трассы, разметки и комментариев;
- информацию из контекста (имя проекта, ветки, снимка и т. п.);
- атрибуты снимка (включая пользовательские атрибуты, заданные при импорте);
- статусы разметки;
- текст и атрибуты комментариев.
Описание, как составить выражение для расширенного фильтра, можно получить, кликнув на
.

Изменения в разделе Поиск
В разделе Поиск выполнены следующие доработки:
1. Реализована возможность просмотра информации о маркере непосредственно в разделе Поиск.

2. Поиск маркеров по полям расширен дополнительными атрибутами:
- Инвариант маркера;
- ID маркера.

Изменения на вкладке с исходным кодом файла
1. Панель функций перенесена на верх вкладки с файлом исходного кода.
2. Реализована возможность добавления файла в фильтр по файлам, а также исключения файла из фильтра, если он был добавлен ранее.

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

Форма сравнения маркеров открывается в отдельном диалоговом окне.

Просмотр JSON маркера
В дополнение к команде копирования JSON маркера добавлена команда просмотра JSON маркера в таблице маркеров и правой панели.

Просмотр JSON осуществляется в отдельном диалоговом окне.

Изменения в разделе Проекты
1. Фокусировка на ветке master при создании нового проекта.
2. В действия над снимком в списке снимков добавлена команда экспорта кода с разметкой. Все команды экспорта снимка вынесены в отдельное меню.

Редактирование маркеров при импорте
При импорте .svace-dir, SARIF или snap-файла добавлена возможность (опция) задать правила трансформации, пропуска и дедупликации маркеров. Правила задаются в JSON-формате.
При импорте в CLI данная опция называется edit-markers и позволяет указать путь к JSON-файлу с правилами. Подробнее здесь: Edit markers (command line).
В пользовательском интерфейсе при импорте .svace-dir или SARIF возможно задать данную опцию и в ней указать путь к JSON-файлу в архиве .svace-dir или SARIF. А при импорте snap-файла возможно как подгрузить JSON-файл, так и ввести выражение в формате JSON в поле ввода.



Добавлена форма управления асинхронными задачами
В разделе Настройки > Асинхронные задачи, где доступен просмотр и управление (отмена и откат) следующими асинхронными операциями:
- Экспорт snap-файлов;
- Экспорт SARIF;
- Копирование снимков.
Пользователь с серверным доступом Администрирование сервера может просматривать и управлять запущенными или выполненными асинхронными задачами всех пользователей. Пользователю без данного доступа доступно управление только своими асинхронными задачами.

Примечание: в следующем релизе планируем интегрировать в данный раздел оставшиеся асинхронные операции, которые запускаются пользователями, а именно:
- Импорт snapshot;
- Импорт svace-dir;
- Импорт SARIF;
- Копирование проекта;
- Копирование ветки.
Изменения в разделе Информация о сервере
В разделе Настройки > Информация о сервере, который доступен пользователям с серверным доступом Администрирование сервера, представление информации разделено на три вкладки:
- Параметры;
- Системный лог;
- Системный журнал.
Т. к. системный лог может иметь большой размер, то вывод информации на форме ограничен последними 1Мб (значение регулируется переменной окружения SVACER_TAIL_LOG_SIZE). Скачивание лога позволяет выгрузить файл полностью.



Лицензирование Svacer
Реализован механизм лицензирования. Просмотр и применение лицензии доступно в CLI, а также в UI, где добавлен раздел Лицензия. Просмотр лицензии доступен всем пользователям, а активация лицензии — пользователям с серверным доступом «Администрирование сервера».

Примечание: функциональность добавлена для возможности будущего развития продукта. В дистрибутив Svacer v.12 лицензия встроена и не вносит никаких ограничений. Срок действия встроенной лицензии — до 31.12.2027.
Парольная политика
Реализована возможность задать парольную политику в конфигурационном файле:
1. Механизм установки минимальной сложности паролей.
Пример задания конфигурационных настроек:
auth:
svacer:
password:
min_length: 10
complexity:
- "[a-z]"
- "[A-Z]"
- "[0-9]"
- "[!#]"
В поле min_length — минимальная длина пароля. В поле complexity список регулярных выражений, задающих группу требуемых символов. В примере требуется наличие строчных, заглавных букв, цифр и спецсимволов !#.
2. Механизм блокировки учетной записи пользователя при нескольких неудачных попытках авторизации.
Пример задания конфигурационных настроек:
security:
login:
max_attempts: 5
lock_time: 2m
Т. е. учетная запись будет блокироваться на 2 минуты при 5 неудачных попытках авторизации.
Также реализована команда CLI для разблокировки учетной записи пользователя:
svacer user-proiver unlock -login chernykov_sv
Открытие вкладки LDAP по умолчанию
Добавлен параметр конфигурации default. Если он true, то на странице авторизации в пользовательском интерфейсе по умолчанию будет открываться вкладка Svacer, если false — то при наличии сконфигурированного LDAP по умолчанию будет открываться вкладка LDAP, иначе флаг default игнорируется.
Пример задания конфигурационных настроек:
auth:
svacer:
enabled: true
default: false
Автоочистка снимков/веток/проектов
Расширены опции команды cleanup, вызываемой в CLI:
- ??? — удалять пустые ветки;
- ??? — удалять пустые проекты;
- max-snapshots — верхняя граница по количеству снимков в ветке;
- min-snapshots — нижняя граница по количеству снимков в ветке.
Подробное описание функции и ее опций: Help:CLI/cleanup.
Веб-хуки для нотификаций
Реализован механизм веб-хуков для отправки нотификаций по API во внешние системы. Механизм настраивается в конфигурационном файле в секции webhook.
Реализована отправка нотификаций по следующим событиям:
- разметка маркера / групповая разметка маркеров;
- добавление / обновление комментария маркера;
- добавление / копирование / изменение / удаление контейнеров (группа / проект / ветка);
- импорт / копирование / удаление / изменение снимков;
- копирование разметки.
Пример задания конфигурационных настроек:
webhook:
enabled: true
journalLength: 86400
targets:
- url: "https://swarm-mgr.home:8080/webhook"
workersCount: 1
enabled: true
filter: "Type == 1 and Payload.Status != 'Undecided'"
caCerts: ""
retryCount: 1
timeout: 500
Управление механизмом осуществляется в CLI с помощью команд:
- просмотра записей журнала отправки событий:
svacer server webhook journal
- просмотр статистики по работе службы:
svacer server webhook stat