Перейти к основному содержимому
Версия: 1.18.0 (последняя)

Плановая очистка

BAF Lite предоставляет возможность очистки данных — как по заданному расписанию, так и в ручном режиме по конкретной дате. В результате удаляются как сами попытки (endeavor), так и связанные с ними биометрические данные.

Очистка работает в разрезе агрегаций и настраивается для каждой из них независимо. Это означает, что для разных агрегаций могут быть установлены различные планы очистки. Каждая попытка создаётся в рамках определённой агрегации. В BAF Lite используется агрегация с идентификатором 28608d66-a571-44ec-94db-04a00143ff51.

Ручная очистка позволяет удалить все данные, созданные ранее указанного момента времени, который задаётся при вызове процедуры. Плановая очистка позволяет настроить автоматическое удаление данных по расписанию, срабатывающее через определённые промежутки времени (например, в конце квартала, месяца, недели и т. д.).

примечание

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

API для работы с настройками очистки

Настройки очистки содержат в себе данные, которые используются для проведения очисток. Эти настройки являются входным идентификатором для проведения всех операций, связанных с очисткой данных по определённой агрегации. Настройки создаются для агрегации и используют её id. Для настройки BAF Lite необходимо использовать следующую агрегацию: 28608d66-a571-44ec-94db-04a00143ff51.

Создание объекта настроек очистки

Данный запрос создаёт объект настроек очистки для указанной агрегации. Для одной агрегации может существовать только один активный объект настроек.

Схема запроса: POST /lrs/settings?aggregate_entity=<aggregate_id>

Пример запроса

curl -X 'POST' \
'http://192.168.10.1/lrs/settings?aggregate_entity=28608d66-a571-44ec-94db-04a00143ff51' \
-H 'accept: application/json' \
-H 'token: token' \
-H 'Content-Type: application/json' \
-d '{
"retention_settings": {
"enable": true,
"content_retention": 1,
"content_retention_dimension": "days",
"execution_cron": "* 1 1 * *"
}
}'

Параметры запроса (query)

ПараметрОписание
aggregate_entityИдентификатор агрегации, для которой создаются настройки очистки. Обязательный.

Заголовки запроса

ЗаголовокОписание
tokenТокен сервиса video-recorder. Хранится в секрете video-recorder-token в файле ./cfg/video-recorder.secrets.json. Обязательный.

Параметры тела запроса (application/json)

Тело запроса должно содержать объект retention_settings со следующими полями:

ПолеОписание
enableВключает или отключает плановую очистку. Тип bool Обязательный.
content_retentionСрок хранения данных, выраженный в единицах, указанных в content_retention_dimension. Данные, созданные ранее чем (время запуска очистки по расписанию - content_retention), будут удалены. Тип int Обязательный.
content_retention_dimensionЕдиница измерения срока хранения. Допустимые значения: "seconds", "minutes", "hours", "days", "weeks". Обязательный.
execution_cronРасписание запуска процедуры очистки в формате cron (например, * 1 1 * * — первого числа месяца в 1:00). Тип string Обязательный.

Пример тела запроса

{
"retention_settings": {
"enable": true,
"content_retention": 1,
"content_retention_dimension": "days",
"execution_cron": "* 1 1 * *"
}
}

Обновление объекта настроек очистки

Данный запрос обновляет существующий объект настроек очистки для указанной агрегации.

Схема запроса: PUT /lrs/settings?aggregate_entity=<aggregate_id>

Пример запроса

curl -X 'PUT' \
'http://192.168.10.1/lrs/settings?aggregate_entity=28608d66-a571-44ec-94db-04a00143ff51' \
-H 'accept: application/json' \
-H 'token: token' \
-H 'Content-Type: application/json' \
-d '{
"retention_settings": {
"enable": true,
"content_retention": 1,
"content_retention_dimension": "days",
"execution_cron": "* 1 1 * *"
}
}'

Параметры запроса (query)

ПараметрОписание
aggregate_entityИдентификатор агрегации, настройки которой обновляются. Обязательный.

Заголовки запроса

ЗаголовокОписание
tokenТокен сервиса video-recorder. Хранится в секрете video-recorder-token в файле ./cfg/video-recorder.secrets.json. Обязательный.

Параметры тела запроса (application/json)

Тело запроса содержит объект retention_settings со следующими полями:

ПолеОписание
enableВключает или отключает плановую очистку. Тип bool Обязательный.
content_retentionСрок хранения данных, выраженный в единицах, указанных в content_retention_dimension. Данные, созданные ранее чем (время запуска очистки по расписанию - content_retention), будут удалены. Тип int Обязательный.
content_retention_dimensionЕдиница измерения срока хранения. Допустимые значения: "seconds", "minutes", "hours", "days", "weeks". Обязательный.
execution_cronРасписание запуска процедуры очистки в формате cron (например, * 1 1 * * — первого числа месяца в 1:00). Тип string Обязательный.

Пример тела запроса

{
"retention_settings": {
"enable": true,
"content_retention": 1,
"content_retention_dimension": "days",
"execution_cron": "* 1 1 * *"
}
}

Получение объекта настроек очистки

Данный запрос возвращает ранее созданные настройки очистки для указанной агрегации.

Схема запроса: GET /lrs/settings?aggregate_entity=<aggregate_id>

Пример запроса

curl -X 'GET' \
'http://192.168.10.1/lrs/settings?aggregate_entity=28608d66-a571-44ec-94db-04a00143ff51' \
-H 'accept: application/json' \
-H 'token: token'

Параметры запроса (query)

ПараметрОписание
aggregate_entityИдентификатор агрегации, для которой запрашиваются настройки очистки. Обязательный.

Заголовки запроса

ЗаголовокОписание
tokenТокен сервиса video-recorder. Хранится в секрете video-recorder-token в файле ./cfg/video-recorder.secrets.json. Обязательный.

Пример ответа

При успешном выполнении возвращается статус 200 OK и объект с настройками очистки:

{
"retention_settings": {
"enable": true,
"content_retention": 1,
"content_retention_dimension": "days",
"execution_cron": "* 1 1 * *"
}
}

API для работы с ручной очисткой и результатами очистки

Получение результатов очистки

Данный запрос возвращает результаты последней выполненной очистки для всех агрегаций, для которых были созданы настройки. Результаты содержат статус очистки, а также дату, относительно которой она выполнялась. Если очистка выполняется в текущий момент, статус отобразит это состояние.

Схема запроса: GET /lrs/retention/metrics

Пример запроса

curl -X 'GET' \
'http://192.168.10.1/lrs/retention/metrics' \
-H 'accept: application/json' \
-H 'token: token'

Заголовки запроса

ЗаголовокОписание
tokenТокен сервиса video-recorder. Хранится в секрете video-recorder-token в файле ./cfg/video-recorder.secrets.json. Обязательный.

Пример ответа

При успешном выполнении возвращается статус 200 OK и объект, где ключом является идентификатор агрегации, а значением - объект с результатами очистки:

{
"28608d66-a571-44ec-94db-04a00143ff51": {
"result": {
"exception": null
},
"status": 1,
"planned_retention_date": "2026-06-29T11:10:15.843710+00:00",
"actual_retention_date": "2026-06-29T10:56:00+00:00",
"last_modified": "2026-06-29T11:10:15.843715+00:00"
}
}

Структура ответа

ПолеОписание
resultОбъект, содержащий информацию о результате очистки. В текущей версии содержит поле exception с данными об ошибке, если таковая произошла.
statusСтатус очистки. Возможные значения: 0 — очистка выполняется в данный момент; 1 — очистка завершена успешно; 2 — в процессе очистки произошла ошибка.
planned_retention_dateПлановое время запуска предыдущей очистки (согласно расписанию).
actual_retention_dateФактическая дата, относительно которой выполнялась очистка. Все попытки, созданные ранее этой даты, были удалены.
last_modifiedВремя последнего обновления записи о результатах очистки.

Получение следующего времени плановой очистки

Данный запрос возвращает дату и время следующего запуска очистки по расписанию для указанной агрегации.

примечание

Чтобы получить время следующей плановой очистки для только что созданного объекта настроек, необходимо дождаться первого запуска внутренней процедуры проверки расписания очистки. Подробнее см. в разделе настройки очистки.

Схема запроса: GET /lrs/retention/retention_time/<aggregate_id>

Пример запроса

curl -X 'GET' \
'http://192.168.10.1/lrs/retention/retention_time/28608d66-a571-44ec-94db-04a00143ff51' \
-H 'accept: application/json' \
-H 'token: token'

Параметры запроса (path)

ПараметрОписание
aggregate_idИдентификатор агрегации, для которой запрашивается время следующей очистки. Обязательный.

Заголовки запроса

ЗаголовокОписание
tokenТокен сервиса video-recorder. Хранится в секрете video-recorder-token в файле ./cfg/video-recorder.secrets.json. Обязательный.

Пример ответа

"2026-08-01T01:00:00+00:00"

Запуск ручной очистки данных

Данный запрос инициирует ручную очистку данных, удаляя все попытки, созданные ранее указанной даты.

Схема запроса: POST /lrs/retention/priority_execution/<aggregate_id>?priority_date=<priority_date>&execute_as_planned=false

Пример запроса

curl -X 'POST' \
'https://baf.3divi.ru/lrs/retention/priority_execution/28608d66-a571-44ec-94db-04a00143ff51?priority_date=2022-08-01T01%3A00%3A00%2B00%3A00&execute_as_planned=false' \
-H 'accept: application/json' \
-H 'token: token'

Параметры запроса (query)

ПараметрОписание
aggregate_idИдентификатор агрегации, для которой выполняется ручная очистка. Обязательный.
priority_dateДата, ранее которой все попытки будут удалены. Обязательный.
execute_as_plannedСлужебный параметр. Должен всегда иметь значение false. Обязательный.

Заголовки запроса

ЗаголовокОписание
tokenТокен сервиса video-recorder. Хранится в секрете video-recorder-token в файле ./cfg/video-recorder.secrets.json. Обязательный.