API проекта
Один проект, постоянная история и простой JSON API. Все операции с данными требуют сессию или Bearer-ключ.
Авторизация
Ключ Codex хранится на сервере в закрытом файле Kanban/runtime/api.key. Используйте его только из серверных инструментов. Для браузера предусмотрен вход по логину и паролю.
Authorization: Bearer <ключ> Content-Type: application/json
Маршруты
| Метод | Маршрут | Результат |
|---|---|---|
| GET | /api/board | Доска, этапы, прогресс, состояние синхронизации |
| GET | /api/tasks | Задачи; фильтры status, scope, archived |
| POST | /api/tasks | Создать ручную задачу |
| GET | /api/tasks/{id} | Текущая карточка и revision |
| PATCH | /api/tasks/{id} | Изменить задачу с проверкой revision |
| DELETE | /api/tasks/{id}?revision=N | Архивировать ручную задачу, сохранив историю |
| POST | /api/tasks/{id}/comments | Добавить комментарий |
| GET | /api/requirements?step=05 | Требования и сценарии проверки |
| GET | /api/events?after=100 | Новые изменения; task_id, before, limit для пагинации |
| POST | /api/sync | Немедленно обновить реестр AGC |
| GET | /api/export | Скачать JSON задач, истории и реестра |
| GET | /api/openapi.json | Машинный контракт OpenAPI |
Создание задачи
POST /api/tasks
{
"title": "Проверить выдачу PDF после отзыва доступа",
"description": "Прямой запрос к файлу должен быть отклонён.",
"step_id": "05",
"priority": "high",
"status": "planned"
}
Статусы доски
| Значение API | Колонка | Смысл |
|---|---|---|
planned | Запланировано | Работа ожидает начала |
in_progress | В работе | Работа выполняется |
review | Сделано | Работа готова к проверке |
done | Принято | Проверка и приёмка завершены |
blocked | Ошибки | Обнаружена проблема, требуется исправление |
Порядок и названия колонок доступны в поле statuses ответа /api/board. Отложенные задачи имеют область scope=deferred и статус planned. Прежнее входное значение статуса deferred преобразуется в planned.
Редактирование и конфликты
Сначала прочитайте карточку, затем передайте её revision. При конкурентном изменении сервер вернёт 409: прочитайте новую версию и повторите правку осознанно.
PATCH /api/tasks/TASK-…
{ "revision": 1, "status": "in_progress", "assignee": "Codex" }
Связь с AGC
Карточки AGC-01…AGC-11 синхронизируются из реестра каждые 20 секунд. Этапы 01–09 относятся к основному MVP, 10 — к внешним интеграциям, 11 — к отложенной мобильной фазе. У импортированных этапов можно менять исполнителя, срок и приоритет. Их статус меняется вместе с планом AGC.
Реализованные и подтверждённые требования отображаются отдельно. Завершение этапа не заменяет приёмку отложенных частей ТЗ.
Инструмент для Codex
.venv/bin/python ops/client.py board .venv/bin/python ops/client.py create --title "Проверить PDF" --step 05 .venv/bin/python ops/client.py update TASK-… --status in_progress .venv/bin/python ops/client.py comment AGC-05 --text "Проверки выполнены" .venv/bin/python ops/client.py events --after 100
Клиент автоматически читает локальный ключ. Ключ не передаётся в аргументах команд и не выводится в журнал.