Plugin ActivityPub

Tive um problema. Talvez seja um caso extremo. Configurei uma das minhas categorias para usar o ActivityPub, mas ela não está acessível em outras plataformas como o Mastodon, e as postagens não estão sendo federadas porque não consigo acessar e seguir a categoria.

Acho que pode ser um problema devido à letra maiúscula “E” no identificador. Events@bayofislands.community

Tenho outra categoria federada que funciona bem. Você pode vê-la em ação em

Alguma sugestão para fazer isso funcionar sem criar uma categoria de eventos totalmente nova? Posso modificar um ou mais registros no banco de dados para atualizar o nome de usuário da categoria?

Também estou notando que o URL para seguir uma categoria não está funcionando no Mastodon: Log in - Mastodon Newfoundland and Labrador

Obrigado pelo relatório. Mude o E para minúsculo e funcionará

Vou corrigir este problema (ou seja, lida com letras maiúsculas) em breve.

1 curtida

Podemos excluir seguidores? Tenho alguns atores que vieram de uma instância agora excluída e gostaria de limpar os lugares :smirking_face:

Um bom pedido, adicionarei isso em breve também.

2 curtidas

Não tenho certeza se este é realmente um problema de capitalização. Posso confirmar o seguinte:

  1. você está executando a versão mais recente do Discourse; e
  2. você está executando a versão mais recente do plugin ActivityPub.
1 curtida

Percebi uma coisa: o usuário criado pelo ActivityPub Plugin não tem nenhum grupo atribuído a ele, e não tem nenhum e-mail.

É possível atribuir grupos personalizados a usuários criados pelo ActivityPub Plugin?

3 curtidas

Isso também resultou em um bug onde, se a categoria fosse definida como TL0, seria possível postar (somente leitura para everyone), usuários AP podem não postar, pois não tinham essa permissão.

3 curtidas

Há também um bug aqui. Se SiteSettings.selectable_avatars_mode estiver definido, mesmo que esteja definido como everyone, isso fará com que o usuário do AP fique sem avatares.

1 curtida

Isso está pronto e aguarda revisão após a mesclagem do Tag Actors.

Ainda não. Eles são usuários em estágio, então há algumas limitações. Talvez um pouco mais adiante.

Obrigado por este relatório. Vou analisar este caso mais de perto em breve. Por enquanto, você pode definir as permissões de postagem como todos e funcionará.

Obrigado por este relatório também. Vou analisar este caso mais de perto em breve também.

3 curtidas

Olá, estou tendo este problema com a publicação “sem destinatários”. Como posso solucionar o problema?

[Discourse Activity Pub] https://meta.appinn.net/ap/actor/b04930460474d895289ae0cd3c2ae719 falhou ao agendar https://meta.appinn.net/ap/activity/2ad9bfcc78a9df49efa7b6e9bda454da para entrega: sem destinatários

Logs:

Message

[Discourse Activity Pub] https://meta.appinn.net/ap/actor/b04930460474d895289ae0cd3c2ae719 falhou ao agendar https://meta.appinn.net/ap/activity/2ad9bfcc78a9df49efa7b6e9bda454da para entrega: sem destinatários

Backtrace

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:93:in `log_failure'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:35:in `can_deliver?'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:13:in `perform'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:27:in `perform'
/var/www/discourse/plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:140:in `activity_pub_deliver_activity'
/var/www/discourse/plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:38:in `perform_activity_pub_activity'
/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:478:in `block (2 levels) in activate!'
/var/www/discourse/lib/plugin/instance.rb:354:in `public_send'
/var/www/discourse/lib/plugin/instance.rb:354:in `block (2 levels) in add_to_class'
/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:486:in `block (2 levels) in activate!'
/var/www/discourse/lib/plugin/instance.rb:354:in `public_send'
/var/www/discourse/lib/plugin/instance.rb:354:in `block (2 levels) in add_to_class'
/var/www/discourse/plugins/discourse-activity-pub/app/controllers/discourse_activity_pub/post_controller.rb:17:in `schedule'
actionpack-7.0.8.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack-7.0.8.1/lib/abstract_controller/base.rb:215:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/var/www/discourse/app/controllers/application_controller.rb:423:in `block in with_resolved_locale'
i18n-1.14.4/lib/i18n.rb:322:in `with_locale'
/var/www/discourse/app/controllers/application_controller.rb:423:in `with_resolved_locale'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/rescue.rb:23:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport-7.0.8.1/lib/active_support/notifications.rb:206:in `block in instrument'
activesupport-7.0.8.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport-7.0.8.1/lib/active_support/notifications.rb:206:in `instrument'
actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord-7.0.8.1/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack-7.0.8.1/lib/abstract_controller/base.rb:151:in `process'
actionview-7.0.8.1/lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler-3.3.1/lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method'
actionpack-7.0.8.1/lib/action_controller/metal.rb:188:in `dispatch'
actionpack-7.0.8.1/lib/action_controller/metal.rb:251:in `dispatch'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `each'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:852:in `call'
railties-7.0.8.1/lib/rails/engine.rb:530:in `call'
railties-7.0.8.1/lib/rails/railtie.rb:226:in `public_send'
railties-7.0.8.1/lib/rails/railtie.rb:226:in `method_missing'
actionpack-7.0.8.1/lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
actionpack-7.0.8.1/lib/action_dispatch/routing/mapper.rb:48:in `serve'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `each'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:852:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack-2.2.9/lib/rack/tempfile_reaper.rb:15:in `call'
rack-2.2.9/lib/rack/conditional_get.rb:40:in `call'
rack-2.2.9/lib/rack/head.rb:12:in `call'
actionpack-7.0.8.1/lib/action_dispatch/http/permissions_policy.rb:38:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:393:in `call'
/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in `call'
/var/www/discourse/config/initializers/008-rack-cors.rb:26:in `call'
rack-2.2.9/lib/rack/session/abstract/id.rb:266:in `context'
rack-2.2.9/lib/rack/session/abstract/id.rb:260:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'
logster-2.19.1/lib/logster/middleware/reporter.rb:40:in `call'
railties-7.0.8.1/lib/rails/rack/logger.rb:40:in `call_app'
railties-7.0.8.1/lib/rails/rack/logger.rb:27:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/request_id.rb:26:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:24:in `call'
rack-2.2.9/lib/rack/method_override.rb:24:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
rack-2.2.9/lib/rack/sendfile.rb:110:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
rack-mini-profiler-3.3.1/lib/mini_profiler.rb:191:in `call'
message_bus-4.3.8/lib/message_bus/rack/middleware.rb:60:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:237:in `call'
railties-7.0.8.1/lib/rails/engine.rb:530:in `call'
railties-7.0.8.1/lib/rails/railtie.rb:226:in `public_send'
railties-7.0.8.1/lib/rails/railtie.rb:226:in `method_missing'
rack-2.2.9/lib/rack/urlmap.rb:74:in `block in call'
rack-2.2.9/lib/rack/urlmap.rb:58:in `each'
rack-2.2.9/lib/rack/urlmap.rb:58:in `call'
unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'

Env

HTTP HOSTS: meta.appinn.net

Eu acho que você precisa de alguém (ou algum ‘ator’) para seguir a Categoria. Veja isto:

2 curtidas

Mas quando sigo esta Categoria usando mastodon.social:
[Discourse Activity Pub] POST request received by https://meta.appinn.net/ap/actor/b04930460474d895289ae0cd3c2ae719/inbox failed: 401 Actor not found for key https://mastodon.social/users/Cosmeticclinic#main-key

Isso é um bug? (Data inválida)

1 curtida

Uma solicitação de recurso: É possível silenciar ou suspender contas criadas pelo plugin activitypub?

Temos um usuário que violou seriamente nossos termos de serviço e foi permanentemente banido, mas ele fugiu para outro fórum que coopera conosco e, através do activitypub, ainda podemos ver suas postagens lá.

Tentei suspendê-lo, mas não funcionou. (HTTP 422 Unprocessable Content)

2 curtidas

Ao mesmo tempo, parece que posts com imagens enviados através do activitypub não carregam corretamente

Aqui está um exemplo no meu fórum: OriginalEntregue

1 curtida

Obrigado pelos relatórios, darei uma olhada mais de perto em ambos em breve.

1 curtida

Este é um plugin incrível - e, de fato, uma parte fundamental do fediverso em rápido crescimento e bastante empolgante - é um trabalho realmente incrível!

É provável que seja utilizável entre categorias privadas em diferentes instâncias do Discourse em breve? Sei que este é um caso de uso bem diferente da federação aberta, mas é um que posso imaginar sendo muito útil para facilitar a colaboração em contextos mais privados / fechados.

2 curtidas

Instalei o plugin activitypub e posso ver que ele está presente e habilitado nas configurações do administrador. No entanto, quando vou às configurações de uma categoria, não vejo uma seção activitypub lá. A única coisa um pouco incomum é que estou executando uma configuração multisite. Alguma ideia sobre o que estou perdendo/como consertar isso é apreciada!

1 curtida

Apenas uma observação de que as categorias privadas podem atualmente seguir categorias públicas. As categorias privadas não podem ser seguidas atualmente. Tenha em mente que há alguma tensão na ideia de “seguir” um Grupo “privado”, e que o conceito é controverso no Fediverse. Dito isso, pode muito bem ser implementado, mas não será “em breve” :slight_smile:

As configurações de categoria foram movidas para Admin > Plugins > ActivityPub. Atualizarei a documentação no OP em breve!

4 curtidas

Aha! Eu vi algo sobre isso acima, mas fui para Admin > Plugins e não vi o menu no topo, então cliquei em ActivityPub na lista de plugins e voltei para cá.. Em seguida, tentei voltar e olhar sob o link de configurações.. Portanto, pode ser bom esclarecer isso, talvez com um link para as configurações da categoria a partir das configurações do activitypub.

De qualquer forma, parece que está funcionando agora, obrigado!

2 curtidas