From 08ca1bdadb2fbdb85edb1c0d313ccd831059d735 Mon Sep 17 00:00:00 2001 From: Thomas Jung Date: Wed, 2 Sep 2026 07:39:55 -0400 Subject: [PATCH] fix(ci): allowlist /content/topics* as srv-only in route-drift guard The tag-tree-topics feature (#2099) added GET /content/topics/:slug, GET /content/topics-index, and POST /content/publish/render-topics to srv/server.js. These are public prod content surfaces mirroring the /content/concepts* routes, not tutorial-draft author-preview endpoints, so they belong in ALLOWLIST_ONLY_ON_SRV (same rationale as concepts/ authors/advocates/puzzles) rather than being mirrored into srv-qa. Fixes the failing postbuild:apps route-drift guard in the unit CI job. --- scripts/check-srv-qa-route-drift.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/scripts/check-srv-qa-route-drift.ts b/scripts/check-srv-qa-route-drift.ts index 4cfaed6e9..49d55915a 100644 --- a/scripts/check-srv-qa-route-drift.ts +++ b/scripts/check-srv-qa-route-drift.ts @@ -93,6 +93,21 @@ const ALLOWLIST_ONLY_ON_SRV: Record = { 'Concept-detail publish rendering (#1327 Task 3) — renders concept pages into a publish ' + 'session for the same public prod concept surface as GET /content/concepts/:slug. Not ' + 'a tutorial-draft author-preview endpoint; the QA channel has no concept publish flow.', + 'GET /content/topics/:slug': + 'KG topic landing pages (tag-tree-topics, #2099) — a public prod content surface that ' + + 'mirrors GET /content/concepts/:slug (topic- prefixed BLOBs, legacy-slug 301 resolution), ' + + 'not tutorial-draft author preview. The QA channel serves in-flight tutorials from ' + + '-Contribution repos; topic pages are out of its scope and srv-qa wires no topic serve flow.', + 'GET /content/topics-index': + 'CAP-served /topics/ LIST page (tag-tree-topics, #2099) — the index companion to ' + + 'GET /content/topics/:slug above, same public prod content surface as the concepts-index ' + + 'entry it mirrors, not tutorial-draft author preview. The QA channel serves in-flight ' + + 'tutorials; topic pages are out of its scope and srv-qa wires no topicsIndexHandler.', + 'POST /content/publish/render-topics': + 'Topic-detail publish rendering (tag-tree-topics, #2099) — renders topic pages into a ' + + 'publish session for the same public prod topic surface as GET /content/topics/:slug, ' + + 'mirroring render-concepts exactly. Not a tutorial-draft author-preview endpoint; the QA ' + + 'channel has no topic publish flow.', 'POST /content/orphan-purge': 'CI-only batched soft-delete for prod content maintenance (#823). Not an author-preview ' + 'endpoint — the QA channel has no orphan-purge maintenance flow.',