Limpia de plugins

:information_source: Resumen Escanea, audita y limpia de forma segura los residuos de bases de datos huérfanos dejados por plugins desinstalados.
:hammer_and_wrench: Enlace al Repositorio GitHub - canbekcan/discourse-plugin-cleaner · GitHub
:open_book: Guía de Instalación Cómo instalar plugins en Discourse
:computer: Codificación Vibe Coding - Gemini

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

Características

Cuando desinstalas un plugin de Discourse, a menudo deja datos ocultos en tu base de datos. Con el tiempo, estos “residuos” pueden saturar tu base de datos y complicar el mantenimiento del sitio. Discourse Plugin Cleaner es una herramienta administrativa integral diseñada para identificar y eliminar de forma segura estos datos huérfanos.

Las características principales incluyen:

  • Escaneo profundo: Escanea múltiples tablas de la base de datos, incluidos Campos personalizados (Usuario, Tema, Publicación, Categoría, Grupo), Configuración de plugins, Temas, Insignias, Claves de API, Webhooks, Grupos de etiquetas y Cargas.
  • Modo de auditoría seguro (Cero eliminación automática): El plugin funciona estrictamente como una herramienta de auditoría hasta que tomas medidas. Nunca eliminará datos automáticamente. Debes seleccionar y confirmar manualmente los elementos que deseas eliminar.
  • Evaluación de riesgos: Asigna automáticamente un “Nivel de riesgo” (Crítico, Alto, Medio, Bajo, OK) a los elementos detectados para ayudar a los administradores a tomar decisiones informadas sobre qué es seguro eliminar.
  • Seguimiento del historial de versiones: Toma instantáneas de tus plugins instalados al iniciar. Si se elimina un plugin, registra el cambio de estado, creando un registro histórico de qué se desinstaló y cuándo.
  • Interfaz de administración moderna: Proporciona un panel de control elegante e intuitivo construido con componentes en modo estricto de Ember para una integración perfecta en la interfaz de administración de Discourse.

Configuración

El plugin funciona de inmediato con configuraciones predeterminadas sensatas. Para usar el plugin:

  1. Accede al panel de control: Navega a tu panel de administración de Discourse. En la barra lateral, bajo la sección Plugins, haz clic en Plugin Cleaner.
  2. Ejecuta un escaneo: Haz clic en el botón “Ejecutar escaneo profundo”. El sistema consultará tu base de datos y generará un informe en tiempo real de todos los datos huérfanos que encuentre.
  3. Revisa los problemas: Navega por las pestañas categorizadas (Campos personalizados, Configuración de plugins, etc.). Presta mucha atención a las columnas Riesgo y Estado.
  4. Selecciona y limpia: Marca las casillas junto a los elementos huérfanos que deseas eliminar.
  5. Confirma la eliminación: Haz clic en “Eliminar seleccionados”. Se te pedirá una advertencia de confirmación final antes de que los datos se borren permanentemente. Todas las eliminaciones se registran automáticamente en los Registros de acciones del personal de Discourse para auditoría de seguridad.

(Nota para las cargas: Si se encuentran cargas huérfanas, el plugin te indicará que ejecutes rake uploads:clean desde la consola de tu servidor para recuperar físicamente el espacio en disco).

Configuraciones

Puedes personalizar la estrictitud del escáner a través de las configuraciones de tu sitio.

Nombre Descripción
plugin_cleaner_orphan_threshold El número máximo de registros que puede tener un campo personalizado para considerarse “huérfano”. Si un campo personalizado tiene menos registros que este umbral, se marcará para revisión. (Predeterminado: 5, Mín: 1, Máx: 100)
plugin_cleaner_stale_api_key_days El número de días que una clave de API debe estar sin usarse antes de que el escáner la marque como obsoleto/huérfana. (Predeterminado: 90 días, Mín: 7, Máx: 365)
plugin_cleaner_stale_upload_days El número de días que puede existir una carga sin vincular antes de que se marque como huérfana. (Predeterminado: 30 días, Mín: 1, Máx: 365)

(Nota: Este es el proyecto para entender cómo funcionan los plugins de Discourse)

2 Me gusta

Muchos buenos plugins crean y gestionan sus propias tablas. Al revisar su código, no estoy seguro de que haya tenido eso en cuenta aún.

Su desafío es que, una vez que elimina el plugin, la migración desaparece.

1 me gusta