Skip to content

fix(ci): allowlist /content/topics* in srv-qa route-drift guard - #2108

Merged
jung-thomas merged 1 commit into
DEVfrom
fix/srv-qa-topics-route-allowlist
Sep 2, 2026
Merged

fix(ci): allowlist /content/topics* in srv-qa route-drift guard#2108
jung-thomas merged 1 commit into
DEVfrom
fix/srv-qa-topics-route-allowlist

Conversation

@jung-thomas

Copy link
Copy Markdown
Contributor

Problem

The unit CI job fails at the Static build guards (postbuild:apps) step:

[check-srv-qa-route-drift] FAILED — /content/* route drift detected:
  Routes on srv but MISSING from srv-qa/server.js:
    GET /content/topics/:slug    (srv/server.js:551)
    GET /content/topics-index    (srv/server.js:590)
    POST /content/publish/render-topics    (srv/server.js:633)

The tag-tree-topics feature (#2099) added three /content/topics* routes to srv/server.js. The route-drift guard requires every /content/* route to be mirrored in srv-qa/server.js or explicitly allowlisted.

Fix

Topic landing pages are a public prod content surface — they mirror /content/concepts* (topic-prefixed BLOBs, legacy-slug 301 resolution, publish-session rendering) — 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/publish flow.

So the correct fix is to add the three routes to ALLOWLIST_ONLY_ON_SRV with justifications (same treatment as concepts/authors/advocates/puzzles), rather than pulling publish-topics.js/topic-list-page.js deps into the srv-qa cp list for an unreachable surface.

Verification

npm run postbuild:apps passes end-to-end locally:

[check-srv-qa-route-drift] OK — 33 /content/* route(s) on srv, 13 on srv-qa (20 srv-only + 0 srv-qa-only allowlisted).
...
ok — 0 deprecated-only changes, 0 unmitigated

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.
@jung-thomas
jung-thomas merged commit cff2d31 into DEV Sep 2, 2026
3 checks passed
@jung-thomas
jung-thomas deleted the fix/srv-qa-topics-route-allowlist branch September 2, 2026 11:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant