I1201 — Poskytovatel identity je deklarativní objekt a Google a Facebook jsou dva z nich
Zavést druh identity-provider: schéma JSON, záznam v share/kinds.yaml, vygenerovaný allow-list, adresářový kontrakt pod .ai/repo/identity/providers/ a první dva objekty — google a facebook — každý uvádí svého vydavatele, své endpointy nebo discovery dokument, scopes, o které se žádá, claim nesoucí stabilní subjekt, názvy proměnných prostředí, ve kterých přichází jeho client id a client secret, zobrazovaný název a pořadí v nabídce přihlášení.
PŘIPRAVENO vlna 0 · p0 · profil implementation · běží samostatně
Součást web-sign-in — Nasazené povrchy vědí, kdo se ptá, a poskytovatelé identit jsou data.
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I1201 bude přijato.
Cíl
Zavést druh identity-provider: schéma JSON, záznam v share/kinds.yaml, vygenerovaný allow-list, adresářový kontrakt pod .ai/repo/identity/providers/ a první dva objekty — google a facebook — každý uvádí svého vydavatele, své endpointy nebo discovery dokument, scopes, o které se žádá, claim nesoucí stabilní subjekt, názvy proměnných prostředí, ve kterých přichází jeho client id a client secret, zobrazovaný název a pořadí v nabídce přihlášení.
Proč
Očekává se, že se sada poskytovatelů změní, a provozovatel řekl, že lze škrtnout oba první dva. Poskytovatel, který je souborem, se škrtne smazáním souboru; poskytovatel, který je větví match, se škrtne releasem. Každý další fakt tohoto repozitáře je už deklarován jednou a promítán a identita není výjimkou.
Aktuální stav
Neexistuje druh identity, žádný adresář .ai/repo/identity a nikde ve vrstvě ani ve spustitelném souboru žádný pojem poskytovatele.
Cílový stav
share/kinds.yaml nese druh identity-provider se schématem, allow-list se z tohoto schématu generuje příkazem majordomus generate, .ai/repo/identity/providers/ má svůj řetěz README a své dva objekty a index je hlásí jako kterýkoli jiný druh.
Rozsah
- .ai/repo/identity
- share/kinds.yaml
- share/schemas
- share/allow
- share/skeleton
Mimo rozsah
- Jakýkoli kód v Rustu, který čte objekty, což je I1202
- Klientské tajemství, id klienta nebo jakákoli hodnota přihlašovacího údaje v jakémkoli souboru repozitáře
- Pole specifické pro providera, které může použít jen jeden ze dvou objektů
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
Kritéria přijetí
- Schéma vyjadřuje jeden tvar toku a oba objekty proti němu validují bez úniku pro konkrétního poskytovatele
- Přihlašovací údaje se jmenují, nikdy nenesou: každý objekt uvádí jména proměnných prostředí a nedrží žádnou hodnotu
- Adresář splňuje rekurzivní doktrínu README a front-matter vrstvy
- Seznam povolených se generuje ze schématu příkazem majordomus generate, ne psaním ručně
- majordomus doctor hlásí nový druh i oba objekty bez diagnostiky
Validace
- majordomus generate --check
- bin/majordomus doctor
- bash test/run.sh
Požadované důkazy
- schema_added
- objects_validate
- allow_list_generated
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
Schéma tvarované kolem Googlu bude hned téhož dne potřebovat únikový východ pro Facebook. Schéma je psáno proti toku OpenID Connect a jakékoli pole, které umí vyplnit jen jeden poskytovatel, je důkazem, že tvar je špatný.
Č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/I1201.yaml. Přečtěte jej zpět pomocí majordomus plan show I1201.