Complete every required item before directing public traffic to CareerFlow.
- Run Node.js 22+ and npm 11+ from the committed
package-lock.json. - Store
DATABASE_URL,AUTH_URL, andAUTH_SECRETin the platform secret manager. - Generate
AUTH_SECRETfrom at least 32 random bytes and never reuse the example value. - Set
AUTH_URLto the final HTTPS origin with no untrusted alternate host. - Terminate TLS at the application platform or a trusted reverse proxy.
- Strip client-supplied forwarding headers and set trusted client-IP headers at the proxy.
- Configure shared or edge rate limiting for registration and credentials login.
- Use a dedicated, least-privilege application role and require provider-supported TLS.
- Create automated backups and test a restore before launch.
- Apply migrations once with
npm run db:migrate:deploybefore starting the release. - Confirm
GET /api/healthreturns200after migration and503when PostgreSQL is unavailable.
- Run
npm ci,npm run db:generate, andnpm run buildon the release commit. - Inject required environment variables at runtime; do not copy
.envinto an image. - Run the application with
npm run startor the standalone Docker server as a non-root user. - Verify registration, sign-in, sign-out, protected routes, ownership isolation, and destructive confirmations.
- Verify desktop and mobile layouts, keyboard navigation, theme switching, and browser console output.
- Review
npm auditand document any accepted production risk. - Ensure production logs exclude passwords, hashes, application notes, resume metadata, query text, and connection details.
- Establish an incident contact, backup owner, and rollback procedure.
- Recheck the privacy notice, data-retention policy, and account-deletion process before collecting public user data.