Fessでクロール設定を新規作成するとき、既存の設定と似た内容で作りたいことがあります。これまでは手動で各項目を入力し直す必要がありましたが、既存の設定を複製して新しい設定を作成できる機能を追加しました。
背景
Fessでは、Webクロール、ファイルクロール、データストアクロールの3種類のクロール設定を管理できます。運用中に新しいクロール対象を追加する際、既存の設定とほぼ同じ内容(クロール間隔、認証情報、パーミッションなど)で、URLやパスだけを変えたいケースはよくあります。
従来は新規作成画面を開いて一つずつ設定項目を入力する必要がありましたが、設定項目が多いため手間がかかり、設定ミスの原因にもなっていました。
複製機能の使い方
管理画面で複製したいクロール設定の詳細画面を開くと、フッター部分に「Duplicate」ボタンが追加されています。このボタンをクリックすると、既存の設定内容がコピーされた状態で新規作成画面が開きます。
名前(Name)フィールドだけは空欄になるので、新しい設定名を入力して保存します。それ以外の項目(URL、クロール深度、間隔、パーミッションなど)はすべて元の設定からコピーされます。
この機能は以下の3つのクロール設定すべてで利用できます。
- Webクロール設定(Web Config)
- ファイルクロール設定(File Config)
- データストアクロール設定(Data Config)
技術的な仕組み
各クロール設定のAdminActionクラスにduplicate(String id)メソッドを追加しています。このメソッドは既存のcreatenew()パターンをベースに、指定されたIDの設定エンティティを読み込み、CreateFormにフィールド値をコピーします。
コピー時には、作成者や作成日時などの監査フィールド(createdBy、createdTimeなど)は除外されるため、複製先の設定に元の監査情報が引き継がれることはありません。また、パーミッションやバーチャルホストは適切にデコードされた状態でフォームにセットされます。
セキュリティ面では、既存のアクション同様に@Securedアノテーションによるロールベースのアクセス制御と、saveToken()によるCSRF対策が適用されています。
まとめ
クロール設定の複製機能により、似た設定を効率的に作成できるようになりました。特に多数のクロール対象を管理している環境では、設定作業の手間を大幅に削減できます。