Enforce a strict browser execution boundary #296

Merged
rockachopa merged 1 commits from timmy/295-strict-browser-boundary into main 2026-08-08 11:39:24 +00:00
Member

Closes #295

What changed

  • extracted the dashboard stylesheet and 2,965-line bootstrap into same-origin static assets
  • enforced CSP (script-src 'self'), anti-framing, MIME-sniffing, referrer, and browser capability headers on every response including auth failures
  • included the extracted assets in the subpath-aware offline shell and bumped its cache generation
  • adapted behavioral tests to validate the complete HTML/CSS/JS bundle while retaining an explicit no-inline-script boundary test

Verification

  • RED: 4 focused tests failed for missing headers/assets/cache generation
  • GREEN: 524 passed in 19.12s
  • node --check frontend/dashboard.js and service worker passed
  • no inline <script> or <style> tags remain in dashboard HTML
Closes #295 ## What changed - extracted the dashboard stylesheet and 2,965-line bootstrap into same-origin static assets - enforced CSP (`script-src 'self'`), anti-framing, MIME-sniffing, referrer, and browser capability headers on every response including auth failures - included the extracted assets in the subpath-aware offline shell and bumped its cache generation - adapted behavioral tests to validate the complete HTML/CSS/JS bundle while retaining an explicit no-inline-script boundary test ## Verification - RED: 4 focused tests failed for missing headers/assets/cache generation - GREEN: `524 passed in 19.12s` - `node --check frontend/dashboard.js` and service worker passed - no inline `<script>` or `<style>` tags remain in dashboard HTML
rockachopa added 1 commit 2026-08-08 11:38:39 +00:00
security: enforce strict browser execution boundary (#295)
All checks were successful
CI / lint (pull_request) Successful in 29s
CI / build-frontend (pull_request) Successful in 4s
6e6e63e553
rockachopa merged commit d0b8c3dc0d into main 2026-08-08 11:39:24 +00:00
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#296
No description provided.