I1205 — Identita se určí jednou, v routeru, a každý povrch ji čte odtud
Určit volajícího jednou, tam kde požadavek vstupuje, a výsledek předat každému povrchu: HTTP API, vykreslování Cockpitu, bezpečnostnímu schématu dokumentu OpenAPI a povrchu MCP. Žádný handler neparsuje cookie a žádný povrch sám nerozhoduje, co znamená chybějící identita.
BLOKOVÁNO vlna 4 · p1 · profil implementation · běží samostatně
Součást web-sign-in — Nasazené povrchy vědí, kdo se ptá, a poskytovatelé identit jsou data.
Blokováno. Tento úkol nemůže začít, dokud není I1204 hotov. Stav je z toho odvozen, ne deklarován.
Cíl
Určit volajícího jednou, tam kde požadavek vstupuje, a výsledek předat každému povrchu: HTTP API, vykreslování Cockpitu, bezpečnostnímu schématu dokumentu OpenAPI a povrchu MCP. Žádný handler neparsuje cookie a žádný povrch sám nerozhoduje, co znamená chybějící identita.
Proč
Autentizace aplikovaná na handler je autentizace, na kterou se zapomene u handleru přidaného příští týden. Jeden bod řešení je také jediný způsob, jak se čtyři povrchy mohou shodnout na tom, kdo je volající.
Aktuální stav
I1204 vydává relace; mimo tok je nic nečte.
Cílový stav
Požadavek nese vyřešeného volajícího — anonymního nebo identifikovaného — od routeru dál a nelze napsat handler, který by řešení přeskočil.
Rozsah
- apps/majordomus-cli/src/http
- apps/majordomus-cli/src/identity
- apps/majordomus-cli/src/cockpit
- apps/majordomus-cli/src/mcp
- apps/majordomus-cli/tests
Mimo rozsah
- Role, skupiny nebo oprávnění nad rámec identifikovaného a anonymního
- Druhé řešení v jakémkoli povrchu
Závislosti
Co na tom čeká
- I1206BLOKOVÁNO Co smí anonymní čtenář, se odvozuje z klasifikace efektů, ne ze seznamu
- I3139BLOCKED The mesh page offers one authorised action through an existing capability, and shows its result from the journal
- I3192BLOCKED An operation started from /ui/mesh is authorised, executed, audited and its result streamed back
Kritéria přijetí
- Přesně jedno místo čte cookie relace, doloženo testem, který selže, když se objeví druhé
- Cockpit ukazuje, kdo je přihlášen, a nabízí odhlášení, z rozpoznaného volajícího, ne z vlastního čtení
- Povrch MCP dostává stejného volajícího jako HTTP API pro totéž spojení
- Anonymní volající je hodnota, ne absence, takže žádný povrch nemůže zapomenout ji ošetřit
Validace
- cargo test --workspace --all-features
- bash test/run.sh
Požadované důkazy
- single_resolution_point
- surfaces_agree
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Riziko
Cockpit je povrch, který nejspíš znovu přečte cookie pro pohodlí. Test, který druhé čtení zakazuje, ho udržuje poctivým.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Kanonický záznam: .ai/repo/project/issues/I1205.yaml. Zpětně ho přečtete pomocí majordomus plan show I1205.