feat: implement environment-based secrets management #2
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.
Summary
Secure the application by eliminating hardcoded credentials and configuration values. All secrets and environment-specific settings now load from environment variables, enabling safe deployment across local, Railway, and Vercel environments.
Changes
.env.exampletemplate with comprehensive documentation for all required and optional environment variablesvalidate_required_env_vars()function to fail-fast on startup if critical config is missingbackend/main.pyto loadGOOGLE_CLOUD_PROJECT,GOOGLE_CLOUD_LOCATION,GOOGLE_PDDL_MODELfrom environmentGOOGLE_APPLICATION_CREDENTIALS_JSONfor direct credential injection (Railway/Vercel) and file path fallback for local developmentALLOWED_ORIGINSenvironment variable with sensible defaultspddl_planner.pyto loadFIREWORKS_API_KEYfrom environment with clear error messagingTesting
.env.exampleto.env, fill values, confirm app startsALLOWED_ORIGINSset to specific domainsNotes
BREAKING CHANGE: Application now requires environment variables at startup.
Required variables:
GOOGLE_CLOUD_PROJECTGOOGLE_CLOUD_LOCATIONGOOGLE_PDDL_MODELGOOGLE_APPLICATION_CREDENTIALS_JSONorGOOGLE_APPLICATION_CREDENTIALSMigration steps:
cp .env.example .envand fill in your valuesVITE_API_URLvia Settings → Environment VariablesSee
.env.examplefor detailed documentation and deployment instructions.