This commit is contained in:
@@ -149,8 +149,13 @@
|
|||||||
"actorType": "tenant",
|
"actorType": "tenant",
|
||||||
"actorId": "1f2e3d4c-5b6a-7980-1234-56789abcdef0",
|
"actorId": "1f2e3d4c-5b6a-7980-1234-56789abcdef0",
|
||||||
"tenantId": "aabbccdd-eeff-0011-2233-445566778899",
|
"tenantId": "aabbccdd-eeff-0011-2233-445566778899",
|
||||||
|
"tenantName": "ООО «Ромашка»",
|
||||||
"ip": "203.0.113.7",
|
"ip": "203.0.113.7",
|
||||||
"detailJson": "{\"cardId\":\"c_1a2b3c4d5e6f\",\"to\":\"planned\"}",
|
"changes": [
|
||||||
|
{ "field": "cardId", "to": "c_1a2b3c4d5e6f" },
|
||||||
|
{ "field": "to", "to": "planned" }
|
||||||
|
],
|
||||||
|
"detailJson": "{\"changes\":[{\"field\":\"cardId\",\"to\":\"c_1a2b3c4d5e6f\"},{\"field\":\"to\",\"to\":\"planned\"}]}",
|
||||||
"at": "2026-09-10T15:22:46.123Z",
|
"at": "2026-09-10T15:22:46.123Z",
|
||||||
"id": 1042
|
"id": 1042
|
||||||
}
|
}
|
||||||
@@ -162,7 +167,18 @@
|
|||||||
```
|
```
|
||||||
|
|
||||||
- `items` — новые сверху (`at` DESC). `total` — полное число по фильтру (без `limit`/`offset`).
|
- `items` — новые сверху (`at` DESC). `total` — полное число по фильтру (без `limit`/`offset`).
|
||||||
- `detailJson` — **строка** JSON деталей события (без секретов), может быть `null`.
|
- `tenantName` — имя пользователя события (join с реестром); `null`, если пользователя нет/не разрешено.
|
||||||
|
- `changes` — человекочитаемые изменения параметров события (см. «Детали события»); `[]`, если деталей нет.
|
||||||
|
- `detailJson` — **строка** сырого JSON деталей события (без секретов) для спойлера; может быть `null`.
|
||||||
|
|
||||||
|
### Детали события (`changes`)
|
||||||
|
|
||||||
|
Детали события хранятся как JSON вида `{ "changes": [ { "field": "<код>", "from": "<было>", "to": "<стало>" } ] }`,
|
||||||
|
где `field` — стабильный код параметра, `from` — предыдущее значение (`null` — параметр задан впервые),
|
||||||
|
`to` — новое. Сериализация деталей — `AuditService.ToDetailJson`, форма изменения — `AuditDetails.Set`/
|
||||||
|
`AuditDetails.Change`. Ядро отдаёт `changes` как есть; человекочитаемые названия событий, акторов, параметров
|
||||||
|
и значений — в ресурсах интерфейса (`ru.js`: `operator.event`/`operator.actor`/`operator.field`/`operator.value`).
|
||||||
|
Прежние записи плоского формата (`{ "login": "..." }`, пары `old*`/`new*`) читаются обратно совместимо.
|
||||||
|
|
||||||
**Коды**: `200`, `401`.
|
**Коды**: `200`, `401`.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user