El caso de uso es para la eliminación urgente de subidas como parte de flujos de trabajo de automatización con intervención humana utilizando activepieces, data explorer y la API.
El objetivo es permitir que los moderadores habituales tengan acceso a una forma sencilla de eliminar de forma segura y completa las subidas inmediatamente sin acceso SSH y cubrir exhaustivamente todos los casos conocidos de rotura de referencias de subidas, además de purgar automáticamente la CDN de las URL específicas (y para el caso de avatares proxificados, el prefijo de URL basado en el nombre de usuario).
Me sentí aliviado al ver en las pruebas que las referencias de avatares, fondos de perfil y fondos de tarjeta se manejan automáticamente cuando se destruye una subida.
https://github.com/discourse/discourse/commit/e1975e293f2625259e925b4a3c93d88d5acfcaa8
https://github.com/discourse/discourse/commit/38e7b1a0492dd4282c3cd3b1ddb2b3343661d31f
Los dos escenarios principales serían ‘tierra quemada’ y ‘eliminación quirúrgica’. Este es el trabajo en curso para tierra quemada:
Conversión a una lista de hashes de subidas:
-
URL de avatar (extraer nombre de usuario usando regex) → obtener hash de avatar mediante consulta de data explorer (el hash no está en la URL)
-
URL de tema/publicación → recopilar todos los hashes de subida utilizados en esa publicación usando data explorer
-
URL de subida original/optimizada directa (incluido el fondo de perfil y el fondo de tarjeta) → extraer hashes usando regex
Luego consultar cada hash para encontrar todas las ocurrencias (una consulta de data explorer para cubrir todos los casos, un hash a la vez):
-
lista de nombre de usuario/ID, para usuarios que lo usaron como avatar
-
lista de nombre de usuario/ID, para usuarios que lo usaron como fondo de perfil
-
lista de nombre de usuario/ID, para usuarios que lo usaron como fondo de tarjeta
-
lista de todas las publicaciones (raw) que usan esta subida
Acciones:
-
suspender a todos los usuarios que usaron la subida para un avatar, fondo de perfil o fondo de tarjeta
-
suspender a todos los usuarios que tienen publicaciones que hacen referencia a la subida objetivo, pero excluir si su referencia está anidada dentro de una cita
-
eliminar todos los temas
-
eliminar todas las publicaciones
-
destruir subida (no hay endpoint de API)
-
purgar todas las URL de CDN (optimizadas/no optimizadas)
-
purgar el prefijo estándar para las URL de avatar proxificadas para cada nombre de usuario asociado (para cubrir todos los tamaños)
El escenario de eliminación quirúrgica sería esencialmente el mismo, pero sin suspender a los usuarios asociados y necesitaría algunos cambios con respecto a la recopilación de todos los hashes de subida de las URL de publicaciones/temas.
Probablemente seguiría siendo necesario eliminar las publicaciones/temas en sí para evitar referencias rotas, pero eliminar el markdown de la subida para esa subida específica (sin tocar otras subidas) sería superior si es posible. Como esta automatización si no eliminara todas las referencias de subidas en markdown.
Idealmente, me gustaría poder bloquear también los hashes, de modo que después de pasar por lo anterior, alguien no pueda simplemente crear una nueva cuenta y volver a subir.
![]()
No creo que sea posible actualmente para un moderador normal, como usando palabras vigiladas. Así que quizás realizar un escaneo periódico como el anterior para una lista de hashes sería una forma de manejar eso.