Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

remocon

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

remocon

  • 0.5.1
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Gem Version Build Status

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> # Optional

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: # key name
  value: 100 # default value
  conditions: 
    condition1:
      value: 200 # a value to be used if condition1 is satisfied
    condition2:
      file: path_to_file # you can use file content. the file content is used for a value

conditions.yml

- name: condition1 # condition name
  expression: device.os == 'android' # expression
  tagColor: "INDIGO" # color name
- name: condition2
  expression: device.os == 'ios'
  tagColor: CYAN

Update configs on remote

# Create new configs as projects/my_project_dev/config.json
bundle exec remocon create --prefix=projects --id=my_project_dev

# Upload projects/my_project_dev/config.json by using projects/my_project_dev/etag
bundle exec remocon push --prefix=projects --id=my_project_dev --token=xyz

# You can use custom paths for config.json and etag
bundle exec remocon push --source=</path/to/config json> --etag=</path/to/etag>

# Use the fixed etag value
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: # optional (either of this or file is required). Raw value and hash are allowed.
  file: # optional (either of this or value is required). File content value.
  normalizer: # optional. Either of ["integer", "string", "boolean", "json", "void"] (default: void).
  conditions: # optional. If you want use conditional values, then you need to create this section.
    condition_name: # must be in condition definitions.
      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.

FAQs

Package last updated on 22 Aug 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc