multi-env-injector
v1.1.1
Published
<div align="center"> <h1>ENV Injector</h1> </div>
Readme
概要
様々なリソースから process.env に環境変数を注入するユーティリティです。
現在、dotenv ファイルと KeePassXC のデータベースからの注入に対応しています。
インストール
npm install multi-env-injector使い方
injectEnv に注入元の設定の配列を渡すと、配列の先頭から順に process.env へ値が注入されます。
import {injectEnv} from "multi-env-injector";
injectEnv([
// 注入元の設定
{
kind: "dotenv",
path: ".env"
}
]);
// 以降 process.env から注入された値を参照できるようになる
console.log(process.env.SOME_KEY);複数の注入元を同時に指定できます。 この場合、配列の最初に指定された設定から順番に注入されていきます。
import {fromFile, injectEnv} from "multi-env-injector";
injectEnv([
{
kind: "dotenv",
path: ".env"
},
{
kind: "keepass",
path: "path/to/vault.kdbx",
group: "EnvInjector",
password: fromFile("path/to/password")
}
]);注入元の設定
dotenv からの注入
kind に "dotenv" を指定します。
| プロパティ | 内容 |
| --- | --- |
| path | 読み込む dotenv ファイルのパス |
injectEnv([
{
kind: "dotenv",
path: ".env"
}
]);KeePassXC からの注入
kind に "keepass" を指定します。
指定したグループ内の各エントリーについて、エントリー名を環境変数のキーに対してパスワードを値として注入します。
内部で keepassxc-cli コマンドを呼び出すため、あらかじめインストールしてパスを通しておく必要があります。
| プロパティ | 内容 |
| --- | --- |
| path | KeePassXC のデータベース (.kdbx) のパス |
| group | 環境変数として読み込むエントリーが属するグループ |
| password | データベースを開くためのマスターパスワード |
injectEnv([
{
kind: "keepass",
path: "path/to/vault.kdbx",
group: "EnvInjector",
password: "master-password"
}
]);値の解決方法 (fromEnv, fromFile)
各設定の多くの文字列プロパティには、リテラルの文字列だけでなく、他のリソースから値を解決する指定も渡せます。 マスターパスワードなどの秘匿情報をコード中に直接書きたくない場合に便利です。
fromEnv(key)— 環境変数keyの値を使います。fromFile(path, encoding?)— ファイルpathの中身を使います (encodingの既定値は"utf8")。
import {fromEnv, fromFile, injectEnv} from "multi-env-injector";
injectEnv([
{
kind: "keepass",
path: "path/to/vault.kdbx",
group: "EnvInjector",
// マスターパスワードをファイルから読み込む
password: fromFile("path/to/password")
},
{
kind: "dotenv",
// パスを環境変数から取得する
path: fromEnv("DOTENV_PATH")
}
]);