Zdůvodnění
Vstup provedení je zapsán. Jde do snímku, do první události, do uchované historie, na stránku v Cockpitu, do výpisu a ven po živém kanálu k tomu, kdo sleduje — šest míst z jednoho přiřazení. Redakce provedená v kterémkoli z nich chrání právě to jedno; hodnota je už v ostatních pěti.
Druhá polovina pravidla je to, co rozhoduje, co je citlivé. Porovnání názvu pole je obvyklá odpověď a je špatná oběma směry: zničí password_policy, který je názvem dokumentu, a mine credential, který budoucí pole napíše jinak. Typ už deklaruje všechno ostatní, co projekce čte — popis, omezení, příklady — a může deklarovat i toto, ve schématu, kde redaktor i čtenář reference API vidí totéž tvrzení.
Požadované chování
Citlivost se deklaruje ve schématu vstupního typu: format: "password", writeOnly: true nebo explicitní x-majordomus-sensitive: true. Redakce prochází schéma, sleduje vnitřní reference, sahá do vnořených objektů, polí a map a nahrazuje hodnotu značkou, která se čte jako zadržená, ne jako chybějící.
Děje se to jednou, v enginu provádění, před uložením vstupu, takže vše navazující čte už bezpečnou hodnotu. Žádný transport, stránka, řádek logu, generovaný dokument ani klient nesmí redigovat znovu a nesmí se na to spoléhat. O poli nesmí nikdy rozhodovat jeho název a nikde v crate, skriptech ani Cockpitu nesmí být druhý seznam vzorů.
Přihlašovací údaj, který schopnost čte z prostředí, nikdy není hodnotou na žádném povrchu: hlásí se jeho stav — nakonfigurováno, chybí, neplatné, nedostupné — a nikdy věc sama.
Chování při selhání
Recenzent odmítne redaktor porovnávající jména, druhé místo redakce a typ vstupu, který nese tajemství, aniž by to deklaroval. Jednotkové testy execution::redact selžou, pokud deklarovaná značka přestane být respektována, pokud je zničeno jméno, které jen vypadá jako tajemství, nebo pokud uniká vnořená, odkazovaná či mapovaná hodnota; tests/executions.rs ověřuje, že redigovaný vstup nedosáhne žádného snímku, události ani stránky v čitelné podobě.
Ověření
apps/majordomus-cli/src/execution/redact.rs a jeho testy, apps/majordomus-cli/tests/executions.rs a recenze. docs/EXECUTIONS.md uvádí kontrakt pro každého, kdo přidává schopnost, která takový bere.