Перейти к основному содержимому

Методы Management API

Поля spec, state, payload, params, result, manifest — JSON внутри protobuf bytes. Ref записи всегда имеет форму kind/id.

ResourcesAPI​

МетодRequestResult
Listselector или query, page size/tokensnapshot ресурсов и следующий token
Countselector или query; optional group by statustotal и группы status
CountOwnedдо 100 owner refsчисло live children каждого owner
Getrefполная запись, включая закрытую
GetManyдо 100 refsполные записи одним вызовом; несуществующие перечислены в missing, а не роняют вызов
Treeowner ref, include_deletedрекурсивное дерево владения; дерево прогона всегда включает его удалённые записи, другого владельца — по запросу; каждый узел несёт flows записи
Deleterefждёт child-first finalize
Transferref, new owner, optional keep secondsотдаёт всё поддерево
Invokeref, command, JSON payload, optional request idJSON result команды
Applykind, id, JSON spec, labelsref объявленной записи
Downloadrefbyte stream либо not-found без blob

List принимает либо structured selector (kind, phase, owner, точные labels), либо query string, но не оба. Query fields: kind, id, phase, owner, pipeline, started, finished, label.<key>. Продолжать страницу можно только opaque next_page_token предыдущего ответа.

System labels под graphene.io/ нельзя задавать пользователю. Invoke.request_id дедуплицирует retries; без него сервер создаёт id.

RunsAPI​

МетодRequestResult
StartRunrun id, pipeline, params, optional image и labelsrun id, workflow ids, decision — started, exists (id уже называет ровно этот запрос, нового не началось), queued (+ displaced_run_id), replaced-previous; другой запрос под занятым id — ALREADY_EXISTS
GetRunrun idфаза прогона
WatchRunrun idтекущий status, затем переходы до terminal
RunResultrun idждёт и возвращает state прогона: result (частичный у упавшего) и error
CancelRunrun idпросит cancellation с cleanup
RunStatusrun idфаза и pending activities с attempts, failure, heartbeat

Image делает run managed: worker запускает сервер. Params проверяются по manifest выбранного pipeline или revision до старта. Runs перечисляются через ResourcesAPI.List с kind run.

Фазы — один строчный словарь для прогонов и записей: прогон — running, completed, failed, canceled, terminated или timed-out; запись — creating, ready, updating, deleting, deleted или failed. phase= селектора говорит теми же словами; phase=deleted перечисляет записи, закончившие жизнь (насколько назад хранит retention).

state закрытого прогона — то, что оставило его закрытие: {result} у завершённого, {error, result} у незавершённого — пайплайн закрывает упавший прогон частичным результатом в details failure, а дверь читает его обратно. RunResult возвращает те же два поля.

ObserveAPI.Events принимает kinds для фильтра на сервере; веха, поставленная пайплайном через EventsAPI.Emit, приходит как kind note с именем вехи в subject и payload в input.

RevisionsAPI​

МетодRequestResult
Materializepipeline и tar.gz bytes либо source refстадии upload, runtime, build, describe, publish, done
RunRevisionpipeline, revision, run id, params, labelsworkflow ids draft run

Materialization переживает отключение client, потому что build принадлежит revision record. Финальный event done содержит revision id, image и manifest.

SourceAPI​

МетодRequestResult
UploadSourcepipeline id и tar.gzlocation и digest
DownloadSourcesource reftar.gz byte stream
ListRuntimesemptyнастроенные names, versions, images и default
ListFilessource refpaths, sizes и tree digest
ReadFilesource ref и pathfile bytes

Files read-only. Мутация source — движение Git ref и затем команда sync записи.

ObserveAPI​

МетодRequestStream/result
Staterefworkflow status и entity record, когда применимо
Eventsref, cursor, follow, optional activity idклассифицированная полная history с raw event
Logsref; since/until, limit, order, page_token, severities, stream, agent, entity, text; query — LogsQL внутри записи (сбалансированный, без пайпа; не вместе с follow), либо raw без ref (admin)записи, dropped, закрывающий page{returned, truncated, next_page_token}; поля выборки действуют на live-хвост как на историю
LogFacetsвыборка Logs, fields, limitпо каждому полю — значения с числом записей
Metricsref, time range, step_seconds, follow; query — PromQL внутри записи (backend extra_filters), либо raw без ref (admin)snapshot JSON, live OTLP, dropped
Traceref, follow, limit; query — параметры Jaeger внутри записи, либо raw без ref (admin)snapshot JSON, live OTLP, dropped

Ошибки — коды: INVALID_ARGUMENT — запрос, шаг или фильтр, который отвергла дверь или backend (4xx); UNAVAILABLE — backend не ответил или ответил 5xx; UNIMPLEMENTED — за измерением нет backend, либо scoped-PromQL на backend без extra_filters; PERMISSION_DENIED — токену нельзя читать запись, или raw-поверхность запросил не администратор. Пустая выборка — OK и страница с нулём записей.

Raw queries бекенда доступны только admin и игнорируют record/follow. Live metrics и traces — сериализованные стандартные OTLP export requests.

AgentsAPI​

МетодRequestResult
Ptyagent id, columns, rowsopened session id, raw output, final exit
PtyInputsession id и data, resize либо closeacknowledgement

PTY намеренно смертен: shell закрывается при cancel stream, disconnect агента, explicit close или exit процесса. Reconnect отсутствует.

NamespacesAPI, RbacAPI, SecretsAPI​

Service.methodRequestResult
NamespacesAPI.ServerInfoemptyversion и component health
RbacAPI.IssueTokenaccount, TTL seconds, commenttoken id, одноразовое value, expiry
RbacAPI.WhoAmIemptysubject, groups, namespace, roles, allowed pairs, cluster-wide flag
SecretsAPI.SetSecretname и valueновый version counter

Metadata namespace, role, rolebinding, serviceaccount, var и secret остаётся обычными записями. Значения token и secret используют dedicated methods, потому что команда записи сохранила бы payload или result в history.