Configurando un Actor de ActivityPub

Este tema cubre la configuración de un Actor de ActivityPub en Discourse con el Plugin ActivityPub de Discourse. Si no estás seguro de lo que esto significa, dirígete primero al tema Plugin ActivityPub de Discourse.

Siguiente Paso

Instrucciones

Para crear un actor de ActivityPub:

  1. Ve a Administración > Plugins > ActivityPub.
  2. Haz clic en “Añadir Actor”.
  3. Rellena el formulario “Añadir Actor” (la configuración se explica a continuación).
  4. Haz clic en “Guardar Actor”.

Cuando guardes el Actor, otros Actores del fediverso podrán empezar a seguirlo. Puedes deshabilitar un actor, activando o desactivando el interruptor “Habilitado” a la derecha de la vista Editar Actor.

Configuración del Actor

Nombre de usuario

Esta es la primera parte del identificador de ActivityPub del Actor, por ejemplo, announcements es el nombre de usuario de announcements@meta.discourse.org. Esta será la base del nombre de usuario del Usuario del Actor en instancias remotas de Discourse (si el nombre de usuario ya está ocupado en esa instancia, se añadirá un entero para garantizar la unicidad).

:point_right: Esta propiedad se traduce a preferredUsername en la especificación de ActivityPub.
:point_right: Actualmente, no se puede cambiar una vez establecido. Esto cambiará si o cuando se fusione esta PR a Mastodon.

Nombre

Este es el nombre para mostrar del Actor. Cómo se utiliza dependerá de cómo lo implementen otros servicios. En Discourse, este se convertirá en el “Nombre” del Usuario del Actor.

Visibilidad

Esto determina si las Actividades publicadas por el Actor tienen “Direccionamiento Público”. Deberías dejarlo como público a menos que sepas lo que estás haciendo.

:point_right: Esto es esencialmente lo mismo que la diferencia entre publicaciones “públicas” y “privadas” (solo para seguidores) en Mastodon.

Tipo de objeto de publicación

Esto determina si el Actor publicará publicaciones como una Nota o un Artículo. Deberías dejarlo como Nota a menos que sepas lo que estás haciendo.

:point_right: Mastodon solo publicará un enlace a la publicación original si recibe un Artículo.

Tipo de publicación

Tema Completo

Se publicarán todas las publicaciones de un tema asociado al Actor y todas las respuestas del Fediverso se convertirán en publicaciones.

Primera Publicación

Solo se publicará la primera publicación de un tema asociado al Actor y ninguna respuesta del Fediverso se convertirá en publicaciones.

3 Me gusta

Acabo de añadir el plugin a una instalación de discourse 3.3.2. Puedo ver el plugin en la lista de plugins, las preferencias del plugin, etc.

Sin embargo, al intentar añadir actores, solo puedo añadir actores para Etiquetas (que no necesito), pero no para Categorías. Parece algún tipo de problema de interfaz de usuario / javascript del lado del navegador (no soy desarrollador web).

Lo he intentado tanto con Firefox como con Chromium en Debian, y ambos muestran el mismo comportamiento

  • añadir actores para Etiquetas funciona como se espera
  • añadir actores para Categorías es imposible ya que nunca se renderiza ningún cuadro de selección para las categorías a la derecha de la opción Seleccionar un modelo / Categoría.

Estoy recibiendo un

runtime.js:912 Uncaught TypeError: Cannot read properties of null (reading 'firstNode')
    at ue.firstNode (runtime.js:912:1)
    at T (runtime.js:241:1)
    at ue.reset (runtime.js:983:1)
    at ae.resume (runtime.js:686:1)
    at Ut.handleException (runtime.js:4309:1)
    at Vt.handleException (runtime.js:4521:1)
    at Dt.throw (runtime.js:4260:1)
    at $e.evaluate (runtime.js:2088:1)
    at Dt._execute (runtime.js:4247:1)
    at Dt.execute (runtime.js:4232:1)
    at qt.rerender (runtime.js:4547:1)
    at hr.render (index.js:4674:1)
    at index.js:4934:1
    at Nt (runtime.js:4080:1)
    at gr._renderRoots (index.js:4916:1)
    at gr._renderRootsTransaction (index.js:4960:1)
    at gr._revalidate (index.js:4992:1)
    at invoke (backburner.js.js:280:1)
    at h.flush (backburner.js.js:197:1)
    at p.flush (backburner.js.js:358:1)
    at B._end (backburner.js.js:798:1)
    at B.end (backburner.js.js:589:1)
    at B._run (backburner.js.js:842:1)
    at B._join (backburner.js.js:819:1)
    at B.join (backburner.js.js:629:1)
    at l (index.js:81:1)
    at u.onHover (index.js:118:1)
    at e.handleMouseEnter (select-kit-row.js:83:22)

error en la consola del desarrollador al seleccionar “Categoría” en el botón “Seleccionar un modelo”.

En general, el soporte solo se proporciona en Meta para las últimas versiones estables o que han pasado las pruebas. ¿Hay alguna razón por la que te estés quedando atrás? Vale la pena actualizar a la última versión e intentarlo de nuevo.

Fue un error tipográfico, lo siento. Estoy en la versión 3.3.2.

1 me gusta

Hola @LaF0rge, este plugin actualmente solo admite la última versión de Discourse. Ver más:

1 me gusta

Hola @angus: gracias por tu respuesta. Lamentablemente, no estoy dispuesto a actualizar nuestra instalación de producción a una versión beta o a la rama git master actual. Supongo que esperaré hasta que se haya etiquetado/lanzado una nueva versión estable de Discourse.

Por cierto: ¿hay alguna información estructurada disponible que indique el requisito de versión mínima de un plugin? No lo vi aquí en la publicación inicial del hilo, ni tampoco en GitHub - discourse/discourse-activity-pub: Adds ActivityPub support to Discourse.

En otros proyectos/productos de software, los plugins suelen indicar la compatibilidad de versiones.

Dado que el plugin ha existido durante más de un año, supongo que otra opción sería degradar a una versión anterior del plugin, de alrededor de la época en que la 3.3.2 era la actual. Sin embargo, en el registro de commits no pude ver inmediatamente ninguna referencia a las versiones de Discourse.

A menos que tenga una razón específica para no hacerlo, se recomienda usar la rama tests-passed de Discourse. Ver más detalles en:

Además, puede asumir que los plugins o personalizaciones con la etiqueta experimental (como lo hace el plugin ActivityPub) solo funcionan de manera confiable en la última versión de Discourse.

Más específicamente a sus preguntas implícitas sobre la gestión de versiones, en los plugins de Discourse esto se maneja a través del archivo .discourse-compatibility, sobre el cual puede leer aquí:

Vea el archivo de compatibilidad del plugin ActivityPub aquí:

Dado que el plugin ActivityPub todavía es experimental, garantizar la compatibilidad con versiones anteriores no ha sido un enfoque; sin embargo, investigaré la adición de soporte explícito para 3.3.2 a ese archivo a principios de la próxima semana.

Pero como se mencionó anteriormente, a menos que tenga una buena razón para no hacerlo, le sugiero que use tests-passed.

3 Me gusta

@LaF0rge Acabo de mirar esto.

El plugin no necesita añadir soporte explícito para 3.3.2 ya que ya lo tiene en el archivo de compatibilidad.

< 3.4.0.beta1-dev: 3a6512d0560211b93f022a27ed7276024d0020dc

Si estás usando una instalación estándar de Discourse en 3.3.2, entonces estarás automáticamente en el commit 3a6512d0560211b93f022a27ed7276024d0020dc del plugin para el cual el desplegable de categoría funciona. Ver más:

Gracias por tu aporte adicional. Acabo de hacer otro intento hoy de usar el commit del plugin 3a6512d0560211b93f022a27ed7276024d0020dc con mi discourse 3.3.3 ya actualizado, pero terminé en un estado donde todas las solicitudes HTTP fueron respondidas con Completed 500 Internal Server Error in 42ms (ActiveRecord: 0.0ms | Allocations: 16860) sin importar la URL. No había nada en production.log, nada erróneo registrado en la salida/error estándar y tampoco nada en passenger.3000.log. Eliminar el plugin del directorio de plugins + reiniciar resolvió el problema. Fue reproducible varias veces.

Por ahora me rindo. Fue una buena idea jugar con la integración de ActivityPub, pero supongo que no está al nivel donde pueda hacer algo útil, a diferencia de otros plugins que logré instalar con éxito. Después de todo, no es un requisito crítico, solo un “agradable tener”.

Si intentas hacer coincidir manualmente commits específicos de cualquier plugin con versiones específicas de Discourse, es poco probable que salga bien. Te recomiendo que consideres usar la instalación estándar de Discourse. Reducirás tu sobrecarga y podrás usar este y otros plugins sin problemas.

Te entiendo, pero no me desviaré de la instalación y operación de versiones etiquetadas/lanzadas de software. Para Discourse, eso es, hasta donde sé en este momento, 3.3.3.

Me resulta muy incómodo e inquietante ejecutar sistemas de producción con algo que no sean lanzamientos etiquetados. Llámame anticuado, pero he estado operando (y desarrollando) sistemas de TI con éxito desde mediados de la década de 1990.

Respeto que tú y/o la comunidad oficial de desarrolladores de Discourse tengan una actitud/enfoque diferente. Estamos de acuerdo en discrepar. ¡Gracias por tu ayuda hasta ahora de todos modos!

1 me gusta