feat(env-vars): add environment variable management functionality - #158
Merged
Conversation
- Introduced permissions for managing environment variables: PermEnvRead and PermEnvManage. - Added audit log actions for environment variable updates, deletions, and reveals. - Created a new database migration for the branch_env_vars table to store environment variables securely. - Implemented the EnvVarService to handle CRUD operations for environment variables, including sealing values. - Developed HTTP handlers for listing, setting, revealing, and deleting environment variables. - Updated routing to include new endpoints for environment variable management. - Added tests for the EnvVarService and PostgresEnvVarStore to ensure correct functionality and validation.
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR introduces environment variables. They will be used for native builds as well as for publishing updates.
I decided to scope variables by branch.
Why branch-scoped?
EXPO_PUBLIC_* values are inlined into the JS bundle at every export: both when building the binary (the embedded update) and on every publish.
Since an OTA update replaces the whole bundle, the values that matter are the ones present at publish time. Build and publish therefore need to resolve the exact same environment, which requires a single, stable anchor.
Channels can't be that anchor: an update is published to a branch, and channels are mobile pointers on top of branches — they get remapped, promoted, split by rollouts (one channel serving two branches at once), or bypassed entirely by branch surfing.