configuration-management について
環境変数、設定ファイル、シークレット、フィーチャーフラグ、検証、12-Factorの実践を扱う、アプリケーション設定管理のガイドです。
主な機能
- 01環境別の設定管理
- 02シークレットと認証情報の管理
- 03設定階層の構築
- 04フィーチャーフラグと動的設定
- 05設定検証と12-Factorの実践
活用シーン
- 01開発環境と本番環境の設定
- 02認証情報やシークレットの保護
- 03機能の段階的なリリース
- 04設定のクラウドサービスへの移行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill configuration-managementインストール後、Claude Code で/configuration-managementを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/12-factor-app-configuration.mdconfiguration-hierarchies.mdconfiguration-validation.mddynamic-configuration-remote-config.mdenvironment-variables.mdfeature-flags.mdsecret-management.mdscripts/validate-schema.shtemplates/migration-template.sql詳細
設定管理
目次
概要
環境変数、設定ファイル、シークレット、機能フラグ、12-factor app の方法論に従うことなど、環境をまたいだアプリケーション設定の管理に関する包括的なガイドです。
使用する場面
- 異なる環境向けの設定を行う
- シークレットや認証情報を管理する
- 機能フラグを実装する
- 設定の階層構造を作成する
- 12-factor app の原則に従う
- 設定をクラウドサービスに移行する
- 動的な設定を実装する
- マルチテナントの設定を管理する
クイックスタート
最小限の動作例:
# .env.development
NODE_ENV=development
PORT=3000
DATABASE_URL=postgresql://localhost:5432/myapp_dev
REDIS_URL=redis://localhost:6379
LOG_LEVEL=debug
API_KEY=dev-api-key-12345
# .env.production
NODE_ENV=production
PORT=8080
DATABASE_URL=${DATABASE_URL} # From environment
REDIS_URL=${REDIS_URL}
LOG_LEVEL=info
API_KEY=${API_KEY} # From secret manager
# .env.test
NODE_ENV=test
DATABASE_URL=postgresql://localhost:5432/myapp_test
LOG_LEVEL=error
リファレンスガイド
references/ ディレクトリにある詳細な実装:
| ガイド | 内容 |
|---|---|
| 環境変数 | 環境変数 |
| 設定の階層構造 | 設定の階層構造 |
| シークレット管理 | シークレット管理 |
| 機能フラグ | 機能フラグ |
| 12-Factor App の設定 | 12-Factor App の設定 |
| 設定の検証 | 設定の検証 |
| 動的な設定(リモート設定) | 動的な設定(リモート設定) |
ベストプラクティス
✅ 推奨事項
- 設定を環境変数に保存する
- 環境ごとに異なる設定ファイルを使用する
- 起動時に設定を検証する
- 機密データにはシークレットマネージャーを使用する
- シークレットをバージョン管理に絶対にコミットしない
- 適切なデフォルト値を用意する
- すべての設定オプションを文書化する
- 型安全な設定オブジェクトを使用する
- 設定の階層構造(ベース設定+上書き設定)を実装する
- 段階的なロールアウトに機能フラグを使用する
- 12-factor app の原則に従う
- 設定がない場合に正常に縮退する仕組みを実装する
- API 呼び出しを減らすためにシークレットをキャッシュする
❌ 禁止事項
- 設定をソースコードにハードコードする
- 実際のシークレットを含む .env ファイルをコミットする
- サービス間で異なる設定形式を使用する
- シークレットを平文で保存する
- API を通じて設定を公開する
- 開発環境で本番環境の認証情報を使用する
- 設定の検証エラーを無視する
- あらゆる場所で process.env に直接アクセスする
- 設定をデータベースに保存する(循環依存)
- 設定とビジネスロジックを混在させる
コメント
Markdown 対応