[Bugfix #269] Bundle vendor libraries locally to fix CSP-blocked document viewer#270
Merged
waleedkadous merged 1 commit intoFeb 15, 2026
Conversation
…void CSP blocks The document viewer (open.html) loaded PrismJS, marked, and DOMPurify from external CDNs. When served through Codev Cloud, the Content Security Policy blocks these external scripts, causing a blank content area and "Prism is not defined" errors. Bundles all vendor libraries locally under templates/vendor/ and adds a vendor sub-route to the annotate handler to serve them. This removes all external CDN dependencies from the document viewer.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #269
The document viewer (
open.html) loaded PrismJS, marked, and DOMPurify from external CDNs (cdnjs.cloudflare.com, cdn.jsdelivr.net). When served through Codev Cloud, the Content Security Policy blocks these external scripts, causing:Prism is not definederrors in consoleRoot Cause
The page's CSP (set by the cloud infrastructure) restricts
script-srcandstyle-srcto'self'and'unsafe-inline', blocking all external CDN domains.Fix
templates/vendor/vendor/*sub-route to the annotate handler intower-routes.tsto serve these files with correct MIME types and caching headersopen.htmlto reference local vendor paths instead of CDN URLsTest Plan