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.

I0904 — Adresa naslouchání je jedna skutečnost se dvěma projekcemi

Přimět nasazení, aby se vázalo na externě dosažitelné rozhraní na portu, který deklaruje kanonický objekt, aniž by se změnil výchozí loopback, na kterém závisí lokální použití, a aniž by port existoval jako literál na více než jednom místě.

HOTOVO vlna 2 · p0 · profil implementation · bezpečné paralelně

Součást fly-deployment — Image kontejneru je projekcí modelu repozitáře a jeho smoke test je jeho důkazem.

Cíl

Přimět nasazení, aby se vázalo na externě dosažitelné rozhraní na portu, který deklaruje kanonický objekt, aniž by se změnil výchozí loopback, na kterém závisí lokální použití, a aniž by port existoval jako literál na více než jednom místě.

Proč

Server navázaný na 127.0.0.1 uvnitř Machine je nedosažitelný a obvyklá náprava je napevno zapsat 0.0.0.0:8080 do tří souborů. Port je fakt objektu nasazení; kontejner, konfigurace poskytovatele a proces musí číst tentýž.

Aktuální stav

bind() ve výchozím stavu používá loopback a varuje, když navázaná adresa loopback není, protože jiná než loopback adresa vystavuje vrstvu tohoto repozitáře každému hostiteli, který na rozhraní dosáhne. Výchozí port je konstanta v cli.rs.

Cílový stav

Lokální vyvolání je beze změny. Hostovaný proces se váže na deklarovanou adresu záměrně, varování zůstává pro náhodný případ a port se objevuje jednou jako kanonická data.

Rozsah

  • apps/majordomus-cli/src/http/server.rs
  • apps/majordomus-cli/src/commands/serve.rs
  • apps/majordomus-cli/src/cli.rs

Mimo rozsah

  • Řádné vypnutí, což je I0906
  • Jakákoli změna toho, co server poskytuje

Závislosti

Co na tom čeká

Kritéria přijetí

  • Port nasazení je uveden jednou v kanonickém objektu a spotřebovává jej proces, projekce kontejneru i konfigurace poskytovatele
  • Lokální výchozí zůstává loopback a stávající varování se stále spustí při nezamýšleném navázání mimo loopback
  • Hostovaný bind je vyjádřen jako záměr, ne potlačením varování
  • Test dokazuje, že hostovaná konfigurace naslouchá na dosažitelné adrese a lokální výchozí ne

Validace

  • cargo test --workspace --all-features
  • bash test/run.sh

Požadované důkazy

  • single_port_source
  • hosted_bind
  • local_default_unchanged

Důkazy

pokrývátypcommandvýsledeku commitu
single_port_sourcetestMJ_TEST_JOBS=2 bash test/run.sh 85_deployment_bindtesty: 1 prošel, 0 selhalo, 0 přeskočeno (běh 2026-10-14 mezi 08:59Z a 09:04Z na master e28daccd9b)e28dacc
hosted_bindtestMJ_TEST_JOBS=2 bash test/run.sh 85_deployment_bindtesty: 1 prošel, 0 selhalo, 0 přeskočeno (běh 2026-10-14 mezi 08:59Z a 09:04Z na master e28daccd9b)e28dacc
local_default_unchangedtestMJ_TEST_JOBS=2 bash test/run.sh 85_deployment_bindtesty: 1 prošel, 0 selhalo, 0 přeskočeno (běh 2026-10-14 mezi 08:59Z a 09:04Z na master e28daccd9b)e28dacc

Riziko

Oslabení výchozího loopbacku pro všechny by vystavilo lokální repozitáře na sdílených sítích. Hostovaná cesta musí být výslovný režim, ne snížená výchozí hodnota.

Časová osa

zahájeno
2026-10-14T09:04:46Z
ověřeno
—
dokončeno
2026-10-14T09:04:57Z

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/I0904.yaml. Přečtěte ho zpět pomocí majordomus plan show I0904.

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