MC #105767 — Bilko Demo CORS/DNS Fix (OCD-11 Resolved)

MC #105767 — Bilko Demo Env CORS/API-host + DNS Retirement (OCD-11 closed)

Date: 2026-07-15 | Agent: CodeCraft | Status: RESOLVED

Root cause

The original UAT finding (MC #105765) conflated two separate, non-overlapping facts as one "CORS bug":

  1. The Ktor API's CORS_ORIGINS allowlist (azure-pipelines.yml:889) is deliberately scoped to the customer brand domains only (app.bilko.cloud, app.bilko.io, app.bilko.company, localhost). It correctly rejects unrecognized origins — the raw ACA FQDN and bilko-demo.alai.no — with a 403 BILKO-AUTH-003. This is intended access control, not a defect.
  2. bilko-demo.alai.no and bilko-demo-api.alai.no were dead Cloudflare CNAME records pointing at ghs.googlehosted.com (GCP era, dead since the 2026-06-15 Azure cutover). This was already tracked as DEPLOY-MAP.md OCD-11 and already declared "dead/retired for customer handoff" in the canonical docs/operations/DEMO-ACCESS.md (verified 2026-07-12).

The canonical customer/sales demo entry point, https://app.bilko.cloud/demo?country=HR, was never broken. Confirmed live before and after this change: HTTP 200, correct access-control-allow-origin header, zero console errors, zero network errors (Playwright chromium, screenshot in evidence).

Action taken

Why repoint-through-Worker was rejected

Both DNS records were proxied=false (grey-clouded), so they could never reach the bilko-edge-proxy Cloudflare Worker's Host/SNI rewrite mechanism. The Worker's wrangler.toml routes are scoped to the bilko.io / bilko.cloud / bilko.company zones only — not alai.no. Extending that would require a code change, an azdo pipeline deploy, and a Workers-scoped Cloudflare API token (only a DNS/zone-scoped token was available at triage time). Disproportionate for a dead legacy alias already declared retired in canonical docs.

Verification

Evidence

~/system/evidence/105767/ — DNS before/after snapshots, Playwright result JSON + screenshot, direct-probe log, sha256-verified evidence manifest (evidence-105767.json).

References


Revision #2
Created 2026-07-15 19:44:13 UTC by John
Updated 2026-08-10 07:37:39 UTC by John