Notificar al administrador cuando las configuraciones del sitio sean actualizadas por el sistema

Recientemente, nuestro download_remote_images_to_local fue deshabilitado por el sistema como un cambio ‘silencioso’. Como propietario del sitio, habría sido útil recibir un mensaje directo (DM) sobre esto. No estoy seguro de si hay más cambios que el sistema pueda actualizar de esta manera.

9 Me gusta

He visto que eso ocurre cuando el disco está lleno. ¿Fue eso o algo más?

2 Me gusta

No estaba lleno, solo estaba por debajo del umbral que establecimos para descargar imágenes remotas.

3 Me gusta

Creo que la sugerencia es razonable, desafortunadamente no creo que tengamos tiempo de trabajar en esto en bastante tiempo.

Poniendo un pr-welcome en caso de que alguien de la comunidad quiera investigar esto. (Un PM a los administradores cuando toquemos la configuración)

6 Me gusta

El “sistema” rompió nuestro sitio al cambiar el nivel de confianza predeterminado a “0” cuando lo habíamos configurado en “1”.

Es muy sorprendente que el sistema pueda realizar cambios ad hoc en nuestro sitio de producción sin ningún tipo de aprobación o aviso, y necesitamos evitar que esto vuelva a suceder en el futuro.

¿Hay alguna forma de deshabilitar estos cambios automáticos del sistema?

Esto no debería suceder, muchos sitios tienen un valor predeterminado de TL1. Necesitamos más contexto, ¿puedes abrir un nuevo tema al respecto?

3 Me gusta

Resulta que esto sucedió debido al modo de arranque en un nuevo servidor/aplicación que estábamos configurando.

Pero mi mensaje se refería menos a este cambio de sistema específico y más a cómo cualquier cambio de sistema debería requerir idealmente una aprobación para que las cosas no se rompan. Si la aprobación no es posible, entonces, como mínimo, un correo electrónico notificando a todos los administradores sobre el cambio (que creo que es más o menos lo que el OP estaba preguntando) sería genial.

¡Gracias por todo el trabajo en Discourse!

1 me gusta

Hola @Earnie_Baird, este es un gran comentario.

Supongo que una sugerencia sería tener más claridad sobre el modo de arranque, tal vez cuando lo veas en la cabecera y hagas clic en él, debería explicar muy claramente qué sucedió.

2 Me gusta

A menos que hubiera cambios de los que no estuviera al tanto (y no creo que los hubiera), apruebo firmemente esta solicitud de función.

He encontrado este problema varias veces cuando temporalmente me faltaba espacio en disco.

Todas las veces, noté que la configuración estaba deshabilitada solo por casualidad. No se me ocurrió revisar los cambios de configuración cuando alcancé un umbral de espacio en disco, incluso después de haber experimentado esto varias veces.

Estoy bastante seguro de que hay muchas instancias en uso que tienen esta configuración deshabilitada sin que el administrador lo sepa, solo porque se quedaron sin espacio en disco hace un año.

El cambio de configuración se registra en /admin/logs/staff_action_logs?filters=%7B\"subject\"%3A\"download_remote_images_to_local\"%7D, pero no recuerdo haber recibido ninguna notificación cuando se activa.

Idealmente, me gustaría al menos una advertencia en el panel, una notificación en el menú del usuario o un correo electrónico.

El contexto de la siguiente cita era bastante específico (y antiguo), pero también se aplica aquí.

La ausencia de cualquier tipo de notificación cuando @system cambia una configuración puede ser perjudicial.


Cuando noto que download_remote_images_to_local se ha deshabilitado en algún momento, ejecuto uno de (o ambos, una vez) estos scripts de rails para activar la descarga de archivos remotos:

Volver a hornear todas las publicaciones desde una fecha determinada

i = 0
Post.where('created_at >= ?', Date.new(2023, 5, 1)).where('user_id > 0').find_each do |post|
  post.rebake!
  puts "Post #{post.id}, Creado en #{post.created_at}"
  i += 1
end

puts "Número total de publicaciones rehechas: #{i}"

Volver a hornear todas las publicaciones entre dos fechas determinadas

i = 0
Post.where('created_at >= ? AND created_at < ?', Date.new(2021, 12, 1), Date.new(2022, 3, 1)).where('user_id > 0').find_each do |post|
  post.rebake!
  puts "Post #{post.id}, Creado en #{post.created_at}"
  i += 1
end

puts "Número total de publicaciones rehechas: #{i}"
2 Me gusta

Leer Get admin notification from logs? - #4 by JammyDodger me hizo pensar de nuevo en este tema. Creo que también podrías usar el script de automatización “Programar un PM con resultados del Explorador de Datos” o “Programar una publicación en un tema con resultados del Explorador de Datos” y una consulta del explorador de datos para recibir notificaciones sobre cambios en la configuración del sitio por parte del sistema.

Algo como

SELECT subject, previous_value, new_value, updated_at
FROM user_histories uh
where uh.action = 3
AND uh.acting_user_id = -1
AND uh.updated_at  > CURRENT_TIMESTAMP - INTERVAL '60 minutes'
order by updated_at desc

Luego configuras la automatización con una recurrencia que coincida con el intervalo en la consulta, y omites si no hay resultados para evitar ruido.
También podrías mejorar la consulta para filtrar por el tema exacto, pero pensé que quizás otros cambios automáticos también son interesantes.

3 Me gusta

Hola @Moin

¡Gracias por esto, suena como una idea muy útil!

Ejecuté esta consulta, pero no muestra cambios como la desactivación automática de la Narrativa..

¡Así es! No hay ninguna entrada en los registros para esto. Por eso sugerí que siempre se cree una entrada para tales cambios.

Esta consulta consulta deliberadamente solo un corto período de tiempo. Cuando comento la restricción de tiempo, veo al menos algunos cambios.

- AND uh.updated_at  > CURRENT_TIMESTAMP - INTERVAL '60 minutes'
+ --AND uh.updated_at  > CURRENT_TIMESTAMP - INTERVAL '60 minutes'

Sin embargo, para evitar que el script de automatización informe sobre esos cambios antiguos, he agregado esta restricción de tiempo.

2 Me gusta

Esta es una consulta útil para cualquier sitio para solucionar problemas, cuando algún comportamiento ha cambiado inesperadamente. Incluso podrías ser tú o un compañero administrador quien cambió algo y tuvo un efecto inesperado.

Creé una automatización aquí en meta para ejecutar esta consulta semanalmente, para mostrar todos los cambios registrados en la última semana. Tenemos muchos cocineros en esta cocina y a veces puede ser difícil mantener una visión general.

Me parece que la solicitud de funciones aquí sería registrar todas las acciones del personal de manera más completa.

1 me gusta

La consulta que compartí se limita a los cambios en la configuración del sitio y a las acciones del sistema. Por lo tanto, ayuda a notar cuándo el sistema cambia la configuración, ya sea debido a una automatización, como la desactivación de la descarga de imágenes debido a un disco lleno, o cuando la configuración cambia al finalizar el modo de arranque. En combinación con una publicación o un mensaje privado del plugin de automatización, esto puede ayudar en casos como el descrito en el OP.

Pero la consulta realmente no ayuda a encontrar cambios inesperados como el cambio que desactivó el mensaje de bienvenida de discobot, sobre el cual a @gassim le hubiera gustado saber. La mayoría de los cambios de configuración que ocurren durante una actualización de Discourse no se registran y eso es lo que hace que sea tan difícil de rastrear.

1 me gusta

Modifiqué tu consulta para que me muestre todos los cambios registrados en la última semana.

Estoy de acuerdo contigo en que hay que cubrir una laguna. No se están registrando suficientes acciones.

1 me gusta