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.

Kanonická politika se parsuje a odmítne, pokud obsahuje neznámý klíč

.ai/repo/policy.yaml čte parser, který přesně ví, které klíče se smějí objevit na každé úrovni. Klíč, který nezná (překlep, pole z novější verze, pole, které si někdo vymyslel), je chyba, ne tichý no-op. Totéž pravidlo platí pro každý soubor profilu.

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

Omezená podmnožina YAML. Tabulátory, kotvy, flow mapy a víceřádkové skaláry se odmítají, ne hádají.

Co to znamená

.ai/repo/policy.yaml čte parser, který přesně ví, které klíče se smějí objevit na každé úrovni. Klíč, který nezná — překlep, pole z novější verze, pole, které si někdo vymyslel — je chyba, ne tichá no-op. Totéž pravidlo platí pro každý soubor profilu.

Princip

lib/common.sh nese malý parser YAML napsaný pro podmnožinu, kterou politika používá: vnořené mapy, blokové seznamy, seznamy map, inline seznamy, uvozené skaláry a komentáře. Soubor zploští na řádky dotted.path=value. lib/doctor.sh pak porovná každý klíč se seznamem povolených regulárních výrazů v share/allow/policy.txt (a share/allow/profile.txt pro profily). Každý klíč bez shody se hlásí se souborem a názvem klíče. Parser odmítá, co nedokáže poctivě reprezentovat — tabulátory, kotvy, flow mapy, víceřádkové skaláry — místo aby hádal.

Jak to vidět

echo "nonsense: 1" >> .ai/repo/policy.yaml
majordomus doctor
# FAIL policy      .ai/repo/policy.yaml — unknown keys: nonsense  [reproduce: grep -nE 'nonsense' .ai/repo/policy.yaml]

Co nepokrývá

Hodnoty se validují jen tam, kde je příkaz potřebuje (doba trvání, číslo, název profilu). Dobře utvořený klíč s nepravděpodobnou hodnotou projde parserem a selže později v příkazu, který ho čte, se zprávou onoho příkazu.

Proč existuje

Dva agenti znovu vstoupili do lintovaného katalogu ve zdrojovém prostředí a nesli čtyři vymyšlené klíče frontmatter a datovaný pin modelu; nic je nezastavilo, protože neznámé klíče se ignorovaly. Konfiguračnímu formátu, který přijme cokoli, nelze věřit, že cokoli řekl.

Detail vykreslený z docs/claims/policy-parse.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Kanonická politika se parsuje a odmítne, pokud obsahuje neznámý klíč

    Učiněno v Politika, Politika.

  2. 2 · kanonické tvrzení

    policy-parsedeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/SCHEMAS.md

  3. 3 · implementace

    lib/common.sh

  4. 4 · test a scénáře

    Test: test/cases/00_yaml_flatten.sh

    Provedeno v Důvěřujte politice a profilům až po jejich validaci.

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 00_yaml_flatten

Kde se toto tvrzení používá

pokryté odpovědnosti

Související tvrzení stejná implementace

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