fix: implement comprehensive environment variable validation system #313
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
The application had basic environment variable validation that would cause runtime crashes with generic error messages when variables were missing or invalid.
Solution
Implemented a comprehensive environment variable validation system with:
🔍 Validation Functions
Developer Tools
npm run validate-envfor easy validationenv.examplewith documentationEnhanced Error Handling
Files Changed
lib/server/constants.ts- Main validation system implementationpackage.json- Added validation script commandscripts/validate-env.mjs- Command-line validation toolscripts/test-env-validation.mjs- Test script for validation functionsenv.example- Complete environment variable documentationEnvironment Variables Validated
Required Variables:
SERVER_IDENTITY_PRIVATE_KEY- Server cryptographic keyTELEGRAM_BOT_TOKEN- Telegram bot authenticationSESSION_PASSWORD- Session securityNEXT_PUBLIC_SERVER_DID- Server identifier (DID format)NEXT_PUBLIC_STORACHA_SERVICE_URL- Service URL (valid URL format)NEXT_PUBLIC_STORACHA_SERVICE_DID- Service identifier (DID format)NEXT_PUBLIC_STORACHA_RECEIPTS_URL- Receipts URL (valid URL format)NEXT_PUBLIC_TELEGRAM_API_ID- Telegram API ID (numeric)NEXT_PUBLIC_TELEGRAM_API_HASH- Telegram API hashNEXT_PUBLIC_POINTS_PER_BYTE- Points calculation (numeric)Optional Variables (with defaults):
SESSION_COOKIE_NAME- Default: 'tg-backups'NEXT_PUBLIC_VERSION- Default: '1.0.0'version- Default: '0.0.0'Usage
Validate Environment Variables:
Runtime Health Check: