Socket
Socket
Sign inDemoInstall

gcf-runtime-config

Package Overview
Dependencies
62
Maintainers
3
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    gcf-runtime-config

Environment Variables within Google Cloud Functions through Runtime Config


Version published
Weekly downloads
3
increased by200%
Maintainers
3
Install size
40.8 MB
Created
Weekly downloads
 

Readme

Source

gcf-runtime-config

gcf-runtime-config helps you get environment variables within Google Cloud Functions (GCF) through Runtime Config.

CircleCI Coverage Status MIT License version

Usage

Install it:

$ npm install --save gcf-runtime-config

Enable Google Cloud's Runtime Config API:

$ gcloud services enable runtimeconfig.googleapis.com

Create a new config:

$ gcloud beta runtime-config configs create EXAMPLE_ENVIRONMENT 
$ gcloud beta runtime-config configs variables \
    set PAYPAL_SECRET_KEY "NOTREAL1234!@#$" \
    --config-name EXAMPLE_ENVIRONMENT \
    --is-text
$ gcloud beta runtime-config configs variables \
    set STRIPE_SECRET_KEY "YESREAL1234!@#$" \
    --config-name EXAMPLE_ENVIRONMENT \
    --is-text

Sample function code:

const gcfRuntimeConfig = require('gcf-runtime-config');

exports.testRuntimeConfig = (req, res) => {
  gcfRuntimeConfig
    .getVariables('EXAMPLE_ENVIRONMENT')
    .then(variablesObj => res.send(variablesObj))
    .catch(err => res.send(err));
};

The example directory is a ready-to-deploy sample function that uses gcf-runtime-config and extracts a runtime config (environment).

Deploy:

$ gcloud beta functions deploy testExpressApp --trigger-http

Test:

$ curl https://<YOUR_PROJECT>.cloudfunctions.net/testRuntimeConfig
{"PAYPAL_SECRET_KEY":"NOTREAL1234!@#$","STRIPE_SECRET_KEY":"YESREAL1234!@#$"}

Cleanup:

$ gcloud beta functions delete testExpressApp

API

runtimeConfig.getVariables(config[, objectify=true])

Arguments:

  • config is a the name of the config, in our example its EXAMPLE_ENVIRONMENT.
  • objectify defaults to true, it means the function resolves to an object where its keys and values are the variable names and values.
    • objectify=true in our example results in: {"PAYPAL_SECRET_KEY":"NOTREAL1234!@#$","STRIPE_SECRET_KEY":"YESREAL1234!@#$"}
    • objectify=false in our example results in: [{"name":"STRIPE_SECRET_KEY","updateTime":"2018-05-20T09:53:11.383980095Z","text":"YESREAL1234!@#$"},{"name":"PAYPAL_SECRET_KEY","updateTime":"2018-05-20T09:53:09.683262561Z","text":"NOTREAL1234!@#$"}]

Returns: A Promise that depending on objectify resolves to either an object where its keys and values are the config's parameters and values or to an array of parameter objects.

Why

We needed a way to inject secret keys to a Google Cloud Function. Storing keys in code base is wrong.

License

MIT

Keywords

FAQs

Last updated on 20 May 2018

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc