netlify-plugin-optimize-contextual-env

A Netlify plugin to override ENV vars based on a branch or context and removes replaced ENV

Usage no npm install needed!

<script type="module">
  import netlifyPluginOptimizeContextualEnv from 'https://cdn.skypack.dev/netlify-plugin-optimize-contextual-env';
</script>

README

netlify-plugin-contextual-env

This plugin swaps out ENV vars on Netlify at build time. Here's how it works:

Say you have an ENV in your API code called DATABASE_URL. If you use this plugin, you'll be able to override that value based on a Context or Branch name.

For example:

  • A staging branch, would automatically set DATABASE_URL to the value of STAGING_DATABASE_URL if it exists.
  • A production context would automatically set DATABASE_URL to the value of PRODUCTION_DATABASE_URL if it exists.
  • A deploy-preview context (used for Pull Requests) would automatically set DATABASE_URL to the value of DEPLOY_PREVIEW_DATABASE_URL if it exists.

This allows you to have per-environment or per-context environment variables, without exposing those variables in your netlify.toml config.

If you'd rather use a suffix rather than the default prefix configuration, pass suffix to the inputs below.

For the examples above, it would use the values DATABASE_URL_STAGING, DATABASE_URL_PRODUCTION, and DATABASE_URL_DEPLOY_PREVIEW respectively.

image

Usage

Add the plugin

Add a [[plugins]] entry to your netlify.toml file:

[[plugins]]
package = 'netlify-plugin-contextual-env'
  [plugins.inputs]
  mode = 'prefix'
name description default
mode The way to append the context or branch name (prefix or suffix) prefix