Release notes 12-0-0: Difference between revisions

From Svacer Wiki
(→‎Автоочистка снимков/веток/проектов: добавил ссылку на клинап)
(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 маркера в таблице маркеров и правой панели.
В дополнение к команде копирования 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. Механизм установки минимальной сложности паролей.


Пример задания конфигурационных настроек:
Пример задания конфигурационных настроек:
  <code>auth:
  auth:
   svacer:
   svacer:
     password:
     password:
Line 137: Line 134:
         - "[A-Z]"
         - "[A-Z]"
         - "[0-9]"
         - "[0-9]"
         - "[!#]"</code>
         - "[!#]"
В поле min_length - минимальная длина пароля. В поле complexity список регулярных выражений, задающих группу требуемых символов. В примере требуется наличие строчных, заглавных букв, цифр и спец символов - !#.
 
В поле min_length минимальная длина пароля. В поле complexity список регулярных выражений, задающих группу требуемых символов. В примере требуется наличие строчных, заглавных букв, цифр и спецсимволов <code>!#</code>.


2. Механизм блокировки учетной записи пользователя при нескольких неудачных попытках авторизации.
2. Механизм блокировки учетной записи пользователя при нескольких неудачных попытках авторизации.


Пример задания конфигурационных настроек:
Пример задания конфигурационных настроек:
  <code>security:
 
  security:
   login:
   login:
     max_attempts: 5
     max_attempts: 5
     lock_time: 2m</code>
     lock_time: 2m
Т.е. учетная запись будет блокироваться на 2 минуты при 5 неудачных попытках авторизации.
 
Т. е. учетная запись будет блокироваться на 2 минуты при 5 неудачных попытках авторизации.


Также реализована команда CLI для разблокировки учетной записи пользователя:
Также реализована команда CLI для разблокировки учетной записи пользователя:
  <code>svacer user-proiver unlock -login chernykov_sv</code>
  svacer user-proiver unlock -login chernykov_sv


= Открытие вкладки LDAP по умолчанию =
== Открытие вкладки LDAP по умолчанию ==
Добавлен параметр конфигурации default. Если он true, то на странице авторизации в пользовательском интерфейсе по умолчанию будет отрываться вкладка Svacer, если false - то при наличии сконфигурированного LDAP по умолчанию будет открываться вкладка LDAP, иначе флаг default игнорируется
Добавлен параметр конфигурации default. Если он true, то на странице авторизации в пользовательском интерфейсе по умолчанию будет открываться вкладка Svacer, если false то при наличии сконфигурированного LDAP по умолчанию будет открываться вкладка LDAP, иначе флаг default игнорируется.


Пример задания конфигурационных настроек:
Пример задания конфигурационных настроек:
  <code>auth:
  auth:
   svacer:
   svacer:
     enabled: true
     enabled: true
     default: false</code>
     default: false


= Автоочистка снимков/веток/проектов =
== Автоочистка снимков/веток/проектов ==
Расширены опции команды cleanup, вызываемой в CLI:
Расширены опции команды cleanup, вызываемой в CLI:


* ??? - удалять пустые ветки;
* ??? удалять пустые ветки;
* ??? - удалять пустые проекты;
* ??? удалять пустые проекты;
* max-snapshots - верхняя граница по количеству снимков в ветке;
* max-snapshots верхняя граница по количеству снимков в ветке;
* min-snapshots - нижняя граница по количеству снимков в ветке.
* min-snapshots нижняя граница по количеству снимков в ветке.
Подробное описание функции и ее опций [[Help:CLI/cleanup]].


= Веб-хуки для нотификаций =
Подробное описание функции и ее опций: [[Help:CLI/cleanup]].
 
== Веб-хуки для нотификаций ==
Реализован механизм веб-хуков для отправки нотификаций по API во внешние системы. Механизм настраивается в конфигурационном файле в секции webhook.
Реализован механизм веб-хуков для отправки нотификаций по API во внешние системы. Механизм настраивается в конфигурационном файле в секции webhook.


Line 177: Line 178:
* разметка маркера / групповая разметка маркеров;
* разметка маркера / групповая разметка маркеров;
* добавление / обновление комментария маркера;
* добавление / обновление комментария маркера;
 
* добавление / копирование / изменение / удаление контейнеров (группа / проект / ветка);
* добавление / копирование / изменение / удаление контейнеров (группа / проект / бранч);
* импорт / копирование / удаление / изменение снимков;
* импорт / копирование / удаление / изменение снимков;
* копирование разметки.
* копирование разметки.


Пример задания конфигурационных настроек:
Пример задания конфигурационных настроек:
  <code>webhook:
 
  webhook:
   enabled: true
   enabled: true
   journalLength: 86400
   journalLength: 86400
Line 194: Line 194:
       caCerts: ""
       caCerts: ""
       retryCount: 1
       retryCount: 1
       timeout: 500</code>
       timeout: 500
 
Управление механизмом осуществляется в CLI с помощью команд:
Управление механизмом осуществляется в CLI с помощью команд:


* просмотра записей журнала отправки событий:
* просмотра записей журнала отправки событий:


  <code>svacer server webhook journal</code>
  svacer server webhook journal


* просмотр статистики по работе службы:
* просмотр статистики по работе службы:


  <code>svacer server webhook stat</code>
  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 в поле ввода.

Форма импорта .svace-dir
Форма импорта SARIF
Форма импорта snap-файла

Добавлена форма управления асинхронными задачами

В разделе Настройки > Асинхронные задачи, где доступен просмотр и управление (отмена и откат) следующими асинхронными операциями:

  • Экспорт 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