Configurando um Ator ActivityPub

Este tópico cobre a configuração de um Ator ActivityPub no Discourse com o Plugin ActivityPub do Discourse. Se você não tem certeza do que isso significa, vá primeiro para o tópico Plugin ActivityPub do Discourse.

Próximo Passo

Instruções

Para criar um ator ActivityPub:

  1. Vá para Admin > Plugins > ActivityPub.
  2. Clique em “Adicionar Ator”.
  3. Preencha o formulário Adicionar Ator (as configurações são explicadas abaixo).
  4. Clique em “Salvar Ator”.

Quando você salva o Ator, outros Atores no fediverso podem começar a segui-lo. Você pode desabilitar um ator, alternando o controle deslizante “Habilitado” à direita da visualização Editar Ator.

Configurações do Ator

Nome de usuário

Esta é a primeira parte do identificador ActivityPub do Ator, por exemplo, announcements é o nome de usuário de announcements@meta.discourse.org. Esta será a base para o nome de usuário do Usuário do Ator em instâncias remotas do Discourse (se o nome de usuário já estiver em uso nessa instância, um número inteiro será adicionado para exclusividade).

:point_right: Esta propriedade se traduz em preferredUsername na especificação ActivityPub.
:point_right: Atualmente, isso não pode ser alterado após a configuração. Isso mudará se e quando este PR para o Mastodon for mesclado.

Nome

Este é o nome de exibição do Ator. Como ele será usado dependerá de como outros serviços o implementam. No Discourse, isso se tornará o “Nome” do Usuário do Ator.

Visibilidade

Isso determina se as Atividades publicadas pelo Ator terão “Endereçamento Público”. Você deve deixar isso como público, a menos que saiba o que está fazendo.

:point_right: Isso é essencialmente o mesmo que a diferença entre posts “públicos” e “privados” (apenas para seguidores) no Mastodon.

Tipo de objeto de postagem

Isso determina se o Ator publicará posts como uma Nota ou um Artigo. Você deve deixar isso como Nota, a menos que saiba o que está fazendo.

:point_right: O Mastodon publicará apenas um link para o post original se receber um Artigo.

Tipo de publicação

Tópico Completo

Todos os posts em um tópico associado ao Ator serão publicados e todas as respostas do Fediverso serão transformadas em posts.

Primeira Postagem

Apenas a primeira postagem em um tópico associado ao Ator será publicada e nenhuma resposta do Fediverso será transformada em posts.

3 curtidas

Acabei de adicionar o plugin a uma instalação do discourse 3.3.2. Consigo ver o plugin na lista de plugins, nas preferências do plugin, etc.

No entanto, ao tentar adicionar atores, só consigo adicionar atores para Tags (o que não preciso), mas não para categorias. Parece algum tipo de problema de UI / javascript do lado do navegador (não sou um desenvolvedor web).

Tentei com Firefox e Chromium no Debian, e ambos apresentam o mesmo comportamento

  • adicionar atores para Tags funciona como esperado
  • adicionar atores para Categorias é impossível, pois nenhuma caixa de seleção para as categorias é renderizada à direita da escolha Selecionar um modelo / Categoria.

Estou recebendo um

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)

erro no console do desenvolvedor ao selecionar “Categoria” no botão “Selecionar um Modelo”.

Geralmente, o suporte é fornecido apenas no Meta para as versões estáveis mais recentes ou que passaram nos testes - há algum motivo para você estar atrasado? Vale a pena atualizar para a versão mais recente e tentar novamente.

Foi um erro de digitação, desculpe. Estou na versão 3.3.2.

1 curtida

Olá @LaF0rge, este plugin atualmente suporta apenas a versão mais recente do Discourse. Veja mais:

1 curtida

Olá @angus - obrigado pela sua resposta. Infelizmente, não estou disposto a atualizar nossa instalação de produção para uma versão beta ou para o git master atual. Acho que terei que esperar até que uma nova versão estável do discourse seja marcada/lançada.

A propósito: existe alguma informação estruturada disponível que indique o requisito de versão mínima de um plugin? Não vi isso aqui na postagem inicial do tópico, nem em GitHub - discourse/discourse-activity-pub: Adds ActivityPub support to Discourse.

Em outros projetos/produtos de software, os plugins geralmente indicam a compatibilidade de versão.

Dado que o plugin existe há mais de um ano, acho que outra opção seria fazer o downgrade para uma versão anterior do plugin, de cerca de quando o 3.3.2 estava em vigor? No entanto, no log de commits, não consegui ver imediatamente nenhuma referência às versões do discourse.

A menos que você tenha um motivo específico para não fazê-lo, é recomendável usar o branch tests-passed do Discourse. Veja mais:

Além disso, você pode assumir que plugins ou personalizações com a tag experimental (como o plugin ActivityPub faz) só funcionam de forma confiável na versão mais recente do Discourse.

Mais especificamente para suas perguntas implícitas sobre gerenciamento de versão, em plugins do Discourse, isso é tratado através do arquivo .discourse-compatibility, sobre o qual você pode ler aqui:

Veja o arquivo de compatibilidade do plugin ActivityPub aqui:

Como o plugin ActivityPub ainda é experimental, garantir a compatibilidade com versões anteriores não tem sido um foco, no entanto, investigarei a adição de suporte explícito a 3.3.2 a esse arquivo no início da próxima semana.

Mas, como mencionado acima, a menos que você tenha um bom motivo para não fazê-lo, sugiro usar tests-passed.

3 curtidas

@LaF0rge Acabei de olhar isto.

O plugin não precisa adicionar suporte explícito a 3.3.2, pois já o possui no arquivo de compatibilidade.

< 3.4.0.beta1-dev: 3a6512d0560211b93f022a27ed7276024d0020dc

Se você estiver usando uma instalação padrão do Discourse em 3.3.2, então você estará automaticamente no commit 3a6512d0560211b93f022a27ed7276024d0020dc do plugin, para o qual o menu suspenso de categoria funciona. Veja mais:

Obrigado pela sua contribuição adicional. Acabei de fazer outra tentativa hoje de usar o commit do plugin 3a6512d0560211b93f022a27ed7276024d0020dc com meu discourse agora atualizado para 3.3.3, mas acabei em um estado onde todas as requisições HTTP foram respondidas com Completed 500 Internal Server Error in 42ms (ActiveRecord: 0.0ms | Allocations: 16860) não importando para qual URL. Não havia nada no production.log, nada errôneo registrado na saída/erro padrão e nada no passenger.3000.log também. Remover o plugin do diretório de plugins + reiniciar resolveu o problema. Foi reproduzível várias vezes.

Por enquanto, estou desistindo. Foi uma boa ideia brincar com a integração ActivityPub, mas acho que não está no nível em que posso fazer algo útil, ao contrário de outros plugins que consegui instalar com sucesso. Afinal, não é um requisito crítico, apenas um “bom ter”.

Se você estiver tentando comparar manualmente commits específicos de qualquer plugin com versões específicas do Discourse, é improvável que dê certo. Eu o encorajaria a considerar o uso da instalação padrão do Discourse. Você reduzirá sua sobrecarga e poderá usar este e outros plugins sem problemas.

Eu entendo - mas não vou me desviar de instalar e operar versões marcadas/lançadas de software. Para o Discourse, isso é, até onde sei neste momento, 3.3.3.

Acho muito desconfortável e perturbador executar sistemas de produção em qualquer coisa que não sejam lançamentos marcados. Pode me chamar de antiquado, mas opero (e desenvolvo) sistemas de TI com sucesso desde meados da década de 1990.

Respeito que você e/ou a comunidade oficial de desenvolvedores do Discourse tenham uma atitude/abordagem diferente. Concordamos em discordar. Obrigado pela sua ajuda até agora, mesmo assim!

1 curtida