Release notes 12-0-0: Difference between revisions
Mitrofanov (talk | contribs)  | 
				 (→Автоочистка снимков/веток/проектов:  добавил опции cleanup-type и убрал Max-snapshots)  | 
				||
| (8 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
== Разметка маркеров с помощью AI ==  | |||
= Разметка маркеров с помощью AI =  | |||
Добавлена возможность разметки маркеров с помощью ассистента AI, который на основании модели, обученной на множестве размеченных данных, предсказывает статус разметки маркера False Positive или Confirmed.    | Добавлена возможность разметки маркеров с помощью ассистента AI, который на основании модели, обученной на множестве размеченных данных, предсказывает статус разметки маркера False Positive или Confirmed.    | ||
Если пользователь применяет предсказанный статус маркера, то к маркеру автоматически добавляется комментарий с информацией о дате разметки, используемой модели AI и уровне доверия, также маркеру добавляется метка '''AI'''.  | Если пользователь применяет предсказанный статус маркера, то к маркеру автоматически добавляется комментарий с информацией о дате разметки, используемой модели AI и уровне доверия, также маркеру добавляется метка '''AI'''.  | ||
''  | {{Note|type=info|text=''Прогнозируемый ассистентом AI статус разметки маркера носит рекомендательный характер. Окончательное решение о применении предсказанного моделью статуса остается за пользователем.''}}  | ||
Форма разметки с помощью AI открывается   | Форма разметки с помощью AI открывается включением параметра '''Режим разметки с помощью AI''' на стандартных формах разметки маркера или групповой разметки маркера.  | ||
Если текущий статус разметки маркера совпадает со статусом, предсказанным моделью AI, то такой маркер повторно разметить с помощью AI нельзя.  | Если текущий статус разметки маркера совпадает со статусом, предсказанным моделью AI, то такой маркер повторно разметить с помощью AI нельзя.  | ||
| 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. Поиск маркеров по полям расширен дополнительными атрибутами:  | |||
* Инвариант маркера;  | |||
* ID маркера.  | |||
*   | |||
*   | |||
[[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]]  | ||
Форма сравнения маркеров открывается в отдельном диалоговом окне.  | Форма сравнения маркеров открывается в отдельном диалоговом окне.  | ||
[[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 67: | Line 63: | ||
[[File:JSON-2.png|thumb|none|upright=3.5]]  | [[File:JSON-2.png|thumb|none|upright=3.5]]  | ||
= Изменения в разделе '''Проекты''' =  | == Изменения в разделе '''Проекты''' ==  | ||
1.   | 1. Фокусировка на ветке master при создании нового проекта.  | ||
2.   | 2. В действия над снимком в списке снимков добавлена команда экспорта кода с разметкой. Все команды экспорта снимка вынесены в отдельное меню.  | ||
[[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-файлу с правилами.    | При импорте в 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 85: | Line 81: | ||
[[File:Edit markers snap.png|thumb|none|upright=3|Форма импорта snap-файла]]  | [[File:Edit markers snap.png|thumb|none|upright=3|Форма импорта snap-файла]]  | ||
= Добавлена форма управления асинхронными задачами =  | == Добавлена форма управления асинхронными задачами ==  | ||
В разделе '''Настройки   | В разделе '''Настройки > Асинхронные задачи''', где доступен просмотр и управление (отмена и откат) следующими асинхронными операциями:  | ||
*   | * Экспорт snap-файлов;  | ||
*   | * Экспорт SARIF;  | ||
*   | * Копирование снимков.  | ||
Пользователь с серверным доступом '''Администрирование сервера''' может просматривать и управлять запущенными или выполненными асинхронными задачами всех   | Пользователь с серверным доступом '''Администрирование сервера''' может просматривать и управлять запущенными или выполненными асинхронными задачами всех пользователей. Пользователю без данного доступа доступно управление только своими асинхронными задачами.  | ||
[[File:Async tasks.png|thumb|none|upright=4|Форма Асинхронные задачи]]  | [[File:Async tasks.png|thumb|none|upright=4|Форма Асинхронные задачи]]  | ||
В следующем релизе планируем интегрировать в данный раздел оставшиеся асинхронные операции, которые запускаются пользователями, а именно:  | |||
*   | * Импорт snapshot;  | ||
*   | * Импорт svace-dir;  | ||
*   | * Импорт SARIF;  | ||
*   | * Копирование проекта;  | ||
*   | * Копирование ветки.  | ||
= Изменения в разделе '''Информация о сервере''' =  | == Изменения в разделе '''Информация о сервере''' ==  | ||
В разделе '''Настройки   | В разделе '''Настройки > Информация о сервере''', который доступен пользователям с серверным доступом '''Администрирование сервера''', представление информации разделено на три вкладки:  | ||
*   | * Параметры;  | ||
*   | * Системный лог;  | ||
*   | * Системный журнал.  | ||
Т.к. системный лог может иметь большой размер, то вывод информации на форме ограничен последними 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]]  | ||
''  | {{Note|type=info|text=''Функциональность добавлена для возможности будущего развития продукта. В дистрибутив Svacer v.12 лицензия встроена и не вносит никаких ограничений. Срок действия встроенной лицензии — до 31.12.2027.''}}  | ||
= Парольная политика =  | == Парольная политика ==  | ||
Реализована возможность в конфигурационном файле   | Реализована возможность задать парольную политику в конфигурационном файле:  | ||
1. Механизм установки минимальной сложности паролей.  | 1. Механизм установки минимальной сложности паролей.  | ||
Пример задания конфигурационных настроек:  | Пример задания конфигурационных настроек:  | ||
  auth:  | |||
    svacer:  |     svacer:  | ||
      password:  |       password:  | ||
| Line 138: | 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:  | ||
*   | * cleanup-type — удалять пустые ветки и проекты;  | ||
* min-snapshots — нижняя граница по количеству снимков в ветке.  | |||
* min-snapshots   | Подробное описание функции и ее опций: [[Help:CLI/cleanup]].  | ||
= Веб-хуки для нотификаций =  | == Веб-хуки для нотификаций ==  | ||
Реализован механизм веб-хуков для отправки нотификаций по API во внешние системы. Механизм настраивается в конфигурационном файле в секции webhook.  | Реализован механизм веб-хуков для отправки нотификаций по API во внешние системы. Механизм настраивается в конфигурационном файле в секции webhook.  | ||
Реализована отправка нотификаций по следующим событиям:  | |||
* разметка маркера / групповая разметка маркеров;  | |||
* добавление / обновление комментария маркера;  | |||
* добавление / копирование / изменение / удаление контейнеров (группа / проект / ветка);  | |||
* импорт / копирование / удаление / изменение снимков;  | |||
* копирование разметки.  | |||
Пример задания конфигурационных настроек:  | Пример задания конфигурационных настроек:  | ||
  webhook:  | |||
   enabled: true  |    enabled: true  | ||
   journalLength: 86400  |    journalLength: 86400  | ||
| Line 184: | Line 192: | ||
       caCerts: ""  |        caCerts: ""  | ||
       retryCount: 1  |        retryCount: 1  | ||
       timeout: 500  |        timeout: 500  | ||
Управление механизмом осуществляется в CLI с помощью команд:  | Управление механизмом осуществляется в CLI с помощью команд:  | ||
  svacer server webhook stat  | * просмотра записей журнала отправки событий:  | ||
  svacer server webhook journal  | |||
* просмотр статистики по работе службы:  | |||
  svacer server webhook stat  | |||
Latest revision as of 16:15, 28 October 2025
Разметка маркеров с помощью AI
Добавлена возможность разметки маркеров с помощью ассистента AI, который на основании модели, обученной на множестве размеченных данных, предсказывает статус разметки маркера False Positive или Confirmed.
Если пользователь применяет предсказанный статус маркера, то к маркеру автоматически добавляется комментарий с информацией о дате разметки, используемой модели 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, где добавлен раздел Лицензия. Просмотр лицензии доступен всем пользователям, а активация лицензии — пользователям с серверным доступом «Администрирование сервера».

Парольная политика
Реализована возможность задать парольную политику в конфигурационном файле:
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:
- cleanup-type — удалять пустые ветки и проекты;
 - 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