tractatus/src/middleware
TheFlow 760be83304 fix(newsletter): resolve CSRF token issue for static HTML pages
Problem:
- nginx serves blog.html as static file, bypassing Express middleware
- setCsrfToken middleware never runs
- No CSRF cookie set
- Newsletter subscription fails with 403 Forbidden

Root cause:
nginx config: 'try_files $uri @proxy' serves static files directly
Location: /etc/nginx/sites-available/tractatus (line 54)

Solution:
1. blog.js now fetches CSRF token via /api/csrf-token on page load
2. getCsrfToken endpoint now creates token if missing (for static pages)
3. Newsletter form uses fetched token for subscription

Testing:
 Local test: CSRF token fetched successfully
 Newsletter subscription: Creates record in database
 Verified: test-fix@example.com subscribed via curl test

Impact:
- Newsletter subscriptions now work on production
- Fix applies to all static HTML pages (blog.html, etc.)
- Maintains CSRF protection security

Files:
- public/js/blog.js: Added fetchCsrfToken() + use in newsletter form
- src/middleware/csrf-protection.middleware.js: Enhanced getCsrfToken()

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-25 09:37:16 +13:00
..
tractatus feat: implement Tractatus governance framework - core AI safety services 2025-10-07 00:51:57 +13:00
analytics.middleware.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
auth.middleware.js chore: bump cache version to 0.1.1 for JS changes 2025-10-25 08:47:54 +13:00
csrf-protection.middleware.js fix(newsletter): resolve CSRF token issue for static HTML pages 2025-10-25 09:37:16 +13:00
error.middleware.js refactor(lint): fix code style and unused variables across src/ 2025-10-24 20:15:26 +13:00
file-security.middleware.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
input-validation.middleware.js security: implement quick wins (80/20 approach) + full 6-phase tracker 2025-10-14 14:58:42 +13:00
rate-limit.middleware.js fix(submissions): restructure Economist package and fix article display 2025-10-24 08:47:42 +13:00
response-sanitization.middleware.js refactor(lint): fix code style and unused variables across src/ 2025-10-24 20:15:26 +13:00
security-headers.middleware.js refactor(lint): fix code style and unused variables across src/ 2025-10-24 20:15:26 +13:00
validation.middleware.js refactor(lint): fix code style and unused variables across src/ 2025-10-24 20:15:26 +13:00