Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

HTTP API: executions

Spuštění schopnosti tohoto registru jako práce, kterou lze sledovat: spuštěné, sledované událost po události přes živý kanál, zpětně přečtené a zastavitelné na požádání. Jedna rovina na checkout: `majordomus run` běží ve vlastním procesu a spuštění oznámí serveru, který checkout už obsluhuje, aby ho vedl vedle svých; bez serveru řekne, že běh nemůže nikdo jiný vidět. V paměti; spuštění nepřežije server, který ho drží.

Vykresleno z docs/generated/openapi.json, který spustitelný soubor generuje ze svého registru schopností a CI jej odmítne, je-li zastaralý. Surový dokument je na /openapi.json; běžící server servíruje stejný dokument na vlastní /openapi.json a Swagger UI na /swagger.

executions

Spuštění schopnosti tohoto registru jako práce, kterou lze sledovat: spuštěné, sledované událost po události přes živý kanál, zpětně přečtené a zastavitelné na požádání. Jedna rovina na checkout: `majordomus run` běží ve vlastním procesu a spuštění oznámí serveru, který checkout už obsluhuje, aby ho vedl vedle svých; bez serveru řekne, že běh nemůže nikdo jiný vidět. V paměti; spuštění nepřežije server, který ho drží.

GET /api/v1/executions executions.list

Výpis provedení

Každé provedení, které si tento proces pamatuje, nejnovější první, zúžené podle stavu nebo schopnosti: ta, která spustil, a ta, která mu nahlásil `majordomus run` v jiném procesu checkoutu, každé s tím, kdo je zahájil. Počty vedle nich — zapamatovaná, aktivní, ve frontě, živé kanály — jsou to, co řídicí rovina ukazuje, aniž by se ptala podruhé.

  • query
  • behaviorally_verified
  • vyžaduje se měření výkonu
  • cache vypnuta
  • nástroj MCP majordomus_executions
  • zdroj MCP {"name": "executions", "uri": "majordomus://executions"}
  • $ executions list

Parametry dotazu

názevtyppovinnépopispříklady
state ExecutionState | null ne Jen execution v tomto stavu.
schopnost string ne Pouze provedení této schopnosti.
limit integer (uint) ne Kolik, nejnovější první; výchozí hodnota i mez jsou obě `200`. recent: 50

Vyzkoušejte

Port je ten, který server zalogoval; 8741 je ten, o který žádá jako první. Hodnoty jsou první příklad operace.

curl -s "http://127.0.0.1:8741/api/v1/executions?limit=50"

Testováno v apps/majordomus-cli/tests/http_serve.rs, který přehrává routu s těmito hodnotami proti serveru na skutečném socketu.

Odpovědi

statustělovýznam
200 ExecutionList Vypsat provedení: výsledek.
400 ErrorBody invalid_input: Vstup neodpovídá schématu: parametr špatného typu, neznámý parametr nebo hodnota, kterou schopnost odmítne.
404 ErrorBody not_found: Vstup pojmenovává něco, co repozitář nemá.
500 ErrorBody internal: Schopnost selhala z vlastního důvodu; zpráva ho pojmenovává.
výchozí ErrorBody Jakékoli jiné selhání, které transport hlásí: 405 method_not_allowed pro jinou metodu na této cestě, 400 invalid_input pro tělo, které není objektem JSON.
POST /api/v1/executions/cancel executions.cancel

Požádat provedení o zastavení

Nastaví příznak zrušení provádění a oznámí to na jeho streamu. Zrušení je kooperativní: úloha se podívá na svůj příznak a zastaví se, a schopnost, jejíž politika říká, že ji nelze zrušit, doběhne do konce — což odpověď říká, místo aby předstírala opak.

  • command
  • behaviorally_verified
  • měření výkonu prominuto: transient_state
  • cache vypnuta
  • MCP nástroj majordomus_execution_cancel
  • $ executions cancel

Tělo požadavku — CancelInput, JSON

Vyzkoušejte

Port je ten, který server zalogoval; 8741 je ten, o který žádá jako první. Hodnoty jsou první příklad operace.

curl -s -X POST "http://127.0.0.1:8741/api/v1/executions/cancel" -H "content-type: application/json" -d '{}'

Testováno v apps/majordomus-cli/tests/http_serve.rs, který přehrává routu s těmito hodnotami proti serveru na skutečném socketu.

Odpovědi

statustělovýznam
200 CancelReport Požádání provedení o zastavení: výsledek.
400 ErrorBody invalid_input: Vstup neodpovídá schématu: parametr špatného typu, neznámý parametr nebo hodnota, kterou schopnost odmítne.
404 ErrorBody not_found: Vstup pojmenovává něco, co repozitář nemá.
422 ErrorBody refused: Příkaz byl srozumitelný a byl odmítnut z důvodu, který uvádí zpráva.
500 ErrorBody internal: Schopnost selhala z vlastního důvodu; zpráva ho pojmenovává.
výchozí ErrorBody Jakékoli jiné selhání, které transport hlásí: 405 method_not_allowed pro jinou metodu na této cestě, 400 invalid_input pro tělo, které není objektem JSON.
GET /api/v1/executions/demonstrate executions.demonstrate

Předvést provedení

Projít daný počet kroků, každý ohlásit, zapsat řádek a posunout postup, pak skončit — nebo selhat v kroku, který pojmenujete. Existuje proto, aby operátor, sonda a end-to-end test mohli prokázat, že celá cesta funguje, aniž by čekali na skutečnou práci: nic nečte, nic nezapisuje a jeho jediným účinkem jsou události, které vytvoří. Mezi kroky a během čekání se dívá na svůj příznak zrušení, takže jeho zrušení jej zastaví.

  • query
  • behaviorally_verified
  • vyžaduje se měření výkonu
  • cache vypnuta
  • nástroj MCP majordomus_demonstrate_execution

Parametry dotazu

názevtyppovinnépopispříklady
kroky integer (uint64) ne Kolik kroků projít. okamžitě: 1
delay_ms integer (uint64) ne Jak dlouho každý krok trvá, v milisekundách. Omezeno na deset sekund na krok, takže to nelze použít k zadržení pracovníka. immediate: 0
fail_at integer (uint64) ne Na tomto kroku selhat místo dokončení, aby se ukázalo, jak selhání vypadá.

Vyzkoušejte

Port je ten, který server zalogoval; 8741 je ten, o který žádá jako první. Hodnoty jsou první příklad operace.

curl -s "http://127.0.0.1:8741/api/v1/executions/demonstrate?steps=1&delay_ms=0"

Testováno v apps/majordomus-cli/tests/http_serve.rs, který přehrává routu s těmito hodnotami proti serveru na skutečném socketu.

Odpovědi

statustělovýznam
200 DemonstrateReport Předvést provádění: výsledek.
400 ErrorBody invalid_input: Vstup neodpovídá schématu: parametr špatného typu, neznámý parametr nebo hodnota, kterou schopnost odmítne.
404 ErrorBody not_found: Vstup pojmenovává něco, co repozitář nemá.
500 ErrorBody internal: Schopnost selhala z vlastního důvodu; zpráva ho pojmenovává.
výchozí ErrorBody Jakékoli jiné selhání, které transport hlásí: 405 method_not_allowed pro jinou metodu na této cestě, 400 invalid_input pro tělo, které není objektem JSON.
GET /api/v1/executions/events executions.events

Historie událostí provedení

Uchované události jednoho provedení, nejstarší první, po pořadovém čísle. Toto čte prohlížeč po obnovení stránky a klient po opětovném připojení: stránka nese kurzor, kterým otevřít živý kanál, takže mezi historií a proudem nic nechybí.

  • query
  • behaviorally_verified
  • měření výkonu prominuto: transient_state
  • cache vypnuta
  • Nástroj MCP majordomus_execution_events
  • $ executions events

Parametry dotazu

názevtyppovinnépopispříklady
id string ano Id provedení.
po integer (uint64) ne Pouze události po tomto pořadovém čísle: kurzor, který drží znovu se připojující klient.
limit integer (uint) ne Kolik, od nejstarších; výchozí hodnota i mez jsou `500`.

Vyzkoušejte

Port je ten, který server zalogoval; 8741 je ten, o který žádá jako první. Hodnoty jsou první příklad operace.

curl -s "http://127.0.0.1:8741/api/v1/executions/events"

Testováno v apps/majordomus-cli/tests/http_serve.rs, který přehrává routu s těmito hodnotami proti serveru na skutečném socketu.

Odpovědi

statustělovýznam
200 EventHistory Historie událostí provádění: výsledek.
400 ErrorBody invalid_input: Vstup neodpovídá schématu: parametr špatného typu, neznámý parametr nebo hodnota, kterou schopnost odmítne.
404 ErrorBody not_found: Vstup pojmenovává něco, co repozitář nemá.
500 ErrorBody internal: Schopnost selhala z vlastního důvodu; zpráva ho pojmenovává.
výchozí ErrorBody Jakékoli jiné selhání, které transport hlásí: 405 method_not_allowed pro jinou metodu na této cestě, 400 invalid_input pro tělo, které není objektem JSON.
GET /api/v1/executions/get executions.get

Jedno provedení

Vše, co je známo o jednom provedení: jeho stav, vstup tak, jak byl uložen, kroky, postup, diagnostika a výstup nebo chyba. Pořízeno pod jedním zámkem, takže snímek, který říká, že uspěl, nese, co vytvořil.

  • query
  • behaviorally_verified
  • měření výkonu prominuto: transient_state
  • cache vypnuta
  • nástroj MCP majordomus_execution
  • $ executions show

Parametry dotazu

názevtyppovinnépopispříklady
id string ano Id provedení.

Vyzkoušejte

Port je ten, který server zalogoval; 8741 je ten, o který žádá jako první. Hodnoty jsou první příklad operace.

curl -s "http://127.0.0.1:8741/api/v1/executions/get"

Testováno v apps/majordomus-cli/tests/http_serve.rs, který přehrává routu s těmito hodnotami proti serveru na skutečném socketu.

Odpovědi

statustělovýznam
200 ExecutionView Jedno provedení: výsledek.
400 ErrorBody invalid_input: Vstup neodpovídá schématu: parametr špatného typu, neznámý parametr nebo hodnota, kterou schopnost odmítne.
404 ErrorBody not_found: Vstup pojmenovává něco, co repozitář nemá.
500 ErrorBody internal: Schopnost selhala z vlastního důvodu; zpráva ho pojmenovává.
výchozí ErrorBody Jakékoli jiné selhání, které transport hlásí: 405 method_not_allowed pro jinou metodu na této cestě, 400 invalid_input pro tělo, které není objektem JSON.
GET /api/v1/executions/protocol executions.protocol

Kontrakt živého kanálu

Kde je WebSocket, jak se vyjadřuje odběr a opětovné připojení, co server zapisuje a JSON Schema každé zprávy — odvozeno z typů Rustu, které jej implementují, takže klient validující proti tomuto validuje proti implementaci. OpenAPI nedokáže popsat socket; zde žije tento kontrakt.

  • query
  • behaviorally_verified
  • vyžaduje se měření výkonu
  • cache vypnuta
  • nástroj MCP majordomus_execution_protocol
  • zdroj MCP {"name": "execution-protocol", "uri": "majordomus://executions/protocol"}
  • $ executions protocol

Žádné parametry.

Vyzkoušejte

Port je ten, který server zalogoval; 8741 je ten, o který žádá jako první. Hodnoty jsou první příklad operace.

curl -s "http://127.0.0.1:8741/api/v1/executions/protocol"

Testováno v apps/majordomus-cli/tests/http_serve.rs, který přehrává routu s těmito hodnotami proti serveru na skutečném socketu.

Odpovědi

statustělovýznam
200 ProtocolReport Smlouva živého kanálu: výsledek.
400 ErrorBody invalid_input: Vstup neodpovídá schématu: parametr špatného typu, neznámý parametr nebo hodnota, kterou schopnost odmítne.
404 ErrorBody not_found: Vstup pojmenovává něco, co repozitář nemá.
500 ErrorBody internal: Schopnost selhala z vlastního důvodu; zpráva ho pojmenovává.
výchozí ErrorBody Jakékoli jiné selhání, které transport hlásí: 405 method_not_allowed pro jinou metodu na této cestě, 400 invalid_input pro tělo, které není objektem JSON.
POST /api/v1/executions/report executions.report

Nahlášení provedení, které běží v jiném procesu

Co `majordomus run` odesílá, zatímco spouští schopnost ve vlastním procesu a checkout už servíruje server: popis provedení a jeho události po poslední sekvenci, kterou tento server převzal. Server ho drží jako provedení spuštěné z příkazové řádky, s pid, ve stejném úložišti, výpisu, stránkách Cockpitu a živém kanálu jako vlastní provedení; každou událost aplikuje jednou a v pořadí a odpoví, kde začíná další hlášení; oznámí hlásiči, že ho někdo požádal o zastavení; a selže ho s `unavailable`, jakmile hlásič 30 s mlčí. Nic se zde nespouští. Mění pouze paměť tohoto procesu.

  • command
  • behaviorally_verified
  • měření výkonu prominuto: transient_state
  • cache vypnuta

Tělo požadavku — ReportInput, JSON

Vyzkoušejte

Port je ten, který server zalogoval; 8741 je ten, o který žádá jako první. Hodnoty jsou první příklad operace.

curl -s -X POST "http://127.0.0.1:8741/api/v1/executions/report" -H "content-type: application/json" -d '{}'

Testováno v apps/majordomus-cli/tests/http_serve.rs, který přehrává routu s těmito hodnotami proti serveru na skutečném socketu.

Odpovědi

statustělovýznam
200 ReportAnswer Report provedení, které běží v jiném procesu: výsledek.
400 ErrorBody invalid_input: Vstup neodpovídá schématu: parametr špatného typu, neznámý parametr nebo hodnota, kterou schopnost odmítne.
404 ErrorBody not_found: Vstup pojmenovává něco, co repozitář nemá.
422 ErrorBody refused: Příkaz byl srozumitelný a byl odmítnut z důvodu, který uvádí zpráva.
500 ErrorBody internal: Schopnost selhala z vlastního důvodu; zpráva ho pojmenovává.
výchozí ErrorBody Jakékoli jiné selhání, které transport hlásí: 405 method_not_allowed pro jinou metodu na této cestě, 400 invalid_input pro tělo, které není objektem JSON.
POST /api/v1/executions/start executions.start

Spustit schopnost jako provedení

Spustí jako provedení libovolnou spustitelnou schopnost tohoto registru: vstup se ověří proti vlastnímu vstupnímu schématu té schopnosti, práce se zařadí do fronty a toto okamžitě odpoví id provedení a odkazy, jak ho sledovat. Nic nečeká na handler. Schopnost běží přes týž exekutor, který volá každé jiné rozhraní, takže žádná druhá implementace ničeho neexistuje. Na příkazové řádce (`majordomus run`) běží v tomto procesu a hlásí se serveru, který checkout obsluhuje, pokud nějaký je, přes executions.report; běh nikdy nespustí server.

  • command
  • behaviorally_verified
  • vyžaduje se měření výkonu
  • cache vypnuta
  • Nástroj MCP majordomus_execution_start
  • $ run

Tělo požadavku — StartInput, JSON

příklad demonstrate

{"capability":"executions.demonstrate","input":{"steps":1,"delay_ms":0}}

Vyzkoušejte

Port je ten, který server zalogoval; 8741 je ten, o který žádá jako první. Hodnoty jsou první příklad operace.

curl -s -X POST "http://127.0.0.1:8741/api/v1/executions/start" -H "content-type: application/json" -d '{"capability":"executions.demonstrate","input":{"steps":1,"delay_ms":0}}'

Testováno v apps/majordomus-cli/tests/http_serve.rs, který přehrává routu s těmito hodnotami proti serveru na skutečném socketu.

Odpovědi

statustělovýznam
200 ExecutionView Spustit schopnost jako provedení: výsledek.
400 ErrorBody invalid_input: Vstup neodpovídá schématu: parametr špatného typu, neznámý parametr nebo hodnota, kterou schopnost odmítne.
404 ErrorBody not_found: Vstup pojmenovává něco, co repozitář nemá.
422 ErrorBody refused: Příkaz byl srozumitelný a byl odmítnut z důvodu, který uvádí zpráva.
500 ErrorBody internal: Schopnost selhala z vlastního důvodu; zpráva ho pojmenovává.
výchozí ErrorBody Jakékoli jiné selhání, které transport hlásí: 405 method_not_allowed pro jinou metodu na této cestě, 400 invalid_input pro tělo, které není objektem JSON.

Schémata

Komponenty, které používají jen operace tohoto tagu. Každý řádek je pole daného typu, jeho doc komentář je popis; typ vlastněný jinou stránkou na ni odkazuje.

Aktér

object
Kdo požádal a který je to peer, když to tento proces ví.
vlastnosttyppovinnépopis
druh ActorKind → ActorKind ano Odkud požadavek přišel.
peer string | null ne ID peeru pro volání, které dorazilo přes relaci MCP.
pid integer | null ne Proces, který to provedl, pro provedení, které spustil a nahlásil tomuto procesu jiný proces: práce proběhla tam a tento proces drží, co se o ní dozvěděl.

Používá ExecutionView

ActorKind

"http" | "mcp" | "cli" | "internal"
Kdo o provedení požádal. Není to rozhodnutí o autorizaci — tento server nikoho neautentizuje — ale fakt, který stojí za to přenést do auditního řádku a UI.
  • httpHTTP klient, což zahrnuje Cockpit.
  • mcpKlient MCP připojený k tomuto procesu.
  • cliPříkazová řádka: vlastní tohoto procesu, nebo majordomus run v jiném procesu téhož checkoutu, který svůj běh nahlásil tomuto serveru, s jeho pid.
  • internalVlastní testy a měření výkonu tohoto spustitelného souboru.

Používá Actor

CancelInput

object
Vstup executions.cancel.
vlastnosttyppovinnépopis
id string ano Id provedení.

Používá executions.cancel

CancelReport

object
Odpověď executions.cancel.
vlastnosttyppovinnépopis
výsledek string ano Čeho se dotazem dosáhlo: requested, already_requested nebo already_finished.
zrušitelné boolean ano Zda schopnost deklaruje, že sleduje svůj příznak zrušení. Pokud ne, požadavek se zaznamená a provádění doběhne do konce.
provádění ExecutionView → ExecutionView ano Provedení tak, jak stojí po požadavku.

Používá executions.cancel

DemonstrateReport

object
Odpověď executions.demonstrate.
vlastnosttyppovinnépopis
kroky integer (uint64) ano Kolik kroků proběhlo.
elapsed_ms integer (uint64) ano Jak dlouho to trvalo, v milisekundách.
pozorováno boolean ano Zda se někdo díval: false, když bylo voláno přímo, ne jako provedení, což je rozdíl, který tato schopnost existuje, aby ukázala.

Používá executions.demonstrate

EventHistory

object
Odpověď executions.events: jedna stránka uchované historie provádění.
vlastnosttyppovinnépopis
execution_id string ano Provedení, ke kterému události patří.
state ExecutionState → ExecutionState ano Kde provedení nyní stojí, aby klient potřeboval jeden požadavek místo dvou.
events pole ExecutionEvent → ExecutionEvent ano Události od nejstarší.
last_sequence integer (uint64) ano Pořadové číslo poslední události zde: kurzor pro další stránku a ten, kterým se otevírá živý kanál.
více boolean ano Zda právě teď po této stránce následují další události.
zkráceno boolean ano Zda události před touto stránkou už byly zahozeny mezí úložiště.

Používá executions.events

ExecutionDiagnostic

object
Strukturovaný nález, který provedení nahlásilo cestou, odlišný od jeho výsledku.
vlastnosttyppovinnépopis
závažnost Závažnost → Závažnost ano Jak závažné.
kód string ano Stabilní strojově čitelný kód.
summary string ano Jeden řádek, pro člověka.
detail string | null ne Zbytek, když je jich víc.
návrh string | null ne Co s tím dělat, když je co.

Používá ExecutionEvent ExecutionView

ExecutionError

object
Proč provedení skončilo špatně, ve slovníku diagnostiky repozitáře, ne ve slovníku Rustu: kód, podle kterého se program větví, věta, kterou čte člověk, a kam se dívat.

Zpráva o panice a backtrace tu nikdy nejsou. Engine zachytí handler, který zpanikařil, a ohlásí internal s korelačním id provádění; samotná panika je na vlastním chybovém streamu procesu, kde ji může číst operátor, který server provozuje.

vlastnosttyppovinnépopis
kód string ano invalid_input, not_found, refused, forbidden, internal, cancelled, unavailable.
zpráva string ano Co se pokazilo, pro člověka.
návrh string | null ne Co s tím dělat, když je co.
correlation_id string ano Provedení, kterému toto selhání patří, aby se řádek logu a UI shodovaly.

Používá ExecutionEvent ExecutionView

ExecutionEvent

jedna z 12 variant
Jedna událost o jednom provedení.

sequence je husté a v rámci provedení začíná od 1: klient, který viděl pořadí n, ví, že něco zmeškal, když další přečtená událost není n + 1, a o mezeru si řekne kurzorem, místo aby znovu načítal svět.

vlastnosttyppovinnépopis
schema_version string ano Verze protokolu, PROTOCOL_VERSION.
event_id string ano Identita této události: id provedení a pořadové číslo, takže klient, který deduplikuje, nepotřebuje vlastní složený klíč.
execution_id ExecutionId → ExecutionId ano Provedení, o které jde.
pořadí integer (uint64) ano Jeho pozice ve streamu tohoto provádění, od 1, bez mezer.
časové razítko string ano Kdy byla událost vytvořena, RFC 3339 v UTC.
variant Provedení bylo přijato a existuje. Nese, co spustí a s čím, redigováno, takže klient, který se připojí u první události, nepotřebuje nic dalšího k vykreslení nadpisu.
typ"execution.created"ano
dataobjectano
varianta Čeká na workera.
typ"execution.queued"ano
dataobjectano
varianta Worker ho převzal a chystá se vstoupit do handleru.
typ"execution.started"ano
variant Jak daleko je.
typ"execution.progress"ano
dataProgressView → ProgressViewano
varianta Bylo vstoupeno do pojmenované fáze.
typ"execution.step.started"ano
dataobjectano
variant Pojmenovaná fáze skončila.
typ"execution.step.completed"ano
dataobjectano
variant Řádek výstupu.
typ"execution.log"ano
dataobjekt → LogStreamano
varianta Strukturovaný nález, odlišný od výsledku.
typ"execution.diagnostic"ano
dataExecutionDiagnostic → ExecutionDiagnosticano
varianta Zrušení bylo vyžádáno; handler se ještě nezastavil.
typ"execution.cancelling"ano
dataobjectano
varianta Zastavilo se, protože o to bylo požádáno.
typ"execution.cancelled"ano
variant Skončilo to a handler vrátil výstup.

Výstup je na této události, a ne na vlastní, protože klient nikdy nesmí moci přečíst „succeeded“ a nenajít výsledek: stav a hodnota, kterou vytvořil, jsou jedním faktem a cestují spolu.

typ"execution.completed"ano
dataobjectano
variant Skončilo to, a přesto ne.
typ"execution.failed"ano
dataobject → ExecutionErrorano

Používá EventHistory ReportInput

ExecutionId

string
Identita jednoho provedení: x-<UTC timestamp>-<8 hex>.

Tvar je vlastní vrstvě — úloha je t-20260905034523-a9f1 — aby id přečtené v logu, URL nebo záložce prohlížeče bylo rozpoznatelné jako id tohoto repozitáře bez závislosti na crate pro UUID. Časové razítko řadí id podle vzniku pro čtenáře; to, že se dvě id vytvořená ve stejné sekundě liší, zajišťuje přípona, ne časové razítko.

Používá ExecutionEvent ExecutionView

ExecutionList

object
Odpověď executions.list.
vlastnosttyppovinnépopis
počet integer (uint) ano Kolik jich je zde zodpovězeno.
zapamatováno integer (uint) ano Kolik si jich tento proces pamatuje celkem, před filtrem.
aktivní integer (uint) ano Kolik jich není dokončeno.
ve frontě integer (uint) ano Kolik jich čeká na pracovníka.
live_channels integer (uint) ano Kolik živých kanálů je sleduje.
executions pole ExecutionView → ExecutionView ano Provádění, nejnovější první.

Používá executions.list

ExecutionState

"queued" | "running" | "cancelling" | "succeeded" | "failed" | "cancelled"
Kde je provedení ve svém životě.

Přechody jsou celý kontrakt a ExecutionState::may_move_to je jediné místo, kde jsou zapsány: engine se ptá před každou změnou, úložiště odmítne přesun, který nepovolilo, a klient, který čte konečný stav, ho nikdy neuvidí pohnout se znovu.

  queued ──► running ──┬──► succeeded
     │                 ├──► failed
     │                 └──► cancelling ──┬──► cancelled
     │                                   ├──► succeeded
     └──► cancelled                      └──► failed

Neexistuje starting. Engine v procesu převezme provedení a vstoupí do jeho handleru ve stejném okamžiku, takže stav mezi nimi by byl takový, který by žádný klient nikdy nepozoroval a který by musel ošetřit každý klient.

  • queuedPřijato a žádný worker se toho nechopil.
  • runningHandler běží.
  • cancellingO zrušení bylo požádáno a handler se ještě nezastavil.
  • succeededHandler vrátil výstup.
  • failedHandler vrátil chybu, nebo ho worker nemohl spustit.
  • cancelledZastavilo se, protože o to bylo požádáno.

Používá executions.list EventHistory ExecutionView

ExecutionView

object
Jedno provedení s odkazy na vše ostatní, co se k němu vztahuje.
vlastnosttyppovinnépopis
id ExecutionId → ExecutionId ano Identita.
schopnost string ano Schopnost, která běžela, podle svého kanonického id.
název string ano Titulek této schopnosti, aby seznam nepotřeboval druhé vyhledání.
state ExecutionState → ExecutionState ano Kde to je.
created_at string ano Kdy byla přijata, RFC 3339 v UTC.
started_at string | null ne Kdy byl handler vstoupen.
finished_at string | null ne Kdy dosáhlo konečného stavu.
duration_ms integer | null ne Jak dlouho běželo, v milisekundách, po skončení.
vstup libovolný ano Vstup, který dostala, s každou hodnotou, kterou vstupní schéma označuje jako citlivou, nahrazenou.
výstup libovolný ne Co handler vrátil, u úspěšného provádění a nikdy dřív.
chyba ExecutionError | null → ExecutionError ne Proč selhal, u selhaného provádění a nikdy dřív.
průběh ProgressView | null → ProgressView ne Poslední postup, který handler ohlásil.
kroky pole StepView → StepView ne Kroky, kterými prošlo, popořadě.
diagnostika pole ExecutionDiagnostic → ExecutionDiagnostic ne Nálezy, které nahlásila.
last_sequence integer (uint64) ano Pořadové číslo poslední události: kurzor, od kterého se klient přihlašuje k odběru.
event_count integer (uint64) ano Kolik událostí vyprodukoval, včetně těch, které se už neuchovávají.
events_truncated boolean ano Zda uchovávaná historie událostí kvůli limitu přišla o své nejstarší položky.
zrušitelné boolean ano Zda žádost o zrušení tohoto provedení něco způsobí: politika schopnosti.
aktér Actor → Actor ano Kdo o to požádal.
repozitář RepositoryRef → RepositoryRef ano Proti kterému repozitáři běželo.
correlation_id string ano Id použité v logech a tracing spanech tohoto procesu pro toto provádění; samotné id provádění, nesené pod jménem, které čtenář logu očekává.
odkazy ExecutionLinks → ExecutionLinks ano Kde číst dál.

Používá executions.get executions.start CancelReport ExecutionList ReportAnswer

LimitsView

object
Co drží úložiště provedení tohoto procesu.
vlastnosttyppovinnépopis
max_executions integer (uint) ano Kolik provádění se pamatuje.
max_events integer (uint) ano Kolik událostí se uchovává na jedno provádění.
max_log_chars integer (uint) ano Nejdelší délka jednoho řádku logu.
max_running integer (uint) ano Kolik provedení běží najednou.
max_subscriber_queue integer (uint) ano Jak daleko může živý kanál zaostat, než je vyzván k resynchronizaci.

Používá ProtocolReport

LogStream

"stdout" | "stderr" | "handler"
Ze kterého proudu řádek logu přišel.
  • stdoutStandardní výstup podřízeného procesu, který handler spustil.
  • stderrJeho standardní chybový výstup.
  • handlerSamotný handler, který říká něco, co chce, aby čtenář viděl.

Používá ExecutionEvent

ParameterView

object
Jeden parametr dotazu živého kanálu.
vlastnosttyppovinnépopis
název string ano Jeho jméno.
popis string ano Co dělá.
povinné boolean ano Zda se musí zadat.

Používá ProtocolReport

ProgressView

object
Jak daleko provedení pokročilo.
vlastnosttyppovinnépopis
aktuální integer (uint64) ano Hotové jednotky.
celkem integer | null ne Jednotek celkem, když handler ví, kolik jich je.
zpráva string | null ne Co se dělá, pro čtenáře.

Používá ExecutionEvent ExecutionView

ProtocolReport

object
Odpověď executions.protocol: celá smlouva živého kanálu, odvozená z typů, které ji implementují.
vlastnosttyppovinnépopis
protocol_version string ano Verze protokolu událostí, kterým tento server mluví.
websocket string ano Kde je živý kanál: cesta na tomtéž serveru, ne druhý démon.
odběr pole ParameterView → ParameterView ano Jak se předplatné vyjadřuje a co posílá opětovné připojení.
heartbeat_seconds integer (uint64) ano Kolik sekund ticha, než server pošle ping.
max_connections integer (uint) ano Kolik živých kanálů tento proces obsluhuje současně.
max_replay integer (uint) ano Kolik uchovaných událostí přehraje omezené spojení, než přejde do živého režimu.
event_types array of string ano Typy událostí, které klient smí přijmout, z jednoho enumu, který je definuje.
stream_types array of string ano Vlastní řídicí zprávy streamu.
event_schema libovolný ano JSON Schema události, odvozené z typu v Rustu.
stream_schema libovolný ano Schéma JSON řídicí zprávy, odvozené z typu Rustu.
limity LimitsView → LimitsView ano Co úložiště uchovává, aby klient věděl, na co se smí ptát.

Používá executions.protocol

ReportAnswer

object
Odpověď executions.report.
vlastnosttyppovinnépopis
aplikováno integer (uint) ano Kolik z nahlášených událostí bylo uplatněno.
skrz integer (uint64) ano Sekvence reportéra, do níž tento server drží vše: další report pošle události po ní, takže ztracený nebo opakovaný report nic nestojí.
cancel_requested boolean ano Zda někdo požádal tento server o zastavení provádění. Provádí ho reportér, takže ho zrušit musí reportér.
provádění ExecutionView → ExecutionView ano Provádění tak, jak je nyní tento server drží.

Používá executions.report

ReportInput

object
Vstup executions.report: co o provádění říká proces, který ho spouští, serveru obsluhujícímu stejný checkout.
vlastnosttyppovinnépopis
id string ano Id provádění tak, jak ho vytvořil hlásící proces.
schopnost string ano Schopnost, kterou spouští, podle jejího kanonického id.
název string ano Název této schopnosti.
vstup libovolný ne Vstup, který dostalo, tak jak jej uložil hlásící proces: už tam redigovaný a znovu zde redigovaný schématem tohoto registru, když ho tento registr zná.
zrušitelné boolean ne Zda se schopnost na požádání zastaví. Pokud ano, zrušení požadované od tohoto serveru dorazí k reportérovi v odpovědi na jeho další report.
pid integer (uint32) ano Proces, který jej spouští.
events pole ExecutionEvent → ExecutionEvent ne Jeho události po poslední sekvenci, na kterou tento server odpověděl through, ve vlastní sekvenci, nejstarší první; nejvýše 500. Prázdné je heartbeat.

Používá executions.report

RepositoryRef

object
Proti kterému repozitáři a kterému jeho checkoutu provádění běželo.

Provedení se nikdy nespouští proti „kdekoli, kde tento proces právě je“: engine opatří razítkem repozitář, z něhož byl čten index, a požadavek, který jmenuje jiný, se odmítne. Cesta sama zde není — tato hodnota se obsluhuje každému, kdo dosáhne socketu, a to, kde na hostiteli checkout leží, jim je k ničemu.

vlastnosttyppovinnépopis
název string ano Název repozitáře: poslední složka jeho kořene.
id string ano Stabilní identita, kterou si dva procesy nad jedním checkoutem vypočtou shodně.
větev string | null ne Rozepsaná větev, když git umí říct.

Používá ExecutionView

StartInput

object
Vstup executions.start: kterou schopnost spustit a s čím.
vlastnosttyppovinnépopis
schopnost string ano Kanonické id schopnosti ke spuštění (health.report, objects.verify).
vstup libovolný ne Jeho vstup, tak jak jej popisuje jeho vlastní vstupní schéma; prázdný objekt, když žádný nebere.

Používá executions.start

StepState

"running" | "completed" | "failed"
Kde stojí krok provádění.
  • runningZahájeno a nedokončeno.
  • completedDokončeno a stalo se to, oč byl požádán.
  • failedDokončeno, a nebylo.

Používá StepView

StepView

object
Jedna pojmenovaná fáze provádění, jak ji ohlásil handler.
vlastnosttyppovinnépopis
název string ano Stabilní jméno, jedinečné v rámci provádění.
název string ano Jeden řádek pro čtenáře.
state StepState → StepState ano Jak to stojí.
started_at string ano Kdy byla zadána, RFC 3339 v UTC.
finished_at string | null ne Kdy skončilo, pokud skončilo.
detail string | null ne Co řekl, když skončil, pokud něco řekl.

Používá ExecutionView

Prohledává názvy a popisy všech stránek, které tento web publikuje.