{"componentChunkName":"component---src-templates-post-js","path":"/blog/2017/09/09/passing-api-key-heroku-node-application/","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://sung.codes"}},"mdx":{"id":"2c97f1a4-ddf4-500a-9b57-ee313de79416","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Passing an API Key to Heroku Node Application\",\n  \"date\": \"2017-09-09\",\n  \"banner\": \"./images/featured-image.jpg\",\n  \"published_at\": \"2017-09-09T19:57:04.000Z\",\n  \"tags\": \"blogentry, programming, apikey, deployment\",\n  \"author\": \"Sung M. Kim\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"I was learning \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction\"\n  }), \"how to publish a node app\"), \", \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github-traffic-dance2die.herokuapp.com/?user=dance2die\"\n  }), \"GitHub Traffic View\"), \"(source on \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/dance2die/github-traffic-views\"\n  }), \"GitHub\"), \"), which requires a GitHub API key to be passed to Heroku application.\"), mdx(\"h3\", null, \"Problem\"), mdx(\"p\", null, \"Initially, the API key is stored in a file, which is untracked by Git. It was fine until when I found out that Heroku requires files to be published to be tracked by Git.\"), mdx(\"p\", null, \"I didn't want to expose my secret string to GitHub, which is very easily searchable as Jamie Taylor points out in his blog post,\\xA0\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://dotnetcore.gaprogman.com/2017/09/07/user-secrets-what-are-they-and-why-do-i-need-them/\"\n  }), \"User Secrets \\u2013 What Are They And Why Do I Need Them?\"), \"\\xA0(Jamie talks about how to use User Secrets, please refer to it if you are dealing with .NET Core).\"), mdx(\"p\", null, \"So the alternative is to use an environment variable and make it available on Heroku.\"), mdx(\"h3\", null, \"Recap of Accessing API key locally\"), mdx(\"p\", null, \"In a previous blog post, \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://sung.codes/blog/2017/07/08/hiding-api-keys-github/\"\n  }), \"Hiding API Keys on GitHub\"), \", I wrote about how to hide an API using an environment variable.\"), mdx(\"p\", null, \"Suppose that your node app access a key via an environment variable, \", mdx(\"code\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"process.env.GITHUB_DEVELOPER_KEY\")), mdx(\"p\", null, mdx(\"div\", _extends({\n    parentName: \"p\"\n  }, {\n    \"id\": \"gist77727719\",\n    \"className\": \"gist\"\n  }), \"\\n    \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gist-file\"\n  }), \"\\n      \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gist-data\"\n  }), \"\\n        \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"js-gist-file-update-container js-task-list-container file-box\"\n  }), \"\\n  \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"id\": \"file-env-js\",\n    \"className\": \"file my-2\"\n  }), \"\\n    \\n\\n  \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"itemProp\": \"text\",\n    \"className\": \"Box-body p-0 blob-wrapper data type-javascript\"\n  }), \"\\n      \\n\", mdx(\"table\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"highlight tab-size js-file-line-container\",\n    \"data-tab-size\": \"8\",\n    \"data-paste-markdown-skip\": \"\"\n  }), \"\\n      \", mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-L1\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"1\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-LC1\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-en\"\n  }), \"getAuth\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), \"=\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-kos\"\n  }), \"(\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-kos\"\n  }), \")\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), \"=>\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-kos\"\n  }), \"{\")), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-L2\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"2\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-LC2\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"    \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"const\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-s1\"\n  }), \"password\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), \"=\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-s1\"\n  }), \"process\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-kos\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), \"env\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-kos\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), \"GITHUB_DEVELOPER_KEY\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-kos\"\n  }), \";\")), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-L3\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"3\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-LC3\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  })), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-L4\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"4\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-LC4\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"    \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"return\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-kos\"\n  }), \"{\")), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-L5\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"5\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-LC5\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"        \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), \"username\"), \": \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-s\"\n  }), \"\\\"dance2die\\\"\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-kos\"\n  }), \",\")), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-L6\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"6\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-LC6\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"        \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), \"password\"), \": \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-s1\"\n  }), \"password\")), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-L7\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"7\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-LC7\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"    \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-kos\"\n  }), \"}\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-kos\"\n  }), \";\")), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-L8\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"8\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-env-js-LC8\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-kos\"\n  }), \"}\")), \"\\n      \"))), \"\\n\\n\\n  \"), \"\\n\\n  \")), \"\\n\\n      \"), \"\\n      \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gist-meta\"\n  }), \"\\n        \", mdx(\"a\", _extends({\n    parentName: \"div\"\n  }, {\n    \"href\": \"https://gist.github.com/dance2die/bad081a2b6087d35308b0296a2e43dea/raw/7784c78ff06816ae07554984fa22a964e2429441/env.js\",\n    \"style\": {\n      \"cssFloat\": \"right\"\n    }\n  }), \"view raw\"), \"\\n        \", mdx(\"a\", _extends({\n    parentName: \"div\"\n  }, {\n    \"href\": \"https://gist.github.com/dance2die/bad081a2b6087d35308b0296a2e43dea#file-env-js\"\n  }), \"env.js\"), \"\\n        hosted with \\u2764 by \", mdx(\"a\", _extends({\n    parentName: \"div\"\n  }, {\n    \"href\": \"https://github.com\"\n  }), \"GitHub\"), \"\\n      \"), \"\\n    \"))), mdx(\"p\", null, \"In Windows, you can set the environment variable as follows\"), mdx(\"p\", null, mdx(\"div\", _extends({\n    parentName: \"p\"\n  }, {\n    \"id\": \"gist77728018\",\n    \"className\": \"gist\"\n  }), \"\\n    \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gist-file\"\n  }), \"\\n      \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gist-data\"\n  }), \"\\n        \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"js-gist-file-update-container js-task-list-container file-box\"\n  }), \"\\n  \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"id\": \"file-setenvvar-cmd\",\n    \"className\": \"file my-2\"\n  }), \"\\n    \\n\\n  \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"itemProp\": \"text\",\n    \"className\": \"Box-body p-0 blob-wrapper data type-batchfile\"\n  }), \"\\n      \\n\", mdx(\"table\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"highlight tab-size js-file-line-container\",\n    \"data-tab-size\": \"8\",\n    \"data-paste-markdown-skip\": \"\"\n  }), \"\\n      \", mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-setenvvar-cmd-L1\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"1\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-setenvvar-cmd-LC1\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"C:\\\\Users\\\\dance2die\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \">\"), \"set GITHUB_DEVELOPER_KEY=abc \"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-setenvvar-cmd-L2\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"2\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-setenvvar-cmd-LC2\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \" \"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-setenvvar-cmd-L3\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"3\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-setenvvar-cmd-LC3\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"C:\\\\Users\\\\dance2die\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \">\"), \"echo \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"%GITHUB_DEVELOPER_KEY%\"), \" \"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-setenvvar-cmd-L4\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"4\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-setenvvar-cmd-LC4\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"abc\"), \"\\n      \"))), \"\\n\\n\\n  \"), \"\\n\\n  \")), \"\\n\\n      \"), \"\\n      \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gist-meta\"\n  }), \"\\n        \", mdx(\"a\", _extends({\n    parentName: \"div\"\n  }, {\n    \"href\": \"https://gist.github.com/dance2die/a980d158b15283e67bd0a66aaa491267/raw/10c976db4bf62453d97716ec24609b8e9a1d0ced/setEnvVar.cmd\",\n    \"style\": {\n      \"cssFloat\": \"right\"\n    }\n  }), \"view raw\"), \"\\n        \", mdx(\"a\", _extends({\n    parentName: \"div\"\n  }, {\n    \"href\": \"https://gist.github.com/dance2die/a980d158b15283e67bd0a66aaa491267#file-setenvvar-cmd\"\n  }), \"setEnvVar.cmd\"), \"\\n        hosted with \\u2764 by \", mdx(\"a\", _extends({\n    parentName: \"div\"\n  }, {\n    \"href\": \"https://github.com\"\n  }), \"GitHub\"), \"\\n      \"), \"\\n    \"))), mdx(\"p\", null, \"But the problem is that,\\xA0\", mdx(\"code\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"GITHUB_DEVELOPER_KEY\"), \" is available only in your local machine and won't be available after publishing to Heroku.\"), mdx(\"p\", null, \"So after publishing your application to Heroku, you need to set an environment variable for \", mdx(\"code\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"GITHUB_DEVELOPER_KEY\"), \" on deployed Heroku application, as well.\"), mdx(\"h3\", null, \"How do we set the environment variable on Heroku?\"), mdx(\"p\", null, \"When publishing to Heroku, you need to use \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://devcenter.heroku.com/articles/heroku-cli\"\n  }), \"Heroku CLI\"), \". One of the options for the command is to set a configuration variable.\"), mdx(\"p\", null, \"The command is \", mdx(\"code\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"heroku config:set<ENVIRONMENT_VARIABLE>=<VALUE>\"), \" and the documentation is available on \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://devcenter.heroku.com/articles/config-vars\"\n  }), \"Heroku Dev Center page\"), \".\"), mdx(\"p\", null, \"After deploying the node application, just set the configuration variable as shown below.\"), mdx(\"p\", null, mdx(\"div\", _extends({\n    parentName: \"p\"\n  }, {\n    \"id\": \"gist77729085\",\n    \"className\": \"gist\"\n  }), \"\\n    \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gist-file\"\n  }), \"\\n      \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gist-data\"\n  }), \"\\n        \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"js-gist-file-update-container js-task-list-container file-box\"\n  }), \"\\n  \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"id\": \"file-herokuconfigset-cmd\",\n    \"className\": \"file my-2\"\n  }), \"\\n    \\n\\n  \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"itemProp\": \"text\",\n    \"className\": \"Box-body p-0 blob-wrapper data type-batchfile\"\n  }), \"\\n      \\n\", mdx(\"table\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"highlight tab-size js-file-line-container\",\n    \"data-tab-size\": \"8\",\n    \"data-paste-markdown-skip\": \"\"\n  }), \"\\n      \", mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-herokuconfigset-cmd-L1\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"1\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-herokuconfigset-cmd-LC1\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"c:\\\\\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \">\"), \" heroku config:set GITHUB_DEVELOPER_KEY=abc\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-herokuconfigset-cmd-L2\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"2\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-herokuconfigset-cmd-LC2\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"Adding config vars and restarting myapp... done, v12 \"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-herokuconfigset-cmd-L3\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"3\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-herokuconfigset-cmd-LC3\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"GITHUB_USERNAME: abc\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-herokuconfigset-cmd-L4\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"4\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-herokuconfigset-cmd-LC4\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \" \"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-herokuconfigset-cmd-L5\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"5\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-herokuconfigset-cmd-LC5\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"c:\\\\\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \">\"), \"  heroku config \"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-herokuconfigset-cmd-L6\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"6\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-herokuconfigset-cmd-LC6\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"GITHUB_DEVELOPER_KEY: abc\"), \"\\n      \"))), \"\\n\\n\\n  \"), \"\\n\\n  \")), \"\\n\\n      \"), \"\\n      \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gist-meta\"\n  }), \"\\n        \", mdx(\"a\", _extends({\n    parentName: \"div\"\n  }, {\n    \"href\": \"https://gist.github.com/dance2die/51d26b65d120668ffd881c5f73941fe3/raw/14161696d89f9865fb9b2c71e03a09de293276f4/herokuconfigset.cmd\",\n    \"style\": {\n      \"cssFloat\": \"right\"\n    }\n  }), \"view raw\"), \"\\n        \", mdx(\"a\", _extends({\n    parentName: \"div\"\n  }, {\n    \"href\": \"https://gist.github.com/dance2die/51d26b65d120668ffd881c5f73941fe3#file-herokuconfigset-cmd\"\n  }), \"herokuconfigset.cmd\"), \"\\n        hosted with \\u2764 by \", mdx(\"a\", _extends({\n    parentName: \"div\"\n  }, {\n    \"href\": \"https://github.com\"\n  }), \"GitHub\"), \"\\n      \"), \"\\n    \"))), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"heroku config:set\"), \" lets you set an environment variable on Heroku application, while\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"heroku config:get\"), \" retrieves the environment variable value.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", _extends({\n    parentName: \"li\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"heroku config\"), \" will return all the configuration values set for the application.\")), mdx(\"p\", null, \"Now your node app will use that config var value set on Heroku application.\"), mdx(\"h3\", null, \"Conclusion\"), mdx(\"p\", null, \"I just showed you one of the ways to use Heroku config vars, which is to hide an API key.\"), mdx(\"p\", null, \"You can use it to configure your app differently or pass other sensitive information such as database connection string.\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"Passing an API Key to Heroku Node Application","banner":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='229'%20viewBox='0%200%20400%20229'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2017c0%2017%200%2018%204%2016l21-7%207-3%202-1%2012-3%2014-3%207-1%208-2c4-1%205-2%205-3h4c2-1%206-2%2013-2l14-1c3-1%2016-3%2019-2l1-2%201-1%201%201h1c3-3-3-3-68-3H0v17M296%202l5%201h6l13%203%204%201%207%201c5%200%207%201%206%202l6%201%2017%203%205%202%203%201%203%201%204%201%207%201c5%200%206%201%206%202%201%202%205%203%2010%202%202%200%202%200%202-12V0h-52c-47%200-52%200-52%202M162%2035l-4%201-3%201h-3l3%201h-7c-1%200-2%200-1-1l-2-1c-1%200-2%200-1%201l-5%201h-8a826%20826%200%2000-75%2011c-12%202-27%207-43%2014l-6%202H3l-3%201v37l1%2038c0%202%203%203%203%201l-1-1-1-2c0-2%201-2%203-2s3%200%202%201v3c1%202%201%202%202%201h3c0-2%200-1%203%201l2%202-2%203-2%202%202-1%203%201%201%202%202-2%204-3%204-1-2-2c-3-3-5-4-4-1%201%201%200%201-1%201l-2%201h-1c-1-1-1-4%201-4h2l2-1%201-1%201-1v1l2%204c4%202%204%205%200%205-2%200-3%200-2%202l2%201%202%201-2%201c-1-1-3%200-4%201-2%202-3%203-3%201s-2-2-7%201l-2-1c1%200%200-2-2-2-1-2-2-2-2-1l-1%201v-3h2c1%201%201%201%202-1%202-1%202-1%201-2v-1l1-2-2%201H8v2H6l-2%201c-1-1-2-1-1%201l2%202%201%201v1c2%201%200%203-2%203l-2-2c-1-4-2%200-2%2010s0%2013%202%2011h2l3%201c3-1%207%200%207%201l-4%203-4%203-3%201-3%201v44h36a161%20161%200%200037-1l40%201a455%20455%200%200042-3v-2l1%201h1c1-1%202%200%204%202%203%202%203%202%2018%202l15-1h1a203%20203%200%200047%200l23%201h22v-5h1l1%201h3c1%201%201%201-2%201-4%201-1%203%203%203%205%200%206-1%204-3l-2-4c2%200%205%204%205%205%200%202%201%202%206%202%206%200%206%200%207-3%201-2%201-3%203-2v2c-5%203-2%203%2041%203h44v-7c0-6%200-7-2-7v-1c2%200%202-2%202-32l-1-37c0-4%200-4-5-2v-2c0-2%201-2%203-1h3v-37a335%20335%200%2000-1-35c0%202%200%202-2%202l-10-4-14-4c-2-1-6-2-7-1l-7-2-12-3-8-3c0-2-4-2-12-2h-15c-1%201-7%200-10-1-1-1-1-1%203-1h4l-5-1-9-1-23-1c-1-1-1-1%203-1h4l4-1%204-1h13c1%201%2011%203%2017%203l8%201c1%202%203%202%204%202v-3l-1-1c-2%201-10-1-13-3l-10-2-16-2c-12-2-52-2-44-1%203%201%206%202%207%201l2%201c1%201-1%201-6%201-9%200-17-1-16-2s1-1-1-1h-1a3424%203424%200%2001-68-3m86%2021c-10%203-5%208%206%207%206-1%207%201%201%202l-5%201-5%201-6%201c-2%201-3%201-3-1-1-1%200-2%201-2%203%200-1-3-6-5-4-2-4-2-6%200l-1%202%201%202-2-1-5-1h-4l5-1h4l-10-1c2%201-3%203-8%202-6%200-8-1-4-1h3l-3-1c-2-1-2-1%201-1l3%201h7c1-2-1-2-14-2l-14-1c-1-1-3%200-2%201l-5%201h-3v1c-2%200-2%200-2%202%201%201%201%201-1%201l-6-1h-5l5-1c6-1%208-2%204-2l-2-1c0-2-1-2-3-2-3%200-3%200-2%201%203%202%201%203-5%203l-7%201-11%203c-10%202-10%202-9%204l-1%201h-3l-21%203c-3%200-4%200-3%201v3h-4c-1-1-1-1%201-2%203-1%200-2-3-1-3%200-7%204-6%205l6%201c4%200%207%201%203%201l-2%201-6%203-6%203v1c-1%201%201%201%203%201%205-1%205-1%204%201v1l1-1%201-1%201-1-1-2h-2c-1-1-1-1%201-1h6c4-1%205-3%202-3-2-1-2-1%201-1l4%201h2l3-2h1c1-1%206%200%208%202l8%201%204-1-2-1c0-1%202-2%2010-2h3v2c2%200%204-3%203-3-2-2-1-3%202-2h4l3%201-1%201c-2%200-4%203-2%203h8c3-2%202-3%200-3l-4-2c-1-2-1-2%203-2a3839%203839%200%200018-4h15l4%201h4v1l3%201c6%201%207%200%207-2s1-3%203-1l3%201c10-2%2016-2%2016%202l-1%201h-1l-2%201c-1-1-5%202-4%203l7%201c0-2%203-1%205%201%202%201%202%201%203-1%203-2%207-2%207%200l1%201%201-1c-1-1%200-1%201-1l6-1v-2l6-1c7%200%2010%200%206-2l-3-1h-1l-4%201-4%201-1%201h-1c0%204-5%202-6-1%200-3%201-5%204-5l1-1%2033%201%2016%201c3%200%202-2-2-3s-4-1-2-2c3%200%202-2-2-2l-3-1v-1l-2%201c-1%201-8%200-8-1l2-1h1l-2-1c-1-1-2%200-2%201l-3%201-3-1c1-1-4-2-7-2-5%200%200%203%206%204%208%200%209%202%202%201-4%200-5%200-3%201v2c-3%201-11-1-12-3l-6-1-6-1c-2-1-2-1%202-2l9-1h6c-1-1-14-2-18-1m116%200l-2%202c1%201%2015%203%2017%202l3%201c1%202%2012%205%2014%205l-1-2c-2-2-8-4-11-3v-1c3-2-15-6-20-4m-54%2013c-4%200-6%202-3%202l2%201%205%201a244%20244%200%200110%201h1c-2%201%203%204%207%204%203%200%205%201%204%202l5%201c4%200%205%200%204%201v1l4%201v-2c2%201%204-2%203-4l-1%201c0%202-6%201-10-2l-4-1-2-1-3-1c-1%200-2%200-1%201l-2%201c-2%200-3-2%200-2l-2-1-8-3-5-2-4%201m54%204l4%202%204%201c1%201%203%202%204%201l1%201c0%201%201%202%203%202%202%201%203%205%200%204l-4-1-1%202%202%204c0%203%201%204%207%204%203%200%202%203%200%204s-2%201%202%202c6%202%208%202%207%200v-1l1%201%202%201c3-1%203-2%201-3l-7-3-6-3-1-1c0-1%201-2%205-2%205%201%207-2%202-3-5%200-2-2%204-2l5-1c0-1-2-2-7-3l-12-4c-9-3-18-4-16-2m-82%201l3%201%203%202h2l1-1v1l2%201h3a152%20152%200%200028%203c-3%200%204%203%209%203l5%202c2%201%202%201%202-1s-2-3-3-3l-13-3c-4%200-13-2-14-4-1-1-1-1-1%201-1%202-4%203-4%201a326%20326%200%2001-23-3m37%2029c0%202-1%203-2%203v3l2%201c3-2%2011-3%2021-2h10l-6-1a347%20347%200%2000-25-4M87%20130l-1%202c0%202%200%202%201%201l2-1%203%201%202%201c-1%201%200%201%200%200l4%201v2l1%202%203%203v1h2l1-1c2-3%202-3%200-5-3-3-3-5%200-4%203%202%204%201%201-1-2-2-4-2-11-2h-8m49%203c-1%205-1%205-5%205-2%200-4%202-4%203h5l2%201h3c-1-1%200-2%201-2v-2l1-1%201%203%201%203c1%201-4%202-8%201l-4%201-3%202c-3%201-2%203%201%202l6%201h3l1-1h1c2%202%203%201%202-1l2-1c2%201%203%200%204-1h3l2-1%201-2v-1h-2c-2%202-3%203-3%201l-2-3c-3-1-4-2-3-3%200-1%200-2-2-2l-3-1-1-1m-87%204c-4%202-5%202-7%201l-5-1c-3%200-6%203-4%203l1%201c-1%201%200%201%201%201%203%200%205%201%203%202l-1%203c0%203%200%203%203%202l5%201%202%201%202%203c4%204%204%204-2%204-4%200-6-1-7-2h-1l-2%201c-2-1-2-1-1%201h-3l-4%201%202%201h3l-3%202c-3%202-3%203%200%203l2-1%202-2%202-2%202-1c1%200%204%204%203%205l-6%202c-6%201-9%204-7%207h5c0-2%204-1%204%201%201%201%201%201%201-1%200-1%200-2%201-1l1-1h1c2%201%202%201%202-1h1c0%202%202%203%202%201h1l2%201%201-1v-2c-2%200-2-1%200-2l2-1h2c2-2%205-3%203-1-1%202%200%203%201%202s2-2%201-3l1-1h4l7-2h5l-2%201c-1%201%201%201%203%201%204-1%205%200%205%201v1c2-1%202%200%202%201l2%202h10l-2-2c-2%200-5-5-4-6l-1-3v-4l2-1h2l4-1c3%200%203-4-2-7-4-3-7-3-5-1l-1%201-2-1-1-2-1%202%202%201v2c-2%201-2%202-1%202v3h-2c-3%200-7%201-11%205l-5%203h-8c2-1-1-5-7-8l-3-4c0-2%200-2%202-1l2%202c1%200%201-1-1-2l-2-3c1-2%203-3%203-1h1l4-1%204-1c2%200%201-2-1-3l-2-2c1-2-8-1-12%202m34%200l-2%203c-1%202-3%202-7%201-2-1-7%201-6%203l-1%202c-3%202-2%203%201%203l3-1h3l2-1-1-1-1-1c1-3%208%200%208%203l2%201c1%200%201-3-1-4-1%200-1-1%201-3l1-2%201-2v-1h-3m82%203l-5%203-4%202%201%201h8c7%202%208%203%205%205-2%201-2%202-1%202%202-1%204%201%201%202l-2-1c-1-1-1-1-2%201l-2%201-1%201%201%201v2c-2%204-2%205%200%203l1-1%202%202v2c-3%200-4%200-4%202l-2%202v1c3%202%204%201%203-1%200-3%200-3%204-2l6%202c3%201%206%200%205-2-1-1%200-2%201-3h1c0%202%200%202%202%201%202-2%203-2%201%200-3%204%204%206%2014%205%204%200%204%200%204%202l2%204v2l-1-1h-4c-4%200-7%202-5%203l1-1c0-2%205-1%206%201h2l2%201-1%203h-3c-1%201%201%202%203%201l1%201%203%204%203%202h-3l-5-1c-1-1-2-1-1%201%200%201%201%202%206%202%206%200%2011%201%2011%203h1v1l1%201c1-1%202%200%202%201%201%202%200%203-2%201-1-1-1-1-1%201l-1%202-4%201c-1%200-2%200-3-2%200-2%200-2-2%200h-1c0-1-2-1-3%201l-1-1h-4l-1%201%203%202%203%202%203%201%205%201c3%201%203%201%204-1%202-2%202-1%201%202v2h3l1-3v-2c1%200%203%205%202%207l1%202%203-3h3l2-1%201-1v2c0%202%202%201%203-1%202-3%201-3-2-3-3%201-3%201-1-1%202-1%203-3%201-2l-2-1-1-1c-2%200-3%200-3-3%200-2%200-2%201-1h5l1-1c1%200%204-1%203-2%200-2%204-7%205-5%201%200%201%201-1%202l-2%203%203-1h3l3-1c3-1%207%201%206%202l1%201c1%200%202-3%201-4l2-1c2%200%204%204%201%205-2%201-1%203%201%205s5%201%205-2h1l1%203v2c2%201%202%203%201%204v1l1%201h-5c-1%201%200%202%202%203l4%204c0%203%200%203%201%202%201-2%201-6-1-9l1-2%201%202c0%201%201%201%204-1l3-3h-6l2-1%202-2%202-2c2-2%201-3-3-3l-3-2-3-2c-2%201-5-2-6-5%200-3%202-3%203%200%200%202%201%202%203%201%203%200%203%200%202%201-2%201%200%203%203%203l3%201c1%202%204%202%204%200a1669%201669%200%20012-2c0%203%200%203%201%202%201-2%203-2%204-2h1v-8l1-2h-1l-3%201-4%201-2-1-2-1h-3l1%201v1c0%201-3-1-3-3l-1-1h-2c-1-1-4-1-7%201-2%200-2%200-1-1h-12l5%202c7%202%2010%205%203%203l-5-2h-1l-4-1-4-1-3-3-5-3c-3%200-2-2%202-4%205-2%205-3%201-4l-4-1-1%202%201%201c2-1%201%201-1%202h-3l-3-2h-4c-1%201-2%200-4-1l-4-2c-2%200-2%200-1%202l1%201-2%201-1%201-2%202h1c0-2%202-1%202%201l1%201h1l1%201v-6h3c0%202%201%203%205%204%202%200%202%200%201-1v-2l2%201h1l1%202c-1%201%200%202%202%203l3%202h-3c-3%201-5%200-6-2-2-2-4-2-6%200s-1%204%201%206c3%204%200%2011-4%208v-2l1-1h-1l-1-1-2-1c-4%200-5-1-3-4%202-1%203-2%204-1h1v-1c-1-1-2-2-1-3h-2c-2%201-2%201-2-1h-1l-3%202-2%201h-2v-2c0-2%200-2%202-2s6-6%205-7-1-1%201-1c3%200%200-2-3-3l-3-1h-3c-2-2-1-3%201-2v-2c-2-3-7-6-7-4%201%203-2%205-4%203l-9-1c-5-1-7-1-8-3s-1-2%201-2l-1-1c-2-1-2-2-2-5%200-1%200-2-1-1l-2%201v-3h8l-4-2-7-4c-3-3-4-4-6-2m128%2035l-8%201c-8%201-10%201-9%203l4-1h3c2%202%209%204%209%201%200-1%209-1%2011%201h5c2%200%203%200%202%201l1%201h2l2%201%201%201v1l2-1c0-1%201-2%204-2h3c0-2-5-3-11-3-4%200-5-1-3-1l2-1h-5l-2-1h-8l-2-1h-3m46%205v1l2%201-6%202v1c1%201%201%201-1%201h-1l-1%203c-3%202-4%203-3%200h-1c-2%202-4%203-4%201l-1-2-1%201c1%201-1%207-2%207l-1-1v-2l-2%202-1%202v-1c1-2-1-3-3-1h-3c-1%200%201-2%203-2%204-1%201-3-3-4-6-1-8%200-6%202v8l2-3%201-3v2c0%203%202%205%202%203h2v2l-1%202h1l2-1%201-1c-1-1%200-1%201-1l2%201v2c0%202%205-4%205-6s0-2%201-1%201%201%201-1c0-1%200-2%201-1h3l2-1h1l4-1h1c0-3%203-7%205-7v2c-2%201-3%206-1%206l1-3%201-2%201-2%201-2%201-1-1-1-2-1h-3m-178%201l-1%203%201%201h1v1c1-1%202%201%203%205%200%203-1%204-4%202-2-2-7-2-12%200h-5v6c-1%200-1%201%201%202%201%201%201%201-1%201-2%201-2%201-2-3-1-5-4-8-4-4%200%202-3%203-4%201h-1c0%202-2%201-2-1h-1l-1%202v-2h-1c-1%202-2-2-1-5h1c0%202%207-1%208-4l1-1%201-1c0-2-5-1-7%201s-3%202-5%202h-3l1%201v4c0%203%200%203-2%202-2%200-3%201-1%203v5h1l2-3v-1%208c-2%202-2%204%200%205l1-1%202-1%202-3%201-2h1c1-2%204-1%203%201l1%201%202%201-1%201h-1l-2%201v3h4l3-2%202-2%201-1c0-2%200-2%202-1s2%201%201%203c-3%202-3%206-1%208l3%201c0-1%201-2%203-2l3-4c0-3%205-7%206-4h1v-3l-2-1c0-1%201-2%203-1%203%200%204-1%203-5h4l3%202c1-1-1-5-3-6l-1-1%201-2c0-1%200-2-1-1v-3l1-3-2%202-1%201-1-2v-2c0-2%200-2-1-1-2%201-2%201-2-1h-1m-136%202c-4%203-13%2011-11%2011l2-1c0-1%201-1%201%201%201%201%201%201%201-1l2-2%201-3%201-1v3c0%202%200%202%202%201h2l-2%201v1c1%202%203%201%206-2l6-3h2l-2-2-2-3-1-1c-4-1-5-1-8%201m164%203l-5%202-3%203v1l-1-1h-2l-2%202v1h1l1%201h4c1%202%205%203%207%202%203%200%203-2%200-3s-4-4-3-5c1-2%205-1%206%201%202%202%202%203%200%203v1l2%201v1l2%201h2c1-1%201-1-1-2l-2-2h2c2%200%202%200%201-1-2%200-4-3-3-4l2%202%203%201c1-1-3-4-6-4l-3-1h-2m-82%208l1%201-1%202c-1%201-1%200-1-1%200-2%200-2-1-1-2%202-1%204%200%203l1%201-2%201c-1-1-1%200-1%202l-2%203-3%202-2%202c-1-1-2%200-2%201-1%202%200%202%201%202h2l-1%201-1%203%201%202c1%200%202-1%201-3%200-2%200-2%201-1l2%203%202%201%202-1v-2l1-3%201-2a57%2057%200%20013-12c0-2%202-3%205-2%202%200%202%200%201-1s-7-2-8-1m71%208c2%201-1%203-2%202l-3%202c-1%202-2%202-2%201%201-1%200-2-1-2-2-1-3%204-1%206l1-1v-2l1%203%201%202%201%202c-1%201-1%201%201%201l3-1v-3l2%201c0%202%203%201%204-1%201-5%201-8-1-9l-2-1-2-1v1'%20fill='%23FFC600'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.7391304347826086,"src":"/static/b30d7eec74a39ba8807c9f92121f4a6e/f422e/featured-image.jpg","srcSet":"/static/b30d7eec74a39ba8807c9f92121f4a6e/e75b5/featured-image.jpg 160w,\n/static/b30d7eec74a39ba8807c9f92121f4a6e/c01e2/featured-image.jpg 320w,\n/static/b30d7eec74a39ba8807c9f92121f4a6e/f422e/featured-image.jpg 640w","srcWebp":"/static/b30d7eec74a39ba8807c9f92121f4a6e/991d2/featured-image.webp","srcSetWebp":"/static/b30d7eec74a39ba8807c9f92121f4a6e/578e8/featured-image.webp 160w,\n/static/b30d7eec74a39ba8807c9f92121f4a6e/8dbf3/featured-image.webp 320w,\n/static/b30d7eec74a39ba8807c9f92121f4a6e/991d2/featured-image.webp 640w","sizes":"(max-width: 640px) 100vw, 640px"}}}},"excerpt":"I was learning  how to publish a node app ,  GitHub Traffic View (source on  GitHub ), which requires a GitHub API key to be passed to…","fields":{"year":"2017","slug":"/blog/2017/09/09/passing-api-key-heroku-node-application/"}}},"pageContext":{"id":"2c97f1a4-ddf4-500a-9b57-ee313de79416"}},"staticQueryHashes":["398935099"]}