Commit Graph

10 Commits

Author SHA1 Message Date
Anso bb46ab728c chore(main): release 0.4.0 (#154) 2026-03-25 10:46:31 -04:00
Anso 7d20f2e3c5 chore(main): release 0.3.1 (#150) 2026-03-25 09:10:10 -04:00
Anso fda9679632 chore(main): release 0.3.0 (#146) 2026-03-25 08:40:13 -04:00
Anso 2f39becfab chore(main): release 0.2.5 (#142) 2026-03-25 02:35:51 -04:00
Anso e8110bf7af chore(main): release 0.2.4 (#139) 2026-03-25 01:51:06 -04:00
Anso 4fe51ec17a chore(main): release 0.2.3 (#135) 2026-03-25 01:15:13 -04:00
Anso 6f1b2cfa9c chore(main): release 0.2.2 (#98) 2026-03-24 21:28:19 -04:00
Anso 7aac99abdf chore(main): release 0.2.1 2026-03-24 19:46:44 -04:00
github-actions[bot] 8f7419f710 chore(main): release 0.2.0 2026-03-24 23:06:51 +00:00
SaelixCode ce50db0fde security: pre-release hardening, automated testing, and production readiness
SECURITY (critical fixes):
- Add authMiddleware to /api/system/console-token (was publicly accessible)
- Validate api_url on node create/update to prevent SSRF (rejects localhost/loopback)
- Add rate limiting (5 req/15 min/IP) to /api/auth/login and /api/auth/setup
- Fix path traversal in env_file resolution — absolute/escaping paths rejected
- Add stack name validation to GET routes (was only on PUT/POST)
- Add helmet security headers middleware
- Restrict CORS to FRONTEND_URL in production

PRODUCTION READINESS:
- Add GET /api/health public endpoint + HEALTHCHECK in Dockerfile
- Add SIGTERM/SIGINT graceful shutdown handler (drains connections, closes DB)
- Run container as non-root sencho user in Dockerfile

QUALITY:
- Fix 4 silent empty catch{} blocks in EditorLayout (now show toast.error)
- Connect ErrorBoundary to root App in main.tsx
- Replace WebSocket.Server with named WebSocketServer import (ESM compat)

TESTING (new automated test suite):
- Install Vitest; 38 backend tests across 4 suites covering validation utilities,
  health endpoint, auth middleware, login flows, SSRF protection, and path traversal
- Extract isValidStackName/isValidRemoteUrl/isPathWithinBase to utils/validation.ts
- Playwright E2E scaffolding: auth, stacks, nodes specs + shared login helper
- CI: run Vitest + ESLint on every PR
2026-03-21 21:59:44 -04:00