Release notes 12-0-0: Difference between revisions

From Svacer Wiki
(→‎Автоочистка снимков/веток/проектов: добавил опции cleanup-type и убрал Max-snapshots)
 
(11 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'''.


'''Примечание''': прогнозируемый ассистентом AI статус разметки маркера носит рекомендательный характер. Окончательное решение о применении предсказанного моделью статуса остается за пользователем.
{{Note|type=info|text=''Прогнозируемый ассистентом AI статус разметки маркера носит рекомендательный характер. Окончательное решение о применении предсказанного моделью статуса остается за пользователем.''}}


Форма разметки с помощью 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 маркера.


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 маркера в таблице маркеров и правой панели.
В дополнение к команде копирования JSON маркера добавлена команда просмотра JSON маркера в таблице маркеров и правой панели.
[[File:JSON-1.png|thumb|none|upright=3.5]]
[[File:JSON-1.png|thumb|none|upright=3.5]]


Line 71: Line 63:
[[File:JSON-2.png|thumb|none|upright=3.5]]
[[File:JSON-2.png|thumb|none|upright=3.5]]


= Изменения в разделе '''Проекты''' =
== Изменения в разделе '''Проекты''' ==
1.   Фокусировка на ветке master при создании нового проекта.
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 89: 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|Форма Асинхронные задачи]]
 
В следующем релизе планируем интегрировать в данный раздел оставшиеся асинхронные операции, которые запускаются пользователями, а именно:
 
* Импорт snapshot;
* Импорт svace-dir;
* Импорт SARIF;
* Копирование проекта;
* Копирование ветки.
 
== Изменения в разделе '''Информация о сервере''' ==
В разделе '''Настройки > Информация о сервере''', который доступен пользователям с серверным доступом '''Администрирование сервера''', представление информации разделено на три вкладки:
 
* Параметры;
* Системный лог;
* Системный журнал.


·        Экспорт snap-файлов;
Т. к. системный лог может иметь большой размер, то вывод информации на форме ограничен последними 1Мб (значение регулируется переменной окружения SVACER_TAIL_LOG_SIZE). Скачивание лога позволяет выгрузить файл полностью.


·        Экспорт SARIF;
[[File:Server info-1.png|thumb|none|upright=4|Информация о сервере — вкладка Параметры]]
[[File:Server info-2.png|thumb|none|upright=4|Информация о сервере — вкладка Системный лог]]
[[File:Server info-3.png|thumb|none|upright=4|Информация о сервере — вкладка Системный журнал]]


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


Пользователь с серверным доступом '''Администрирование сервера''' может просматривать и управлять запущенными или выполненными асинхронными задачами всех юзеров. Пользователю без данного доступа доступно управление только своими асинхронные задачами.
[[File:Licence.png|thumb|none|upright=3.5]]


[[File:Async tasks.png|thumb|none|upright=4|Форма Асинхронные задачи]]
{{Note|type=info|text=''Функциональность добавлена для возможности будущего развития продукта. В дистрибутив Svacer v.12 лицензия встроена и не вносит никаких ограничений. Срок действия встроенной лицензии — до 31.12.2027.''}}
 
== Парольная политика ==
Реализована возможность задать парольную политику в конфигурационном файле:
 
1. Механизм установки минимальной сложности паролей.
 
Пример задания конфигурационных настроек:
auth:
  svacer:
    password:
        min_length: 10
        complexity:
        - "[a-z]"
        - "[A-Z]"
        - "[0-9]"
        - "[!#]"
 
В поле min_length — минимальная длина пароля. В поле complexity список регулярных выражений, задающих группу требуемых символов. В примере требуется наличие строчных, заглавных букв, цифр и спецсимволов <code>!#</code>.
 
2. Механизм блокировки учетной записи пользователя при нескольких неудачных попытках авторизации.
 
Пример задания конфигурационных настроек:
 
security:
  login:
    max_attempts: 5
    lock_time: 2m


'''Примечание''': в следующем релизе планируем интегрировать в данный раздел оставшиеся асинхронные операции, которые запускаются пользователями, а именно:
Т. е. учетная запись будет блокироваться на 2 минуты при 5 неудачных попытках авторизации.


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


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


·        Импорт SARIF;
Пример задания конфигурационных настроек:
auth:
  svacer:
    enabled: true
    default: false


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


·        Копирование ветки.
* cleanup-type — удалять пустые ветки и проекты;
* min-snapshots — нижняя граница по количеству снимков в ветке.


= Изменения в разделе '''Информация о сервере''' =
Подробное описание функции и ее опций: [[Help:CLI/cleanup]].
В разделе '''Настройки -> Информация о сервере''', который доступен пользователям с серверным доступом '''Администрирование сервера''', представление информации разделено на три вкладки:


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


·        Системный лог
Реализована отправка нотификаций по следующим событиям:


·        Системный журнал
* разметка маркера / групповая разметка маркеров;
* добавление / обновление комментария маркера;
* добавление / копирование / изменение / удаление контейнеров (группа / проект / ветка);
* импорт / копирование / удаление / изменение снимков;
* копирование разметки.


Т.к. системный лог может иметь большой размер, то вывод информации на форме ограничен последними 1Мб (значение регулируется переменной окружения SVACER_TAIL_LOG_SIZE). Скачивание лога позволяет выгрузить файл полностью.
Пример задания конфигурационных настроек:


[[File:Server info-1.png|thumb|none|upright=4|Информация о сервере - вкладка Параметры]]
webhook:
[[File:Server info-2.png|thumb|none|upright=4|Информация о сервере - вкладка Системный лог]]
  enabled: true
[[File:Server info-3.png|thumb|none|upright=4|Информация о сервере - вкладка Системный журнал]]
  journalLength: 86400
  targets:
    - url: "<nowiki>https://swarm-mgr.home:8080/webhook</nowiki>"
      workersCount: 1
      enabled: true   
      filter: "Type == 1 and Payload.Status != 'Undecided'"
      caCerts: ""
      retryCount: 1
      timeout: 500


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


[[File:Licence.png|thumb|none|upright=3.5]]
* просмотра записей журнала отправки событий:


'''Примечание''': функциональность добавлена для возможности будущего развития продукта. В дистрибутив Svacer v.12 лицензия встроена и не вносит никаких ограничений. Срок действия встроенной лицензии до 31.12.2027.
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, то такой маркер повторно разметить с помощью 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:

  • 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