Skip to content

feat(env-vars): add environment variable management functionality - #158

Merged
axelmarciano merged 1 commit into
feature/native-buildsfrom
feature/environment
Aug 13, 2026
Merged

feat(env-vars): add environment variable management functionality#158
axelmarciano merged 1 commit into
feature/native-buildsfrom
feature/environment

Conversation

@axelmarciano

Copy link
Copy Markdown
Collaborator

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.

- 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.
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e175b093-ba28-4fce-9c99-f7b41f01ed31

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@axelmarciano
axelmarciano merged commit f984ace into feature/native-builds Aug 13, 2026
5 checks passed
@axelmarciano
axelmarciano deleted the feature/environment branch August 13, 2026 16:04
@github-project-automation github-project-automation Bot moved this from Backlog to Done in expo-open-ota Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant