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ží.
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ázev | typ | povinné | popis | pří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
| status | tělo | vý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. |
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
| status | tělo | vý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. |
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ázev | typ | povinné | popis | pří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
| status | tělo | vý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. |
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ázev | typ | povinné | popis | pří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
| status | tělo | vý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. |
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ázev | typ | povinné | popis | pří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
| status | tělo | vý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. |
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
| status | tělo | vý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. |
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
| status | tělo | vý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. |
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
| status | tělo | vý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í.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | popis |
| id |
string |
ano |
Id provedení. |
Používá executions.cancel
CancelReport
object
Odpověď executions.cancel.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | 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í.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | 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 | |
| data | object | ano | |
varianta Čeká na workera.
| typ | "execution.queued" | ano | |
| data | object | ano | |
varianta Worker ho převzal a chystá se vstoupit do handleru.
| typ | "execution.started" | ano | |
variant Jak daleko je.
| typ | "execution.progress" | ano | |
| data | ProgressView → ProgressView | ano | |
varianta Bylo vstoupeno do pojmenované fáze.
| typ | "execution.step.started" | ano | |
| data | object | ano | |
variant Pojmenovaná fáze skončila.
| typ | "execution.step.completed" | ano | |
| data | object | ano | |
variant Řádek výstupu.
| typ | "execution.log" | ano | |
| data | objekt → LogStream | ano | |
varianta Strukturovaný nález, odlišný od výsledku.
varianta Zrušení bylo vyžádáno; handler se ještě nezastavil.
| typ | "execution.cancelling" | ano | |
| data | object | ano | |
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 | |
| data | object | ano | |
variant Skončilo to, a přesto ne.
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
ExecutionLinks
object
Kde se dočíst víc o jednom provádění, vlastními slovy tohoto serveru.
Každá hodnota je odvozena z deklarovaných tras registru a z vlastní konstanty živého kanálu, takže trasa, která se přesune, se přesune i tady, a žádný klient nedrží cestu, kterou tento server neobsluhuje.
| vlastnost | typ | povinné | popis |
| self |
string |
ano |
Snímek: GET /api/v1/executions/get?id=…. |
| events |
string |
ano |
Uchovaná historie: GET /api/v1/executions/events?id=…. |
| cancel |
string |
ano |
Kde požádat o zastavení: POST /api/v1/executions/cancel. |
| websocket |
string |
ano |
Živý kanál od počátku: GET /events?execution=…. |
| cockpit |
string |
ano |
Stránka, kterou člověk otevře. |
Používá ExecutionView
ExecutionList
object
Odpověď executions.list.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | 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í.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | 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.
| vlastnost | typ | povinné | 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