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: distribution

Jak je tento projekt balen, publikován a instalován: platformy, pro něž release staví, názvy artefaktů, které odvozuje jediná pojmenovávací funkce, kanonický příkaz instalátoru, publikované release a čím je samotný tento build. Každá odpověď pochází ze share/distribution.yaml a ze záznamů release; žádný zdejší povrch netvrdí vlastní fakt.

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.

distribution

Jak je tento projekt balen, publikován a instalován: platformy, pro něž release staví, názvy artefaktů, které odvozuje jediná pojmenovávací funkce, kanonický příkaz instalátoru, publikované release a čím je samotný tento build. Každá odpověď pochází ze share/distribution.yaml a ze záznamů release; žádný zdejší povrch netvrdí vlastní fakt.

GET /api/v1/distribution distribution.model

Model distribuce

Jednořádkový instalační příkaz, kam se instalace ukládá, a každý deklarovaný cíl s názvem artefaktu, který z něj plyne. Toto vykresluje instalační stránka, instalační blok úvodní stránky a instalační karta Cockpitu; žádná z nich nemá vlastní seznam platforem.

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

Žá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/distribution"

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 DistributionReport Distribuční model: 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/distribution/artifact distribution.artifact

Artefakt cíle

Název archivu, který odvozuje cíl a tag, adresář, do něhož se rozbalí, a kde jej release publikuje. Odpovídá jediná pojmenovávací funkce; pipeline release se jí ptá, místo aby název skládala v souboru workflow.

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

Parametry dotazu

názevtyppovinnépopispříklady
cíl string ano Id cíle nebo jeho Rust target triple. first-published-target: "aarch64-apple-darwin"
štítek string ano Tag, `v` a verze. `{tag}` žádá o název se zástupným symbolem ponechaným uvnitř. first-published-target: "v0.0.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 "http://127.0.0.1:8741/api/v1/distribution/artifact?target=aarch64-apple-darwin&tag=v0.0.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 ReleaseArtifactView Artefakt cíle: 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/distribution/build distribution.build

Tento build

Čím tento spustitelný soubor je: verze crate, z něhož byl sestaven, Rust target triple, profil a commit — vše zkompilováno při buildu, takže nainstalovaný binární soubor odpoví bez repozitáře, toolchainu nebo gitu.

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

Žá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/distribution/build"

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 BuildReport Toto sestavení: 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/distribution/releases distribution.releases

Publikované releasy

Každý release, který tento repozitář zaznamenal, nejnovější první, a ten, na který se rozliší nepřipnutá instalace: nejvyšší verze mezi stabilními, nestaženými záznamy. Ukazatel se odvozuje zde a nikde se nepíše.

  • query
  • behaviorally_verified
  • vyžaduje se měření výkonu
  • generace cache (max_entries=1)
  • Nástroj MCP majordomus_releases
  • $ distribution releases

Žá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/distribution/releases"

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 ReleasesReport Publikované release: 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/distribution/status distribution.status

Zda publikovaná instalace funguje

Zda stroj, který tento projekt nikdy neviděl, ho může hned teď nainstalovat inzerovaným jednořádkovým příkazem, a když nemůže, který článek řetězce chybí a co ho změní. Odvozeno jen z modelu distribuce a záznamů releasů: nesahá do sítě, takže je stejně rychlé jako jakýkoli jiný lokální dotaz a odpovídá offline. Poskytované bajty dokládá smoke fáze release pipeline, zde se nehádají.

  • query
  • behaviorally_verified
  • vyžaduje se měření výkonu
  • cache vypnuta
  • Nástroj MCP majordomus_install_status
  • $ distribution status

Žá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/distribution/status"

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 InstallabilityReport Zda publikovaná instalace funguje: 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.

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.

Architektura

"x86_64" | "aarch64"
Architektura procesoru.
  • x86_6464bitové x86, detekováno jako x86_64 nebo amd64.
  • aarch6464bitové ARM, detekováno jako aarch64 nebo arm64.

Používá TargetView

BuildReport

object
Čím tento spustitelný soubor je: dost na to, aby se daly rozlišit dva buildy, aniž by se ptalo repozitáře.
vlastnosttyppovinnépopis
verze string ano Verze crate, ze kterého byl tento spustitelný soubor sestaven.
cíl string ano Rust target triple, pro který byl sestaven; model pojmenovává cíl stejným řetězcem.
profil string ano Profil cargo.
commit string ano Commit, nebo unknown, když byl sestaven mimo pracovní strom.
distribution_target string | null ne Cíl modelu, kterému toto sestavení odpovídá, když model pro daný triple nějaký deklaruje.

Používá distribution.build

Kanál

"stable" | "prerelease"
Na které release se může nepřipnutá instalace vyřešit.
  • stableVyřešeno pomocí latest.
  • prereleasePublikováno, adresovatelné přesným tagem, nikdy výchozí.

Používá ReleaseView

CheckState

"ok" | "failed" | "unknown"
Stav jedné kontroly v reportu o instalovatelnosti. Tři stavy a žádné další: kontrola buď platí, neplatí, nebo ji nešlo provést z toho, co tento proces vidí.
  • okKontrola drží.
  • failedKontrola neplatí a veřejná instalace je dotčena.
  • unknownKontrolu zde nebylo možné provést; neříká nic ani tak, ani onak.

Používá InstallCheck

DistributionReport

object
Distribuce, tak jak se na ni ptá člověk nebo skript.
vlastnosttyppovinnépopis
binárka string ano Příkaz, který člověk zadá po instalaci.
repozitář string ano owner/name, jediný hostitel, odkud pocházejí assety release.
installer_url string ano Kanonická URL instalátoru.
install_command string ano Jednořádkový instalační příkaz, složený ze svých částí.
install_and_init_command string ano Totéž, s následnou inicializací repozitáře.
next_command string ano Co člověk spustí dál.
kontrolní součet string ano Algoritmus digestu, který instalátor ověřuje.
install_dir string ano Kam se launchery ukládají ve výchozím stavu.
prefix string ano Kam se verzované stromy ukládají ve výchozím stavu.
latest_url string ano Kde se publikují metadata stabilního release.
podporováno integer (uint) ano Kolik cílů release buildí.
targets pole TargetView → TargetView ano Každý deklarovaný cíl v pořadí modelu.

Používá distribution.model

InstallCheck

object
Jedna kontrola: na co se ptalo, co bylo vidět a — když neplatí — proč a příkaz, který to změní. Pole cause a next existují proto, aby zpráva byla použitelná bez druhého dokumentu; kontrola, která selže bez uvedení nápravy, je diagnostika, podle které nikdo nemůže jednat.
vlastnosttyppovinnépopis
id string ano Krátké stabilní jméno: model, version, targets, release, artifacts, metadata.
state CheckState → CheckState ano Zda platí.
pozorováno string ano Co bylo pozorováno, na jednom řádku.
příčina string | null ne Proč neplatí. Chybí, když platí.
next string | null ne Příkaz nebo akce, která by to změnila. Chybí, když není co dělat.

Používá InstallabilityReport

InstallabilityReport

object
Zda inzerovaná jednořádková instalace právě teď funguje, a pokud ne, co chybí.

Odpovídá na skutečnou otázku operátora — může stroj, který tento projekt nikdy neviděl, nainstalovat ho publikovaným příkazem? — jen z lokálního stavu. Nepoužívá žádný přístup k síti: repozitář může být offline a tohle stále odpoví, protože vše, co potřebuje, je model distribuce a záznamy release, které repozitář sám nese. Co nevidí, hlásí jako unknown, místo aby hádalo; veřejnou polovinu otázky zodpovídá smoke fáze release workflow, která instaluje z publikované URL na každém nativním runneru a je jediná, která dokazuje veřejnou cestu.

vlastnosttyppovinnépopis
instalovatelné boolean ano Pravda, když platí každá kontrola: stabilní release je zaznamenán a úplný.
summary string ano Jeden řádek pro člověka: jaký je stav, vlastními pojmy projektu.
local_version string ano Verze, kterou by tento strom vydal.
stable_tag string | null ne Tag, na který se rozřeší nepřipnutá instalace, když je zaznamenán stabilní release.
required_targets integer (uint) ano Kolik cílů musí release publikovat, aby byl úplný.
published_artifacts integer (uint) ano Kolik z nich stabilní release skutečně publikuje.
install_command string ano Příkaz, který by člověk spustil, ať už právě funguje, nebo ne.
installer_url string ano Odkud se instalátor obsluhuje.
latest_url string ano Kde se servíruje stabilní ukazatel.
kontroly pole InstallCheck → InstallCheck ano Každá kontrola v pořadí, v jakém stojí za přečtení.

Používá distribution.status

Libc

"gnu" | "musl"
Knihovna C, proti které je linuxový artefakt slinkován.
  • gnuGNU libc: běžné distribuce.
  • muslmusl: Alpine a jakýkoli staticky linkovaný artefakt.

Používá TargetView

Os

"macos" | "linux" | "windows"
Operační systém, na němž cíl běží.
  • macosApple, detekováno jako Darwin.
  • linuxLinux, zjištěný jako Linux, a jediný, kde záleží na knihovně C.
  • windowsWindows; reprezentovatelné a dnes nesestavované.

Používá TargetView

ReleaseArtifactView

object
Artefakt, který cíl a tag pojmenovávají, a adresář, do kterého se rozbalí.
vlastnosttyppovinnépopis
cíl string ano Id cíle v modelu.
rust_target string ano Cílový triple Rustu.
štítek string ano Tag, pro který bylo jméno odvozeno.
název string ano Název souboru archivu.
root string ano Adresář, do kterého se archiv rozbalí.
url string ano Kde jej release publikuje, když je tag skutečný.

Používá distribution.artifact

ReleaseView

object
Jeden release, tak jak ho ukazuje každá projekce.
vlastnosttyppovinnépopis
štítek string ano Git tag.
verze string ano Sémantická verze.
kanál Channel → Channel ano Zda jej smí vyřešit nepřipnutá instalace.
published_at string ano Kdy bylo publikováno, UTC.
commit string ano Commit, z něhož byl sestaven.
stažené (yanked) boolean ano Pravda, když byl stažen.
artefakty integer (uint) ano Kolik artefaktů publikoval.
metadata_url string ano Kde se servírují její veřejná metadata.

Používá ReleasesReport

ReleasesReport

object
Releasy, které tento repozitář zaznamenal, a ten, na který se rozloží nepřipnutá instalace.
vlastnosttyppovinnépopis
počet integer (uint) ano Kolik je záznamů.
latest ReleaseView | null → ReleaseView ne Release, na který se vyřeší nepřipnutá instalace, když nějaký existuje.
releases pole ReleaseView → ReleaseView ano Každý záznam, nejnovější první.

Používá distribution.releases

TargetStatus

"supported" | "experimental" | "unavailable"
Co projekt slibuje o cíli.

Viz crate::deploy::Status: oba jsou Status ve vlastním modulu a ani jeden není v jediném jmenném prostoru komponent, který má dokument schématu.

  • supportedSestavuje se při každém release, nabízí ho instalátor a je uveden jako podporovaný. Release, kterému tento artefakt chybí, se nezveřejní.
  • experimentalSestaveno a nabízeno, a zdokumentováno jako zatím nedoložené.
  • unavailableZdokumentováno, nikdy nesestaveno, instalátor to odmítá se zaznamenaným důvodem.

Používá TargetView

TargetView

object
Jeden cíl, tak jak ho ukazuje každá projekce: co to je, jak se jmenuje v próze a název artefaktu, který naming funkce odvodí pro dosud nezvolenou značku.
vlastnosttyppovinnépopis
id string ano Id cíle v modelu.
název string ano Jak se píše v próze: Linux x86_64 musl.
os Os → Os ano Operační systém.
arch Arch → Arch ano Architektura.
libc Libc | null → Libc ne Knihovna C na Linuxu.
rust_target string ano Cílový triple Rustu.
status TargetStatus → TargetStatus ano Co o tom projekt slibuje.
důvod string | null ne Proč, když není postaven.
artifact string ano Název artefaktu s {tag} na místě, kam patří tag releasu.

Používá DistributionReport

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