Плановая очистка
Очистка работает в разрезе агрегаций и настраивается для каждой из них независимо. Это означает, что для разных агрегаций могут быть установлены различные планы очистки. Каждая попытка создаётся в рамках определённой агрегации. В 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. Обязательный. |