forked from Deen-Bridge/dnb-backend
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalidateEnv.js
More file actions
75 lines (65 loc) · 1.88 KB
/
Copy pathvalidateEnv.js
File metadata and controls
75 lines (65 loc) · 1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import logger from "./logger.js";
/**
* Validate required environment variables
*/
const requiredEnvVars = ["MONGO_URI", "JWT_SECRET", "NODE_ENV", "PORT"];
const optionalEnvVars = [
"CLOUDINARY_CLOUD_NAME",
"CLOUDINARY_API_KEY",
"CLOUDINARY_API_SECRET",
"BLOCKED_IPS",
"JITSI_MEET_DOMAIN",
"JITSI_APP_ID",
"JITSI_PRIVATE_KEY",
"JITSI_PUBLIC_KEY_ID",
"JITSI_KID",
"JITSI_TENANT",
"STELLAR_NETWORK",
"DONATION_WALLET_PUBLIC_KEY",
"PLATFORM_FEE_PERCENT",
"PLATFORM_WALLET_PUBLIC_KEY",
];
export const validateEnv = () => {
const missing = [];
requiredEnvVars.forEach((envVar) => {
if (!process.env[envVar]) {
missing.push(envVar);
}
});
if (missing.length > 0) {
logger.error(
`❌ Missing required environment variables: ${missing.join(", ")}`
);
logger.error(
"Please check your .env file and ensure all required variables are set."
);
process.exit(1);
}
// Check JWT_SECRET strength
if (process.env.JWT_SECRET && process.env.JWT_SECRET.length < 32) {
logger.warn(
"⚠️ JWT_SECRET is too short! Use at least 32 characters for production."
);
}
// Check NODE_ENV
if (!["development", "production", "test"].includes(process.env.NODE_ENV)) {
logger.warn(
`⚠️ NODE_ENV is set to '${process.env.NODE_ENV}'. Expected: development, production, or test`
);
}
// Log optional missing variables
const missingOptional = optionalEnvVars.filter(
(envVar) => !process.env[envVar]
);
if (missingOptional.length > 0 && process.env.NODE_ENV === "production") {
logger.warn(
`⚠️ Optional environment variables not set: ${missingOptional.join(
", "
)}`
);
}
logger.info("✅ Environment variables validated successfully");
logger.info(`Environment: ${process.env.NODE_ENV}`);
logger.info(`Port: ${process.env.PORT}`);
};
export default validateEnv;