.env と .env.example のキー差分ツール
ガイド
.env と .env.example のキー差分ツール
実際の .env ファイルとテンプレートの間のズレは、破損したデプロイの最も静かな原因の一つです。開発中にキーが追加され、プロダクションにコピーされ、テンプレートに忘れ去られます。実際のシークレットが入るべき場所にプレースホルダー値が残ります。 .env.example このツールは両ファイルを並べて表示し、欠落、追加、または不一致のカテゴリごとのレポートを提供することで、デプロイ前に構成のズレを確認できます。 .env すべてのパースはブラウザ内で行われます。あなたが貼り付けるすべての内容があなたのデバイスから離れることなく、オンスクリーンレポートおよびエクスポートファイルのすべての値をマスクする選択肢がありますので、スクリーンショットや共有レポートがシークレットを漏らしません。
あなたの
使用方法
- テンプレートの内容を左の入力欄に貼り付けます。
.env.exampleあなたの実際の - ファイルの内容を右の入力欄に貼り付けます。
.env必要に応じてオプションを調整します。実際のシークレットを扱う場合は - を維持してください。 値のマスキング トップにある要約チップを確認してください:一致、欠落、追加、および値の不一致。
- 各カテゴリセクションをスキャンして、どのキーがどのバケットに属しているかを正確に確認します。
- エクスポート可能なレポートを共有またはデプロイチェックリストに添付します。
- クリック コピー または ダウンロード カテゴリ別差分
機能
- – 欠落、追加、不一致、および一致したキーを別々にリスト化。 値の比較
- – 例値が設定されているが、実際の値と異なるキーをフラグで識別。 感度を考慮したスイッチ
- – を同じキーとして扱うようにオフにします。 値のマスク
DB_HOSTとdb_host– レポートに実際のシークレットを隠すことで、スクリーンショットやエクスポートが安全になります。 - エッジケースに配慮したパーサー – コメント、空白行、引用された値、および
- プレフィックスを処理します。 レポートをコピーまたはダウンロード
export– PRコメント、デプロイ手順書、またはインシデント記録に使えるテキストレポート。 - – 値はどこにも送信されません。 このツールを使うべきタイミング
- クライアントサイドのみ 新しい開発者をオンボーディングし、その開発者のローカル
が現在のテンプレートと一致しているか確認します。
- リリースを準備し、プロダクション構成がすべての必須変数をカバーしているか確認します。
.env機能が静かに失敗する原因として、必須キーが環境に追加されていない場合をデバッグします。 - 古くからのサービスを監査し、
- が現実とずれている場合を確認します。
- .envファイルと.env.exampleファイルの違いは何ですか?
.env.example.envファイルはアプリケーションが使用する実際の環境変数値(データベースパスワード、APIキー、シークレット)を含み、通常はバージョン管理に無視されます。.env.exampleファイルは、すべての必要な環境変数をプレースホルダーまたは空の値でリストアップしたテンプレートで、リポジトリにコミットされ、新しい開発者が設定が必要な変数を確認できるようにします。実際のシークレットを暴露しないようにします。
よくある質問
-
環境変数はいつでもリポジトリにコミットすべきですか?
環境変数はデータベース認証、APIキー、プライベート暗号鍵、セッションシークレットなどのシークレットを保持する場合があります。コミットされた場合、これらはGitの履歴に永遠に暴露され、公開リポジトリをインデックスするボットによってスキャンされます。プライベートリポジトリでも、読み取りアクセスを持つ誰もがプロダクションシークレットにアクセスできるため、攻撃面が広がります。受け入れられている慣例は、実際の値をバージョン管理から外し、.env.exampleのようなスニファードテンプレートを共有することです。
-
.envファイルはアプリケーションによってどのようにパースされますか?
ほとんどの.envパーサーはファイルを1行ずつ読み取り、空白行や'#'で始まる行をスキップし、残りの行を最初の'='で分割してキーと値を生成します。値は引用符で囲まれることでスペースや特別な文字を保持できます。多くのパーサーはオプションの'export 'プレフィックスをシェルの互換性のためにもたらします。コメントが値の後ろに続く、重複キー、および文字コードはライブラリによって異なるエッジケースです。
-
実行時に必須環境変数が欠落した場合に何が起こりますか?
アプリケーションの動作に依存します。設計がしっかりしているアプリケーションは起動時に必須環境変数を検証し、明確なエラーで失敗します。設計が不十分なコードパスは、定義されていない変数を空文字列として読み取り、機能を無効化したり、認証を回避したり、あるいは呼び出しスタックの深い場所で関連ないエラーを引き起こす可能性があります。デプロイ前に実際の.envを.env.exampleと比較することは、プロダクションに到達する前に欠落した構成を検出するための安価な方法です。
-
.env.example(テンプレート)の内容をここに貼り付けます...
実際の.envの内容をここに貼り付けます...
