Environment Indicator
現在表示している環境(開発、ステージング、本番など)を示す視覚的なインジケーターを追加します。
environment_indicator
インストール
composer require 'drupal/environment_indicator:^4.0'
概要
Environment Indicatorは、サイトインターフェース全体に視覚的なインジケーターを追加することで、開発者やサイト管理者が現在作業している環境を常に把握できるようにします。これは、開発環境、ステージング環境、本番環境など、サイトの複数のコピーを管理する際に特に便利です。
このモジュールは、環境名とオプションのリリースバージョン情報を含むカラーバーをページ上部に表示します。また、Drupalの管理ツールバーの背景色を変更したり、サイトのファビコンにカラーオーバーレイを追加したりすることもできます。これらの視覚的インジケーターにより、現在の環境が一目で分かるため、本番サイトへの誤った変更を防ぐのに役立ちます。
Environment Indicatorには、環境スイッチャー機能も備わっており、ユーザーは異なる環境(例:ステージングから本番へ)の同じページにすばやく移動できます。各環境の色とURLは、切り替え先として設定できます。
設定は通常settings.local.phpで行われ、各環境がデータベースに環境固有の設定を保存することなく、独自のカラースキームを持つことができます。これはDrupalの環境固有設定のベストプラクティスに従っています。
Features
- 環境名を表示するカラーインジケーターバーをページ上部に表示
- ツールバーの背景色とテキスト色を環境に合わせて変更(Toolbar Integrationサブモジュールが必要)
- Tinyconライブラリを使用してサイトのファビコンにカラーオーバーレイを追加
- 複数のソース(Environment Indicator state、Deployment Identifier、またはDrupalバージョン)からバージョン/リリース識別子を表示
- 異なる環境の同じページにすばやく移動できる環境スイッチャー機能
- 各環境の前景色と背景色を設定可能
- 個別の環境インジケーターに対する動的なパーミッション
- 水平および垂直ツールバーモードを含むGin管理テーマとの完全な統合
- バージョン管理外の環境固有設定のためのsettings.local.phpでの設定
Use Cases
マルチ環境開発ワークフロー
開発、ステージング、本番環境で作業する際、それぞれを「信号機」の色で区別して設定します:開発環境は緑(変更は安全)、ステージング環境は黄(注意して作業)、本番環境は赤(非常に注意が必要)。この視覚的なシステムにより、開発者は表示している環境を即座に認識でき、本番環境への誤った変更を防ぎます。
環境の素早い切り替え
すべての環境に対して環境スイッチャーエンティティを設定します。ステージングでコンテンツを表示中に本番環境で同じページを確認する必要がある場合、環境インジケーターをクリックしてスイッチャーメニューを表示し、ターゲット環境の同じパスに直接ジャンプできます。
リリースバージョン追跡
Drushを使用してインジケーターに現在のデプロイメントバージョンを表示します:drush state:set environment_indicator.current_release v1.2.44。これにより、チームメンバーはサーバーファイルやデプロイメントログを確認することなく、各環境にデプロイされているバージョンを確認できます。
クライアントプレゼンテーションモード
Environment Indicator UIサブモジュールを使用して、管理インターフェースを通じて環境設定を構成します。これは、PHPファイルへのアクセスを必要とせずに、クライアントに明確な「Staging」インジケーターを表示したいステージング環境でプレゼンテーションする際に便利です。
Tips
- 複数の環境が同時に開いている場合、異なる色のファビコンオーバーレイを使用してブラウザタブを区別できます
- デプロイメントスクリプトで現在のリリースを設定: drush state:set environment_indicator.current_release $GIT_TAG
- すべての環境が互いに切り替えられるように、設定管理を通じて環境スイッチャーエンティティをエクスポートします
- アクセシビリティのために、前景色と背景色に十分なコントラスト比があることを確認してください(WCAG 2.0 AAは通常テキストに対して4.5:1を要求)
- settings.local.phpを直接編集できない環境ではUIサブモジュールの使用を検討してください
Technical Details
Admin Pages 4
/admin/config/development/environment-indicator
ファビコンオーバーレイやバージョン識別子のソースなど、Environment Indicatorモジュールのグローバル設定を構成します。
/admin/config/development/environment-indicator/switcher
環境スイッチャーの切り替え先を管理します。切り替えたい各環境のエントリを作成します。各環境には独自の名前、URL、カラースキームを設定できます。
/admin/config/development/environment-indicator/switcher/add
別の環境にジャンプできるように、新しい環境スイッチャーエントリを作成します。
/admin/config/development/environment-indicator/current
settings.local.phpではなく管理UIを通じて現在の環境の表示設定を構成します。Environment Indicator UIサブモジュールによって提供されます。
権限 4
Troubleshooting 5
ユーザーが「See all environment indicators」パーミッションを持っていることを確認してください。environment_indicator.indicator設定にsettings.local.phpまたはUIサブモジュールで「name」値が設定されているか確認してください。
settings.phpの末尾にあるinclude行のコメントを解除して、settings.local.phpが読み込まれていることを確認してください。php -l settings.local.phpでPHP構文エラーを確認してください。
Environment Indicator - Toolbar Integrationサブモジュール(environment_indicator_toolbar)を有効にしてください。メインモジュールはカラーバーのみを表示し、ツールバー統合には別のサブモジュールが必要です。
ユーザーロールに「View environment indicator current release」パーミッションを付与してください。バージョン識別子のソースが設定で正しく設定されていること、およびソースに値があること(例:Drushで設定したstate、settings.phpのdeployment_identifierなど)を確認してください。
モジュール設定で「Show favicon」が有効になっていることを確認してください。ブラウザの開発者ツールでTinyconライブラリが正しく読み込まれているか確認してください。一部のブラウザはファビコンの変更をブロックする場合があります。
Security Notes 3
- 内部環境URLに関する情報漏洩を防ぐため、環境スイッチャーのURLはHTTPSを使用する必要があります
- 匿名の訪問者に環境情報を明らかにしないよう、「See all environment indicators」パーミッションを認証済みユーザーのみに制限することを検討してください
- 「administer environment indicator settings」パーミッションは完全な設定アクセスを許可するため、信頼できる管理者に制限する必要があります