-
-
Notifications
You must be signed in to change notification settings - Fork 115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore(api): Added type inference and runtime validation to process.env
#200
chore(api): Added type inference and runtime validation to process.env
#200
Conversation
PR Description updated to latest commit (0339e74) |
PR Review
✨ Review tool usage guide:Overview: The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.
See the review usage page for a comprehensive guide on using this tool. |
PR Code Suggestions
✨ Improve tool usage guide:Overview:
See the improve usage page for a comprehensive guide on using this tool. |
Process.env
process.env
@jamesfrye420 could you please make the 2 required changes? We can merge it asap! |
/review |
Chore: updated .env.example with REDIS Creds Chore: added cross-env for windows and linux shell support
Chore: Updated Prisma Client to latest Chore: Made SMTP creds non optional Chore: Removed Prisma and @prisma/client to api and migrated scripts accordingly
f74537c
to
41f8d27
Compare
Quality Gate passedIssues Measures |
## [1.3.0](v1.2.0...v1.3.0) (2024-05-12) ### 🚀 Features * Add approval support ([#158](#158)) ([e09ae60](e09ae60)) * **api:** Add configuration live update support ([#181](#181)) ([f7d6684](f7d6684)) * **api:** Add feature to export data of a workspace ([#152](#152)) ([46833aa](46833aa)) * **api:** Add Integration support ([#203](#203)) ([f1ae87e](f1ae87e)) * **api:** Add note to [secure] and variable ([#151](#151)) ([2e62351](2e62351)) * **api:** Add OAuth redirection and polished authentication ([#212](#212)) ([d2968bc](d2968bc)) * **api:** Add support for storing and managing variables ([#149](#149)) ([963a8ae](963a8ae)) * **api:** Added GitLab OAuth ([#188](#188)) ([4d3bbe4](4d3bbe4)) * **api:** Added validation for reason field ([#190](#190)) ([90b8ff2](90b8ff2)) * **api:** Create default workspace on user's creation ([#182](#182)) ([3dc0c4c](3dc0c4c)) * **api:** Reading `port` Dynamically ([#170](#170)) ([fd46e3e](fd46e3e)) * **auth:** Add Google OAuth ([#156](#156)) ([cf387ea](cf387ea)) * **web:** Added waitlist ([#168](#168)) ([1084c77](1084c77)) * **web:** Landing revamp ([#165](#165)) ([0bc723b](0bc723b)) ### 🐛 Bug Fixes * **web:** alignment issue in “Collaboration made easy” section ([#178](#178)) ([df5ca75](df5ca75)) * **workspace:** delete duplicate tailwind config ([99d922a](99d922a)) ### 📚 Documentation * add contributor list ([f37569a](f37569a)) * Add integration docs ([#204](#204)) ([406ddb7](406ddb7)) * Added integration docs to gitbook summary ([ab37530](ab37530)) * **api:** Add swagger docs of API key controller ([#167](#167)) ([2910476](2910476)) * **api:** Add swagger docs of User Controller ([#166](#166)) ([fd59522](fd59522)) * fix typo in environment-variables.md ([#163](#163)) ([48294c9](48294c9)) * Remove supabase from docs ([#169](#169)) ([eddbce8](eddbce8)) * **setup:** replace NX with Turbo in setup instructions ([#175](#175)) ([af8a460](af8a460)) * Update README.md ([b59f16b](b59f16b)) * Update running-the-api.md ([177dbbf](177dbbf)) * Update running-the-api.md ([#193](#193)) ([3d5bcac](3d5bcac)) ### 🔧 Miscellaneous Chores * Added lockfile ([60a3b9b](60a3b9b)) * Added lockfile ([6bb512c](6bb512c)) * **api:** Added type inference and runtime validation to `process.env` ([#200](#200)) ([249e07d](249e07d)) * **api:** Fixed prisma script env errors ([#209](#209)) ([8762354](8762354)) * **API:** Refactor authority check functions in API ([#189](#189)) ([e9d710d](e9d710d)) * **api:** Refactor user e2e tests ([b38d45a](b38d45a)) * **ci:** Disabled api stage release ([97877c4](97877c4)) * **ci:** Update stage deployment config ([868a6a1](868a6a1)) * **codecov:** update api-e2e project coverage ([1e90d7e](1e90d7e)) * **dockerfile:** Fixed web dockerfile ([6134bb2](6134bb2)) * **docker:** Optimized web Dockerfile to reduct image size ([#173](#173)) ([444286a](444286a)) * **release:** Downgraded package version ([c173fee](c173fee)) * **release:** Fix failing release ([#213](#213)) ([40f64f3](40f64f3)) * **release:** Install pnpm ([1081bea](1081bea)) * **release:** Updated release commit ([b8958e7](b8958e7)) * **release:** Updated release commit ([e270eb8](e270eb8)) * Update deprecated husky Install command ([#202](#202)) ([e61102c](e61102c)) * Upgrade @million/lint from 0.0.66 to 0.0.73 ([#172](#172)) ([dd43ed9](dd43ed9)) * **web:** Updated fly memory config ([4debc66](4debc66)) ### 🔨 Code Refactoring * **api:** Made events central to workspace ([#159](#159)) ([9bc00ae](9bc00ae)) * **api:** Migrated to cookie based authentication ([#206](#206)) ([ad6911f](ad6911f)) * **monorepo:** Migrate from nx to turbo ([#153](#153)) ([88b4b00](88b4b00))
🎉 This PR is included in version 1.3.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
User description
Feat: Added run time zod validation and type inference to
Process.env
Chore: updated
.env.example
with REDIS CredsChore: added
cross-env
for cross compatibility between windows and linux env vars inpackage.json
scripts.Fixes #199 #179 #184
Dependencies
Zod - for runtime schema Validation
cross-env - for setting variables in
package.json
scripts across linux and windows.Future Improvements
TODO: To add regex validation as indicated in the Schema File of Env.
Developer's checklist
Documentation Update
Type
enhancement, documentation
Description
app.module.ts
, enhancing configuration robustness.env.schema.ts
for validating and documenting expected environment variables.ProcessEnv
interface to type-check environment variables against the Zod schema..env.example
andpackage.json
to support new environment configurations and cross-platform compatibility.zod
,cross-env
) for the new features.Changes walkthrough
app.module.ts
Integrate EnvSchema for Environment Variable Validation
apps/api/src/app/app.module.ts
EnvSchema
for runtime validation of environment variablesin the configuration module.
properties.
env.schema.ts
Define Zod Schema for Environment Variables
apps/api/src/common/env/env.schema.ts
handling empty strings and optional fields.
env.d.ts
Extend ProcessEnv with EnvSchema Types
apps/api/src/common/env/env.d.ts
ProcessEnv
interface to include types defined inEnvSchema
..env.example
Update .env Example with Redis Variables
.env.example
package.json
Add Zod to API Package Dependencies
apps/api/package.json
zod
to dependencies for schema validation.package.json
Integrate cross-env for Cross-Platform Compatibility
package.json
cross-env
to dependencies for cross-platform environmentvariable support.
cross-env
for setting environment variables.pnpm-lock.yaml
Update Lock File with New Dependencies
pnpm-lock.yaml
cross-env
andzod
.