Promote_Demo kapija — zamjena Write_UAT uslova (MC #900135, 2026-08-22)
Promote_Demo kapija — zamjena Write_UAT uslova (MC #900135, 2026-08-22)
Odluka CEO-a: DA (2026-08-22). Ovo je zapis odluke, ne prijedlog.
Problem
azure-pipelines.yml:2090-2101, stage Promote_Demo:
condition: and( succeeded('E2E_UAT'), succeeded('Write_UAT'), or(Manual, refs/tags/v) )
dependsOn: [ Build, Write_UAT ]
Write_UAT je ljuska (MC #900104, mjereno 2026-08-21):
- svih 5
apps/e2e/tests/write-uat-*.spec.tsbezuslovno prosljeđujucreateUnavailableWriteUatBootstrapAuthVerifier()icreateUnavailableWriteUatAllocator()→runtimeAvailable:false→ uvijekfail(...); - stvarni transport postoji u
apps/e2e/tests/helpers/write-uat-stage-runtime.ts, ali ga nijedan spec ne koristi — mrtav kod; /internal/write-uat/v1/*ne postoji uapps/api(git grepvanapps/e2edaje samo yml i ovaj ugovor);- kroz zadnjih 29 buildova koji imaju taj stage:
failed3× (1208, 1217, 1234),skippedinače,succeedednijednom.
Dakle kapija ne štiti ništa — a blokira sve.
Šta je konkretno blokirala
Ispravan pravni subjekt (SMART FORGE d.o.o.) je na mainu u tri fajla apps/web, ali nije živ na app.bilko.cloud — tamo i dalje piše ALAI Holding AS. To je business_profile.url uslov za Stripe prijavu (MC #900044/#900048), dakle kapija je stajala na putu prihodu.
Ručno guranje na demo nije opcija: Bilko Stage→Demo→Prod Cutover Runbook izričito zabranjuje kopiranje stage oznake u produkciju i ručnu izmjenu container appa iz runbooka. Jedini put je kroz liniju.
Izmjena
condition: and( succeeded('E2E_UAT'), succeeded('Build'), or(eq(Build.Reason,'Manual'), startsWith(Build.SourceBranch,'refs/tags/v')) )
dependsOn: [ Build, E2E_UAT ]
Write_UAT ostaje u liniji i dalje se izvršava — samo prestaje biti uslov za promote.
Šta ostaje zaštićeno (namjerno se NE dira)
- Ljudsko odobrenje —
deployment: approve_and_deploy_demo,environment: 'bilko-demo'. Nijedan promote ne ide bez klika. - Digest-pinned deploy iz
Buildoutputa (API_DIGEST/WEB_DIGEST). succeeded('E2E_UAT'), nenot(failed(...))— fail-open klasa iz MC #107171/#107242 se NE uvodi nazad.- Samo
Manualiliv*tag.
Dokazni minimum prije klika na odobrenje
Nije u liniji nego je Johnov korak, po roadmap pravilu "promote samo s dokazom":
- svjež digest obje slike (api + web) i poklapanje s
Buildoutputom, E2E_UATzelen na tom istom sha,- login smoke kroz pregledač na demo hostu poslije promotea.
Šta ovo NE rješava
Gradnja prave write-UAT kontrolne ravni ostaje MC #900104 — po ugovoru docs/testing/WRITE-UAT-CONTRACT.md to je 10 blokirajućih preflight kapija, dokazi izolacije i uloga, paket dokaza, quiesce/cleanup/rotacija. To je pojačanje, ne blokator prihoda, i radi se odvojeno.
No comments to display
No comments to display