I0929 — Produkce se nasazuje z CI s tokenem omezeným na jednu aplikaci
Nasazovat produkci z CI podle stávající politiky větví repozitáře, s deploy tokenem omezeným na aplikaci, a ne na celý účet, a se souběžností, která zabrání tomu, aby se dva pushe předháněly o stejnou aplikaci.
ZRUŠENO vlna 8 · p1 · 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
Nasazovat produkci z CI podle stávající politiky větví repozitáře, s deploy tokenem omezeným na aplikaci, a ne na celý účet, a se souběžností, která zabrání tomu, aby se dva pushe předháněly o stejnou aplikaci.
Proč
Token platný pro celý účet v tajemství CI je klíč ke všemu, co účet vlastní, držený každým workflow, které tajemství může číst. Token s omezeným rozsahem omezí incident na jednu aplikaci a řízení souběžnosti brání tomu, aby se dvě nasazení prolnula na jednom stroji.
Aktuální stav
Neexistuje žádné workflow nasazení a nebyl vytvořen žádný token.
Cílový stav
Produkční workflow nasazuje přes totéž jádro, které používá CLI, drží jen token s omezeným rozsahem, serializuje nasazení a jeho token se instaluje, aniž by se kdy objevil v logu nebo souboru.
Rozsah
- .github/workflows
Mimo rozsah
- Token platný pro celý účet v CI
- Implementace buildu kontejneru jen pro CI, oddělená od kanonické
- Oslabení modelu tokenů proto, že nástroj nebyl dostupný
Závislosti
- I0918ZRUŠENO Bootstrap přihlašovací údaj se použije jednou a nepatří nikomu
- I0931ZRUŠENO Aplikace existuje, běží na jednom stroji a URL odpovídá
Co na tom čeká
Kritéria přijetí
- Token nasazení je omezen na aplikaci, má záměrné vypršení a popisný název
- Token se instaluje jako tajemství repozitáře, aniž by byl vypsán, vytištěn nebo zapsán do jakéhokoli souboru, nebo se místo toho poskytne přesný jednorázový příkaz, když to nelze udělat bezpečně
- Workflow nasazuje přes stejné jádro nasazení, jaké používá CLI, bez druhé implementace buildu
- Souběžnost je nastavena záměrně, aby dva pushe nemohly nasadit tutéž aplikaci najednou, a volba ohledně rušení je uvedena
- Externí akce jsou připnuty a verze nástroje poskytovatele je záměrná, ne plovoucí
Validace
- bash test/run.sh
Požadované důkazy
- deploy_workflow
- scoped_token
- souběžnost
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
Zrušení probíhajícího nasazení může nechat stroj napůl aktualizovaný. Zda je zrušení bezpečné, je rozhodnutí, které se má učinit výslovně, ne výchozí hodnota k zdědění.
Zpráva o dokončení
Zrušeno 2026-10-14 na masteru e28daccd9b: jeho předmětem je token omezený na jednu aplikaci Fly; publikace image do GHCR už existuje i bez něj. Vlastník odpojil Fly.io 2026-10-12; tento repozitář nasazuje release binárky, image z GHCR a GitHub Pages (commit 9af3fa65a4 odstranil fly.toml).
Č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/I0929.yaml. Načtěte jej zpět pomocí majordomus plan show I0929.