API сервиса является internal API для control-plane-service, runners и operational tooling. UI не ходит в execution-plane-service напрямую: product view строится через control-plane-service, который связывает operation/node history с attempts, logs, artifacts и evidence.
Принципы
- Все write calls idempotent по
idempotency_keyили lease token. - Secret values не принимаются, только
secret_refs. JobSpecявляется входным execution contract.ExecutionResultявляется выходным contract.- Для пользователя attempts видны как часть operation history, а не как отдельная бизнес-сущность.
Execute Job
Создает execution attempt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | |
Правила:
- При повторе с тем же
idempotency_keyвозвращается существующий attempt. - Validation failure возвращается синхронно без создания runnable attempt.
- Если runner unavailable, attempt может быть создан в
queuedили отклонен по policy.
Get Attempt
Возвращает execution state и refs.
1 2 3 4 5 6 7 8 9 10 | |
Cancel Attempt
Best-effort cancellation.
1 2 3 4 5 6 7 | |
Правила:
- Terminal attempt не отменяется повторно.
- Runner обязан прекратить работу, сохранить partial artifacts и вернуть final status
cancelled. - Если runner потерян, dispatcher переводит attempt в
lostилиcancelledпо cancellation policy.
Runner Lease Pull
Runner получает работу через pull или dispatcher assignment.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Lease token используется только runner-ом и не передается в UI.
Heartbeat
Runner сообщает progress.
1 2 3 4 5 6 7 8 9 | |
Если cancellation_requested=true, runner должен перейти к graceful stop.
Complete Attempt
Runner завершает attempt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Dispatcher строит ExecutionResult и доставляет его в control-plane-service.
ExecutionResult Callback
Callback в control-plane-service.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
Error Categories
API использует стабильные categories:
validation;runner_unavailable;target_unreachable;permission_denied;secret_resolution_failed;artifact_upload_failed;command_failed;timeout;cancelled;heartbeat_lost;internal.
Эти categories помогают control-plane-service предложить retry, manual intervention, PlanPatch или AI remediation.
Совместимость
- Контракты версионируются через
api_version. - Добавление optional fields не ломает совместимость.
- Удаление или изменение semantics existing fields требует новой версии contract.
- Runner должен явно объявлять поддерживаемые
job_typeи contract versions.