From 7a17958ad84ecea7d9f71092b3c2ce5e4b7f1e80 Mon Sep 17 00:00:00 2001 From: tigattack <10629864+tigattack@users.noreply.github.com> Date: Wed, 1 Oct 2025 23:54:46 +0100 Subject: [PATCH] feat(env): validate required env vars on start --- backend/src/server.js | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/backend/src/server.js b/backend/src/server.js index 78fc180..394fe2a 100644 --- a/backend/src/server.js +++ b/backend/src/server.js @@ -1,4 +1,40 @@ require("dotenv").config(); + +// Validate required environment variables on startup +function validateEnvironmentVariables() { + const requiredVars = { + JWT_SECRET: "Required for secure authentication token generation", + DATABASE_URL: "Required for database connection", + }; + + const missing = []; + + // Check required variables + for (const [varName, description] of Object.entries(requiredVars)) { + if (!process.env[varName]) { + missing.push(`${varName}: ${description}`); + } + } + + // Fail if required variables are missing + if (missing.length > 0) { + console.error("❌ Missing required environment variables:"); + for (const error of missing) { + console.error(` - ${error}`); + } + console.error(""); + console.error( + "Please set these environment variables and restart the application.", + ); + process.exit(1); + } + + console.log("✅ Environment variable validation passed"); +} + +// Validate environment variables before importing any modules that depend on them +validateEnvironmentVariables(); + const express = require("express"); const cors = require("cors"); const helmet = require("helmet");