Blame

5a6349 GitLab Sync 2026-08-27 09:00:49
sync: pull wiki from dev
1
---
2
audience: R2
3
---
4
5
# API конфигурации
6
ab1ed8 GitLab Sync 2026-08-27 09:36:16
sync: pull wiki from dev
7
Приложение SKIF.TAG забирает настройки и отчитывается об их применении двумя запросами. Оба принимают `POST` с телом в JSON или в виде формы, оба требуют IMEI и пароль терминала — отдельных ключей доступа нет. Пароль задаётся в конфигураторе, см. [Настройка терминалов](/%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%82%D0%BE%D1%80%20skif-tag/%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D1%8B/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%20%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D0%BE%D0%B2).
5a6349 GitLab Sync 2026-08-27 09:00:49
sync: pull wiki from dev
8
9
## Свойства запросов
10
11
### Получение конфигурации
12
13
`POST /api/v1/config/lookup`
14
15
| Параметр | Тип | Описание |
16
|---|---|---|
17
| imei | string | IMEI терминала. Пробелы по краям отбрасываются. Обязательный. |
18
| password | string | Пароль терминала. Обязательный. |
19
| config_hash | string | Контрольная сумма конфигурации, которая уже стоит на устройстве. Необязательный. |
20
| config_version | integer | Отметка времени конфигурации на устройстве. Необязательный, используется, если не передан `config_hash`. |
21
22
Если переданный `config_hash` или `config_version` совпадает с серверным, ответ короткий:
23
24
```json
25
{ "status": "up_to_date", "config_version": 1775548065, "config_hash": "3f9a…" }
26
```
27
28
Иначе возвращается полная конфигурация, а терминал переводится в состояние «Конфигурация доставлена на устройство»:
29
30
| Поле ответа | Тип | Описание |
31
|---|---|---|
32
| imei | integer | IMEI терминала. |
33
| password | string | Пароль терминала. |
34
| server | string | Адрес приёмника в виде `хост:порт`. |
35
| config_version | integer | Отметка времени последнего изменения конфигурации. |
36
| min_distance | integer | Минимальное расстояние между точками, метры. |
37
| min_time | integer | Минимальное время между точками, секунды. |
38
| operation_mode | string | Режим работы: `light`, `standard` или `custom`. |
39
| settings_change_available | boolean | Разрешён ли пользователю выбор режима работы. |
40
| tracker_always_enable | boolean | Запрещено ли пользователю отключать отслеживание. |
41
| admin_lock_enabled | boolean | Задан ли PIN блокировки настроек. |
42
| settings_pin | integer, null | Сам PIN, если задан. |
43
| sos_cancel_available | boolean | Можно ли отменить отправку сигнала SOS. |
44
| sos_cancellation_duration | integer | Сколько секунд даётся на отмену. |
45
| sos_send_address | boolean | Отправлять ли адрес вместе с сигналом. |
46
| extra | object | Дополнительные параметры. Пустой объект, если их нет. |
47
| config_hash | string | Контрольная сумма конфигурации без `imei`, `password` и `config_version`. |
48
49
> Поля `sos_*` в панели конфигуратора не задаются — они приходят со значениями по умолчанию. В интерфейсе администратора их нет.
50
51
### Отчёт о применённой конфигурации
52
53
`POST /api/v1/config/report`
54
55
Приложение присылает конфигурацию, которая фактически стоит на устройстве. Обязательные параметры те же — `imei` и `password`. Остальные поля совпадают по именам с полями ответа `lookup`; всё, что не входит в этот перечень, отбрасывается.
56
57
Ответ:
58
59
```json
60
{ "status": "accepted" }
61
```
62
63
Когда присланный `config_hash` (или `config_version`) впервые совпадает с серверным, терминал переходит в состояние «Конфигурация применена на устройстве», и дата фиксируется. Повторные отчёты дату не сдвигают. Если значения расходятся, в карточке терминала это видно в таблице **Параметр / Серверная / На устройстве**.
64
65
## Ошибки
66
67
| Код | Ответ | Когда |
68
|---|---|---|
69
| 422 | `{"error": "missing_params"}` | Не передан `imei` или `password`. |
70
| 401 | `{"error": "invalid_credentials"}` | Терминал с таким IMEI не найден либо пароль не подошёл. Попытка попадает в журнал аудита. |
71
72
## Ограничения
73
74
Частота запросов ограничена и считается по двум счётчикам сразу: не более 60 запросов в минуту с одного адреса и не более 10 запросов в минуту на один IMEI. Лимиты общие для `lookup` и `report`.
75
76
Лимит на адрес поднят под ситуацию, когда весь парк телефонов выходит в сеть через один адрес оператора. Защиту от подбора пароля даёт счётчик на IMEI.
77
78
## Смотрите также
79
ab1ed8 GitLab Sync 2026-08-27 09:36:16
sync: pull wiki from dev
80
- [Свойства терминала](/%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%82%D0%BE%D1%80%20skif-tag/%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D1%8B/%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0%20%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D0%B0) — те же настройки в интерфейсе.
81
- [Журнал аудита](/%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%82%D0%BE%D1%80%20skif-tag/%D0%B6%D1%83%D1%80%D0%BD%D0%B0%D0%BB%20%D0%B0%D1%83%D0%B4%D0%B8%D1%82%D0%B0) — записи о выдаче конфигурации, отчётах и неудачных попытках.