![Build Status](https://travis-ci.org/jmatsu/remocon.svg?branch=master)
Remocon
remocon is a CLI for Firebase Remote Config via its REST API. Conditions and parameters are managed by YAML files.
The goal of this gem is Remote Config as a Code. :)
Now conditions cannot be updated via API so that you can modify only parameters.
If you'd like to use this on CircleCI, you can use https://github.com/jmatsu/remocon-starter-kit .
NOTE:
v0.5.0 and lower versions contain serious bugs. Please use 0.5.1 or greater, sorry.
Usage
Get your access token
Since v0.3.0, remocon is supporting to get an access token.
If this doesn't work, then please try bin/get_access_token <service-acount.json>
.
token=$(bundle exec remocon --service-json=<path/to/service-account-json>)
Get the current configs into your local
bundle exec remocon pull --prefix=projects --id=my_project_dev --token=xyz
Then, you can see paremeters.yml, conditions.yml, config.json, etag
files in projects/my_project_dev
directory.
If you don't specify --prefix
, then the command create the files in the working directory
Environment variables
Some variables can be injected by environment variables.
export REMOCON_FIREBASE_PROJECT_ID=<--id>
export REMOCON_FIREBASE_ACCESS_TOKEN=<--token>
export REMOCON_PREFIX=<--prefix>
FIREBASE_PROJECT_ID and REMOTE_CONFIG_ACCESS_TOKEN are supported but they are deprecated now
Edit configs on your local
Condition definitions and parameter definitions are separated. You need to modify these files.
parameters.yml
key1:
value: 100
conditions:
condition1:
value: 200
condition2:
file: path_to_file
conditions.yml
- name: condition1
expression: device.os == 'android'
tagColor: "INDIGO"
- name: condition2
expression: device.os == 'ios'
tagColor: CYAN
Update configs on remote
bundle exec remocon create --prefix=projects --id=my_project_dev
bundle exec remocon push --prefix=projects --id=my_project_dev --token=xyz
bundle exec remocon push --source=</path/to/config json> --etag=</path/to/etag>
bundle exec remocon push --raw_etag=<raw etag value>
Installation
gem 'remocon'
Format
Parameters
You can use String, Boolean, Integer, Json validators like below.
key:
value:
file:
normalizer:
conditions:
condition_name:
value: ...
file: ...
Conditions
It seems only three fields are supported by Remote Config. They are name, expression and tagColor.
Supported Ruby Version
Not EOL versions. ref https://www.ruby-lang.org/en/downloads/branches/
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/jmatsu/remocon .
License
The gem is available as open source under the terms of the MIT License.