Closed ashfurrow closed 4 years ago
react-native-config
is nice, so def 👍 on that.
Are you planning to create a PR with the obfuscation code on the main repo? It would be good not to have to maintain a fork. Ah, just read the PR in the forked repo. Nice!
nice touch with the obfuscation.
We decided to adopt the dependency.
1: Overwhelming positive feedback.
None
Let's merge https://github.com/artsy/eigen/pull/3725 and then announce.
None.
New Dependency
Name: react-native-config (forked, for now)
URL: https://github.com/artsy/react-native-config
Motivation
Currently, Eigen uses
cocoapods-keys
to store environment configuration for the app (the list of used keys is here). CocoaPods only works for iOS apps, and we are planning in MX-489 to migrate to a cross-platform solution, to support upcoming Android work.react-native-config
is a good solution. However, it lacks one important feature fromcocoapods-keys
: key obfuscation. Please note that it is impossible to ship a binary to users that guarantees security of the keys, but key obfuscation makes it much more difficult to extract them. Unobfuscated keys are present as plaintext in the app binary, which is not acceptable. We have forkedreact-native-config
and ported the obfuscation code fromcocoapods-keys
in this PR. Eventually, we'll need to recreate that logic for the Android app too.A big upside to using
react-native-config
overcocoapods-keys
is that we will migrate to storing local keys in a.env
file, just like most other apps at Artsy. This will reduce the overhead for new contributors to the app. We will need to change our beta deploys to write the environment variables to a.env
file prior to deploying.Check List
Alternatives
We chatted about alternatives in MX Knowledge Share yesterday, and nothing came up.