API чтения
Все эндпоинты чтения находятся под /api/v1 и требуют Bearer-токена со скоупом read.
История сущности
GET /api/v1/collections/{collection}/entities/{entityId}/history
Возвращает постраничный список событий для сущности (по умолчанию новейшие первые).
Параметры запроса
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
from |
RFC3339 | — | События, полученные с этого момента |
to |
RFC3339 | — | События до этого момента |
author_id |
string | — | Фильтр по автору |
op |
string | — | Фильтр по операции: create, update, delete |
path |
string | — | Фильтр по пути поля |
limit |
integer | 100 | Размер страницы (1–1000) |
cursor |
string | — | Токен пагинации из предыдущего ответа |
order |
string | desc |
asc или desc |
format |
string | native |
Формат диффа: native или json-patch (RFC 6902) |
Ответ (200):
{
"entity_id": "deal-1",
"next_cursor": "eyJ2IjoxMH0=",
"events": [
{
"version": 4,
"op": "update",
"ts_received": "2026-06-02T09:00:01Z",
"author_id": "user-42",
"integrity": {
"hash": "sha256:9f86d0...",
"prev_hash": "sha256:2c2640..."
},
"changes": [
{"path": "amount", "op": "change", "old": 50000, "new": 75000}
]
}
]
}
Поле integrity присутствует только когда включён плагин hash_chain.
Текущее состояние
GET /api/v1/collections/{collection}/entities/{entityId}/state
{
"entity_id": "deal-1",
"version": 4,
"ts": "2026-06-02T09:00:01Z",
"deleted": false,
"state": {
"title": "ООО Ромашка",
"amount": 75000,
"stage": "qualified"
}
}
Возвращает 404 если сущность никогда не записывалась или была purge-удалена.
Point-in-time состояние
GET /api/v1/collections/{collection}/entities/{entityId}/state?version=3
GET /api/v1/collections/{collection}/entities/{entityId}/state?ts=2026-05-01T00:00:00Z
Восстанавливает состояние сущности на конкретную версию или момент времени. Letopis использует ближайший слепок + хвостовую перезагрузку.
Верификация хэш-цепи
GET /api/v1/collections/{collection}/entities/{entityId}/verify
Проверяет SHA-256 хэш-цепь для сущности. Возвращает первое расхождение или {"ok": true} при целостности цепи.
Список сущностей
GET /api/v1/collections/{collection}/entities
Постраничный список ID сущностей в коллекции. Параметры: limit, cursor, order_by (entity_id или ts), order.
Бизнес-потоки
GET /api/v1/flows/{flowId}
Возвращает полный причинно-следственный DAG бизнес-потока: все активности и связи caused_by.
{
"flow_id": "flow-deal-onboarding",
"activities": [
{
"activity_id": "act-111",
"collection": "crm.deals",
"entity_id": "deal-1",
"version": 2,
"step": "qualification",
"caused_by": []
}
]
}