copilot-swe-agent[bot]
1648d8c745
feat(api): configure CORS middleware for API endpoints
...
- Add CORSMiddleware (disabled by default, enabled via CORS_ENABLED=true)
- Add cors_enabled, cors_allowed_origins, cors_allow_credentials,
cors_allowed_methods, cors_allowed_headers settings to config.py
- Add parse_comma_separated_list validator for CORS list env vars
- Insert CORS middleware between SessionMiddleware and ProxyHeaders
so preflight runs before CSRF/auth but after proxy-header processing
- Document CORS env vars in .env.demo with rationale for proxy-first approach
- Mark CORS TODO as completed in SECURITY_AUDIT.md
- Add tests/test_cors.py with 12 unit and integration tests
Closes #175
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-02-22 19:26:39 +00:00
..
2025-03-26 16:27:36 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:12:11 +00:00
2026-02-13 09:12:11 +00:00
2026-02-10 15:53:11 +00:00
2026-02-14 00:05:57 +00:00
2026-02-13 09:10:52 +00:00
2026-02-12 03:21:41 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 23:23:35 +00:00
2026-02-12 03:21:41 +00:00
2026-02-17 11:40:34 +00:00
2026-02-13 09:10:52 +00:00
2026-02-14 00:17:16 +00:00
2026-02-13 09:10:52 +00:00
2026-02-22 16:02:00 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-16 15:35:45 +00:00
2026-02-14 00:16:21 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 21:01:04 +00:00
2026-02-12 03:21:41 +00:00
2026-02-08 08:16:54 +00:00
2026-02-22 14:24:27 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-15 10:24:48 +00:00
2026-02-13 09:10:52 +00:00
2026-02-14 00:16:21 +00:00
2026-02-13 09:10:52 +00:00
2026-02-12 03:21:41 +00:00
2026-02-13 16:12:39 +00:00
2026-02-16 15:45:28 +00:00
2026-02-14 00:12:30 +00:00
2026-02-13 09:10:52 +00:00
2026-02-16 15:37:22 +00:00
2026-02-21 09:40:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-22 19:26:39 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 22:39:34 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 22:39:34 +00:00
2026-02-22 16:27:37 +00:00
2026-02-14 00:30:52 +00:00
2026-02-16 15:34:36 +00:00
2026-02-13 16:12:39 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-14 00:16:21 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 16:51:07 +00:00
2026-02-14 00:06:55 +00:00
2026-02-12 03:21:41 +00:00
2026-02-13 22:39:34 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-12 03:21:41 +00:00
2026-02-15 10:24:48 +00:00
2026-02-16 15:54:13 +00:00
2026-02-22 15:25:48 +00:00
2026-02-15 10:28:44 +00:00
2026-02-13 23:40:31 +00:00
2026-02-12 03:21:41 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-14 00:34:34 +00:00
2026-02-22 16:12:58 +00:00
2026-02-14 00:05:57 +00:00
2026-02-14 00:16:21 +00:00
2026-02-12 17:32:17 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-16 15:56:19 +00:00
2026-02-09 20:56:35 +00:00
2026-02-12 03:21:41 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 23:56:57 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-09 15:14:40 +00:00
2026-02-22 15:25:48 +00:00
2026-02-13 22:39:34 +00:00
2026-02-13 16:51:07 +00:00
2026-02-16 20:40:44 +00:00
2026-02-12 03:21:41 +00:00
2026-02-16 15:47:20 +00:00
2026-02-13 09:10:52 +00:00
2026-02-12 03:21:41 +00:00
2026-02-12 03:21:41 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-14 00:16:21 +00:00
2026-02-13 16:51:07 +00:00
2026-02-13 23:33:25 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 23:45:11 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-17 04:35:00 +00:00
2026-02-17 11:40:34 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 16:51:07 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 23:36:32 +00:00
2026-02-09 20:55:53 +00:00
2026-02-13 09:10:52 +00:00
2026-02-12 03:21:41 +00:00
2026-02-13 09:10:52 +00:00
2026-02-13 09:10:52 +00:00
2026-02-14 00:16:21 +00:00
2026-02-17 12:01:40 +00:00
2026-02-12 03:21:41 +00:00
2026-02-13 11:48:36 +00:00
2026-02-15 10:24:48 +00:00
2026-02-13 23:46:57 +00:00