API-пайплайн: история версий карточки

Индекс: API-пайплайны — индекс

Цель: хранить каждое сохранённое состояние карточки, делать снимок по требованию и откатываться к старой версии.

Шаги

  1. Включить историю (только владелец).
PUT /v0/my/cards/470000000000000001/versions
{"enabled": true}
→ {"nonce": "470000000000000001", "versioned": true, "workspace": "470000000000000031", "items": []}

История работает для проектов, статей, постов, документов, таблиц, досок, воркспейсов, рубрик, кампаний, оракулов, агенд, API-эндпоинтов, ссылок, секретов, комнат и купонов. {"enabled": false} выключает её.

  1. Редактируйте как обычно. Каждая запись владельца или редактора сначала сохраняет прежнее состояние как следующую версию.

  2. Снимок сейчас (нужен write; без тела).

POST /v0/my/cards/470000000000000001/versions
→ {"version": 3, "nonce": "470000000000000043", "created_at": "2026-10-15T12:00:00Z", "author": "<user>"}
  1. Список версий.
GET /v0/my/cards/470000000000000001/versions
→ {"versioned": true, "workspace": "470000000000000031",
   "items": [{"version": 1, "nonce": "470000000000000041", "created_at": "…", "author": "<user>"}, …]}

Версия 1 самая старая; номера не меняются. Версию читают обычным GET карточки по её nonce; GET /v0/my/cards/{snapshot}/versions отвечает version_of и version.

  1. Откат.
POST /v0/my/cards/470000000000000001/versions/2/make-current
→ {"nonce": "470000000000000001", "restored": 2, "pushed": {"version": 4, "nonce": "…", …}}

Текущее состояние сначала сохраняется как следующая версия (pushed), поэтому откат можно отменить так же.

За кадром

Правила

Поверхность API

Эндпоинт Назначение FE ИИ / оракул
PUT /v0/my/cards/{nonce}/versions Включить или выключить историю да (Хранить историю) да, перед правкой важных карточек
GET /v0/my/cards/{nonce}/versions Список версий да (История) да
POST /v0/my/cards/{nonce}/versions Снимок сейчас да (Сохранить версию) да, как контрольная точка
POST /v0/my/cards/{nonce}/versions/{version}/make-current Откат да (Сделать текущей) да

Упомянуто