Config Suite
DrupalのConfiguration管理システムを改善するモジュールセットで、Site UUIDチェックを削除し、自動インポート/エクスポート機能を提供します。
config_suite
インストール
composer require 'drupal/config_suite:^2.0'
概要
Config Suiteは、DrupalコアのConfiguration管理システムを強化し、バージョン管理ワークフローでConfigurationをより簡単に扱えるようにします。このモジュールは、異なるDrupalサイト間でConfigurationを共有または再利用する際の一般的な問題点に対処します。
主な機能として、Configurationインポート時のSite UUID検証を削除します。通常、この検証により異なるDrupalインストールからのConfigurationインポートが阻止されます。これにより「Site UUID in source storage does not match the target storage」エラーが解消され、同じサイトの異なるコピーで作業する開発者が回避策なしでConfigurationを共有できるようになります。
さらに、Config Suiteは自動化機能を提供し、フォームが保存されるたびにConfiguration変更をsyncフォルダに自動エクスポートしたり、管理者がサイトにアクセスした際に保留中のConfiguration変更を自動インポートしたりできます。これらの機能により、開発環境でのConfigurationワークフローが効率化されます。
Features
- Configurationインポート時のSite UUID検証をバイパスし、異なるDrupalインストール間でConfigurationを共有可能
- Configuration関連フォームが保存されるたびにsyncフォルダへ自動エクスポート
- 管理者がサイトにアクセスし、syncフォルダが更新されている場合に自動インポート
- モジュールインストール時にすべてのアクティブなConfigurationをsyncフォルダにエクスポート
- 包括的なConfiguration同期のためのConfiguration collectionをサポート
Use Cases
複数開発者のチームワークフロー
複数の開発者が別々のローカルインストールで同じDrupalプロジェクトに取り組む場合、各サイトは異なるUUIDを持ちます。Config Suiteがなければ、同僚の作業からConfigurationをインポートするとUUID不一致エラーで失敗します。Config Suiteにより、開発者はUUID競合なしでバージョン管理を通じてConfigurationファイルを自由に共有できます。
サイトの移行またはクローン
既存サイトのConfigurationに基づいて新しいサイトを作成する場合、または異なるUUIDを持つステージング/本番環境間でConfigurationを移行する場合、Config Suiteを使用すると手動でのUUID操作や回避策なしでConfigurationをインポートできます。
自動化された開発ワークフロー
自動インポートとエクスポートの両方を有効にして、シームレスな開発体験を実現します。UIを通じてConfiguration変更を行うと、すぐにバージョン管理にコミットできるようsyncフォルダに自動的に書き込まれます。同僚のConfiguration変更をリポジトリからプルすると、次のページ読み込み時に自動的に適用されます。
プロジェクト間でのConfiguration再利用
UUIDに関係なく任意のDrupalサイトに適用できる再利用可能なConfigurationスニペットを作成します。これは、複数のクライアントサイトで類似のConfigurationを管理する代理店や開発者にとって特に有用です。
Tips
- Config Suiteは開発中に特に有用ですが、Configuration変更をより厳密に管理すべき本番環境では自動機能を無効にすることを検討してください。
- セキュリティ上の理由から、自動インポート機能はadministratorロールを持つユーザーに対してのみ実行されます。
- モジュールインストール時に、すべてのアクティブなConfigurationがsyncフォルダにエクスポートされ、完全なConfigurationベースラインから開始できます。
- Config Suiteのビデオ紹介がBadCampから提供されています:https://www.youtube.com/watch?time_continue=112&v=02IJGgGPBAw
Technical Details
Admin Pages 1
/admin/config/config_suite/admin_settings
Config Suiteの自動Configurationインポートとエクスポート設定を構成します。このページでは、アクティブストレージとsyncフォルダ間のConfiguration自動同期を有効または無効にできます。
権限 1
Hooks 2
hook_install
モジュールインストール時にすべてのアクティブなConfigurationをsyncフォルダにエクスポートし、syncフォルダに現在のConfigurationがすぐに格納されることを保証します。
hook_help
ヘルプページでモジュールのヘルプテキストを提供します。
Troubleshooting 3
自動インポート設定が有効になっていること、およびログインしているユーザーが「administrator」ロールを持っていることを確認してください。自動インポートはadministratorユーザーに対してのみ実行されます。
Config Suite設定で自動エクスポートが有効になっていることを確認してください。また、syncフォルダがWebサーバーから書き込み可能であることも確認してください。
これらの警告は、Configuration collectionに保存されている特定のConfiguration項目が含まれていない場合にログに表示されることがあります。これは通常無害で、その特定のcollectionにConfigurationが存在しないことを示しています。
Security Notes 3
- 自動インポート機能はadministratorロールを持つユーザーに対してのみ実行され、不正なConfiguration変更を防止します。
- このモジュールはDrupalコアのセキュリティ機能であるSite UUIDチェックをバイパスします。開発には便利ですが、これは異なるサイト間での偶発的なConfiguration上書きを防ぐために設計されたセーフガードを削除することを理解してください。
- 攻撃者がsyncフォルダへの書き込みアクセスを取得した場合に自動Configurationインポートが悪用される可能性があるため、本番サイトでこのモジュールを有効にする前にセキュリティへの影響を考慮してください。