You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The app starts without any warning when required environment variables are missing (e.g. JWT_SECRET, PAYSTACK_SECRET_KEY, DATABASE_HOST). Missing config causes cryptic runtime errors deep in service calls. Joi validation at startup gives an immediate, actionable error listing exactly which variables are absent.
Context
ConfigModule.forRoot() in backend/src/app.module.ts — supports a validationSchema option from @nestjs/config
Joi is not currently installed — add it
backend/.env.example is the reference for required variables
Tasks
Install joi: npm install joi
Create backend/src/config/env.validation.ts exporting a Joi ObjectSchema
Overview
The app starts without any warning when required environment variables are missing (e.g.
JWT_SECRET,PAYSTACK_SECRET_KEY,DATABASE_HOST). Missing config causes cryptic runtime errors deep in service calls. Joi validation at startup gives an immediate, actionable error listing exactly which variables are absent.Context
ConfigModule.forRoot()inbackend/src/app.module.ts— supports avalidationSchemaoption from@nestjs/configbackend/.env.exampleis the reference for required variablesTasks
joi:npm install joibackend/src/config/env.validation.tsexporting a JoiObjectSchemaDATABASE_HOST,DATABASE_PORT(number),DATABASE_NAME,DATABASE_USERNAME,DATABASE_PASSWORDJWT_SECRET,JWT_EXPIRATION,JWT_REFRESH_SECRET,JWT_REFRESH_EXPIRATIONPAYSTACK_SECRET_KEY,PAYSTACK_PUBLIC_KEYCLOUDINARY_CLOUD_NAME,CLOUDINARY_API_KEY,CLOUDINARY_API_SECRETREDIS_HOST,REDIS_PORT(number)SENDGRID_API_KEY(orSMTP_HOST— whichever is used)ConfigModule.forRoot({ validationSchema, validationOptions: { abortEarly: false } })so all missing variables are reported at oncebackend/.env.exampleto document every required variable with a description commentFiles to Modify / Create
backend/src/config/env.validation.tsbackend/src/app.module.tsbackend/.env.example