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

Dashboard Suite jako projekce kanonického stavu: každá karta je jeden fakt přečtený z odpovědi existující schopnosti, nese schopnost, kterou se ptala, vstup, JSON pointer, ze kterého byla hodnota přečtena, stránku Cockpit, která drží důkazy, a příkaz, který na ni působí. Žádný dashboard sám nic neukládá, nepočítá ani nesoudí (ADR 0088).

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.

dashboard

Dashboard Suite jako projekce kanonického stavu: každá karta je jeden fakt přečtený z odpovědi existující schopnosti, nese schopnost, kterou se ptala, vstup, JSON pointer, ze kterého byla hodnota přečtena, stránku Cockpit, která drží důkazy, a příkaz, který na ni působí. Žádný dashboard sám nic neukládá, nepočítá ani nesoudí (ADR 0088).

GET /api/v1/dashboard/overview dashboard.overview

Přehled: čtyři otázky

Je zdravé, co se změnilo, co je rozbité, co vyžaduje akci — každé zodpovídají karty přečtené z `health.report`, `release.version`, `plan.status`, `worktree.status`, `plan.next`, `continuity.state` a `peers.list` (nástěnka tohoto checkoutu), každá zeptaná jednou přes exekutor. Každá karta nese svou zdrojovou schopnost, vstup a ukazatel RFC 6901, takže stejná otázka na zdroj dá stejnou hodnotu; zdroj, který nedokáže odpovědět, dělá z karet `unknown`, nikdy `ok`. Nic zde nepřestavuje kanonický stav ani se neptá na nic mimo tento proces a jeho checkout.

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

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

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 DashboardOverview Přehled: čtyři otázky: 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.

DashboardCard

object
Jeden fakt na dashboardu: hodnota přečtená z odpovědi jedné schopnosti, verdikt, který jí zdroj dává, kam se čtenář zanoří a co na ni působí.

use majordomus_cli::capability::builtin::dashboard::DashboardCard;
use serde_json::json;

let card: DashboardCard = serde_json::from_value(json!({
    "id": "health-status",
    "title": "Health",
    "value": "ok",
    "status": "ok",
    "detail": "the worst of 8 check(s)",
    "source": { "capability": "health.report", "input": {}, "pointer": "/status", "measure": "exact" },
    "route": "/cockpit/health",
})).unwrap();
// the value is the source's: reading the pointer out of its answer gives it back
assert_eq!(card.source.measure.read(&json!({ "status": "ok" }), &card.source.pointer), card.value);
assert!(card.action.is_none());
vlastnosttyppovinnépopis
id string ano Stabilní id, [a-z][a-z0-9-]*, jedinečné napříč dashboardem.
název string ano Čím hodnota je.
hodnota libovolný ano Hodnota přečtená z odpovědi zdroje podle míry zdroje: číslo, řetězec nebo boolean, nebo null, když zdroj žádnou nedrží.
status HealthStatus → HealthStatus ano Verdikt zdroje o tom; unknown, když zdroj nemohl odpovědět.
detail string ano Jeden řádek: co hodnota znamená, nebo proč zdroj nemohl odpovědět.
zdroj DashboardSource → DashboardSource ano Odkud hodnota pochází.
route string ano Stránka Cockpitu, do které čtenář sestoupí pro důkazy.
akce string | null ne Příkaz, který na něj působí, pokud nějaký je.

Používá DashboardQuestion

DashboardMeasure

"exact" | "count"
Jak se hodnota karty čte z odpovědi jejího zdroje. Ani jedno čtení není aritmetikou jménem zdroje.

use majordomus_cli::capability::builtin::dashboard::DashboardMeasure;
use serde_json::json;

let answer = json!({ "status": "warn", "tallies": { "ok": 6 }, "overlaps": [1, 2] });
// exact: the value at the pointer, null when there is none
assert_eq!(DashboardMeasure::Exact.read(&answer, "/status"), json!("warn"));
assert_eq!(DashboardMeasure::Exact.read(&answer, "/tallies/fail"), json!(null));
// count: a number as it stands, a list or map by its length, and an omitted one is none
assert_eq!(DashboardMeasure::Count.read(&answer, "/tallies/ok"), json!(6));
assert_eq!(DashboardMeasure::Count.read(&answer, "/overlaps"), json!(2));
assert_eq!(DashboardMeasure::Count.read(&answer, "/tallies/fail"), json!(0));
  • exactHodnota na ukazateli, přesně; null, když ukazatel nevede nikam.
  • countČíslo na ukazateli nebo délka seznamu či mapy tam; 0, když ho zdroj vynechal, čímž zdroje říkají prázdný seznam nebo nulový součet.

Používá DashboardSource

DashboardOverview

object
Přehled: čtyři otázky, každá zodpovězená fakty, které drží jiné schopnosti.

use majordomus_cli::capability::builtin::dashboard::DashboardOverview;
use majordomus_cli::capability::builtin::HealthStatus;
use serde_json::json;

let o: DashboardOverview = serde_json::from_value(json!({ "status": "unknown", "questions": [] })).unwrap();
assert_eq!(o.status, HealthStatus::Unknown);
vlastnosttyppovinnépopis
status HealthStatus → HealthStatus ano Nejhorší z otázek: unknown převáží fail, protože nerozhodnutý fakt není zdravý.
otázky pole DashboardQuestion → DashboardQuestion ano healthy, changed, broken, action, v tomto pořadí.

Používá dashboard.overview

DashboardQuestion

object
Jedna ze čtyř otázek, na které Přehled odpovídá, s kartami, které na ni odpovídají.

use majordomus_cli::capability::builtin::dashboard::DashboardQuestion;
use majordomus_cli::capability::builtin::HealthStatus;
use serde_json::json;

let q: DashboardQuestion = serde_json::from_value(json!({
    "id": "healthy", "title": "Is it healthy?", "status": "ok", "cards": [],
})).unwrap();
assert_eq!(q.status, HealthStatus::Ok);
vlastnosttyppovinnépopis
id string ano healthy, changed, broken nebo action.
název string ano Otázka tak, jak ji klade čtenář.
status HealthStatus → HealthStatus ano Nejhorší z jejích karet.
karty pole DashboardCard → DashboardCard ano Fakta, která na to odpovídají, každé čtené ze schopnosti.

Používá DashboardOverview

DashboardSource

object
Odkud hodnota karty pochází: schopnost, na kterou se ptalo, vstup, s nímž se ptalo, a ukazatel do její odpovědi. Položením téže otázky schopnosti a přečtením ukazatele stejnou mírou získáte hodnotu karty; to je celý kontrakt.

use majordomus_cli::capability::builtin::dashboard::{DashboardMeasure, DashboardSource};
use serde_json::json;

let s: DashboardSource = serde_json::from_value(json!({
    "capability": "health.report",
    "input": {},
    "pointer": "/status",
    "measure": "exact",
})).unwrap();
assert_eq!(s.measure, DashboardMeasure::Exact);
assert_eq!(s.measure.read(&json!({ "status": "ok" }), &s.pointer), json!("ok"));
vlastnosttyppovinnépopis
schopnost string ano Kanonické id schopnosti, z níž byla hodnota přečtena.
vstup libovolný ano Vstup, s nímž byla zavolána, tak jak ho přijímá její vstupní schéma.
ukazatel string ano Ukazatel JSON podle RFC 6901 do odpovědi dané schopnosti.
measure DashboardMeasure → DashboardMeasure ano Jak se hodnota na ukazateli čte.

Používá DashboardCard

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