プラグインクリーナー

:information_source: 概要 削除されたプラグインによって残された孤立したデータベースの残留物を、安全にスキャン、監査、およびクリーンアップします。
:hammer_and_wrench: リポジトリリンク GitHub - canbekcan/discourse-plugin-cleaner · GitHub
:open_book: インストールガイド Discourse でのプラグインのインストール方法
:computer: コーディング Vibe Coding - Gemini

![Screenshot 2026-03-29 at 04.57.52|690x404](upload://8sCSzrLcoN2qM3GO7zgz0Vz8f1w.png)

機能

Discourse プラグインをアンインストールすると、データベースに隠されたデータが残されることがよくあります。時間が経つにつれて、この「残留物」がデータベースを汚染し、サイトのメンテナンスを複雑にすることがあります。Discourse Plugin Cleaner は、これらの孤立したデータを安全に特定して削除するために設計された包括的な管理ツールです。

主な機能:

  • 詳細スキャン: カスタムフィールド(ユーザー、トピック、投稿、カテゴリ、グループ)、プラグイン設定、テーマ、バッジ、API キー、Webhook、タググループ、アップロードなど、複数のデータベーステーブルをスキャンします。
  • 安全な監査モード(自動削除なし): このプラグインは、ユーザーがアクションを取るまで厳密に監査ツールとして機能します。データを自動的に削除することはありません。削除したいアイテムを手動で選択して確認する必要があります。
  • リスク評価: 検出されたアイテムに「リスクレベル」(Critical、High、Medium、Low、OK)を自動的に割り当て、管理者が削除しても安全なものを判断できるよう支援します。
  • バージョン履歴の追跡: 起動時にインストールされているプラグインのスナップショットを取得します。プラグインが削除された場合、状態の変化をログに記録し、いつどのプラグインがアンインストールされたかという履歴を作成します。
  • モダンな管理インターフェース: Discourse 管理インターフェースとのシームレスな統合を実現するため、Ember strict-mode コンポーネントで構築された洗練された直感的なダッシュボードを提供します。

設定

このプラグインは、合理的なデフォルト値で即座に使用できます。プラグインを使用するには:

  1. ダッシュボードへのアクセス: Discourse 管理ダッシュボードに移動します。サイドバーのプラグインセクションで、Plugin Cleanerをクリックします。
  2. スキャンの実行: **「詳細スキャンを実行」**ボタンをクリックします。システムがデータベースを照会し、発見されたすべての孤立したデータに関するリアルタイムレポートを生成します。
  3. 問題の確認: カテゴリ別のタブ(カスタムフィールド、プラグイン設定など)を閲覧します。リスクおよびステータスカラムに注意深く注目してください。
  4. 選択とクリーンアップ: 削除したい孤立したアイテムの横にあるチェックボックスをオンにします。
  5. 削除の確認: **「選択項目を削除」**をクリックします。データが永久に消去される前に、最終的な確認警告が表示されます。すべての削除は、セキュリティ監査のために Discourse Staff Action Logs に自動的に記録されます。

(アップロードに関する注記: 孤立したアップロードが見つかった場合、このプラグインはサーバーコンソールから rake uploads:clean を実行してディスクスペースを物理的に回収するよう指示します。)

設定

サイト設定を通じて、スキャナの厳格さをカスタマイズできます。

名前 説明
plugin_cleaner_orphan_threshold カスタムフィールドが「孤立」と見なされるために保持できるレコード数の最大値。カスタムフィールドのレコード数がこの閾値未満の場合、レビュー対象としてフラグが立てられます。(デフォルト: 5、最小: 1、最大: 100
plugin_cleaner_stale_api_key_days スキャナが API キーを古く/孤立しているとフラグを立てる前に、使用されない日数。(デフォルト: 90 日、最小: 7、最大: 365
plugin_cleaner_stale_upload_days 孤立したと見なされる前に、リンクされていないアップロードが存在できる日数。(デフォルト: 30 日、最小: 1、最大: 365

(注: これは Discourse プラグインの仕組みを理解するためのプロジェクトです)

「いいね!」 2

多くの優れたプラグインは、独自のテーブルを作成・管理します。コードを確認しましたが、まだその点を考慮されていないのでしょうか?

課題は、プラグインを削除するとマイグレーションも消えてしまうことです。

「いいね!」 1