Skip to content

ActivityPub

Focused discussion related to ActivityPub integration in NodeBB

105 Topics 1.6k Posts

Subcategories


  • Discussion and announcements related to the SWICG Forums and Threaded Discussions Task Force.

    This profile is a discussion forum category and shares content from users who post in its discussions.

    36 Topics
    857 Posts
    julianJ
    Reminder that the ForumWG meeting is coming up in one hour.
  • Signalling "open in app" behaviour for AP content

    32
    4 Votes
    32 Posts
    1k Views
    julianJ
    @[email protected] @[email protected] Thank you for the update. Independently of this draft, I partially implemented this in NodeBB so that clicking external links in-app go through a middleman step where existing known resources are loaded in-app, and retrieved via AP otherwise. Fallback is just to send the user to the url as originally intended. Section 2.1 details use of content negotiation, but I have not implemented that yet mainly because early tests indicated that I'd more often than not receive HTML back despite the AP Accept header. So right now it's: Redirect to in-app representation if recognized HEAD call to search for Link header Return failure and send user off-site.
  • Quoted posts

    20
    4 Votes
    20 Posts
    341 Views
    scott@authorship.studioS
    @Kichae Ideally, people should be notified that they are posting to a forum and not replying to a post on an individual channel, that way we can set some expectations in advance.I am not sure how ActivityPub handles it, but Hubzilla somehow communicates with other Hubzilla instances that a particular channel is a forum. It's probably communicated in webfinger, or something like that. Just having an icon, tag, or Bootstrap-style badge next to a channel saying "forum" would be helpful.
  • 4 Votes
    1 Posts
    83 Views
    julianJ
    Additional pages have been added to the NodeBB documentation regarding the following items: Post visibility — how NodeBB handles incoming activities with public and non-public visibility, and how they are represented in NodeBB. Conversational Contexts — how NodeBB builds out a conversational context when parsing incoming content.
  • 12 Votes
    18 Posts
    606 Views
    jupiter_rowland@hub.netzgemeinde.euJ
    @Stefan Bohacek @jdp23 @julian "Shadow mentioning" is a thing. (streams) and Forte do it to avoid clutter. Mentions don't have to be visible in a post/comment to work.
  • NodeBB v4.0.0 Beta

    19
    18 Votes
    19 Posts
    637 Views
    S
    @Julian I filtered out the null names and the upgrade went through: "use strict"; const db = require("../../database"); const meta = require("../../meta"); const categories = require("../../categories"); const slugify = require("../../slugify"); module.exports = { name: "Setting up default configs/privileges re: ActivityPub", timestamp: Date.UTC(2024, 1, 22), method: async () => { // Disable ActivityPub (upgraded installs have to opt-in to AP) meta.configs.set("activitypubEnabled", 0); // Set default privileges for world category const install = require("../../install"); await install.giveWorldPrivileges(); // Run through all categories and ensure their slugs are unique (incl. users/groups too) const cids = await db.getSortedSetMembers("categories:cid"); const names = await db.getObjectsFields( cids.map((cid) => `category:${cid}`), cids.map(() => "name"), ); const nullIndexes = names .map((element, index) => (element["name"] === null ? index : -1)) // mark null elements .filter((index) => index !== -1); let filteredNames = names.filter(element => element["name"] !== null); let filteredCids = cids.filter((_, index) => !nullIndexes.includes(index)); const handles = await Promise.all( filteredCids.map(async (cid, idx) => { const { name } = filteredNames[idx]; const handle = await categories.generateHandle(slugify(name)); return handle; }), ); await Promise.all([ db.setObjectBulk( filteredCids.map((cid, idx) => [`category:${cid}`, { handle: handles[idx] }]), ), db.sortedSetAdd("categoryhandle:cid", filteredCids, handles), ]); }, };
  • `Update(Note)` quirk

    11
    8 Votes
    11 Posts
    240 Views
    thisismissem@socialhub.activitypub.rocksT
    julian:This whole thing could actually be sidestepped if we sent timestamps with our activities, but that's not in the spec, so I guess nobody does it heh.This sounds like a wonderful FEP!
  • Test post, greetings from lemmy

    2
    1 Votes
    2 Posts
    89 Views
    julianJ
    @[email protected] sort of? It went through but did not get categorized correctly. Nevertheless I will move it over for you.
  • Dynamic generation of category icons

    5
    10 Votes
    5 Posts
    199 Views
    scott@authorship.studioS
    Interesting. I received a repeat notification from @ActivityPub on my last comment. I suppose that is how you are acknowledging that my post was sent to people following that category. I like it.
  • Boosting fediverse posts into a local category

    4
    0 Votes
    4 Posts
    136 Views
    caesarC
    And yes, it works! It's certainly unintuitive but that's fair enough for a work in progress! It doesn't appear in the recent posts for that category (it was an empty category and still says "no new posts"), but that's a minor detail.
  • v4.0.0-beta.1 bugs & issues thread

    8
    0 Votes
    8 Posts
    205 Views
    caesarC
    Ok, found the problem. It only works with the privilege guests / View Users enabled. I had fediverse / View Users enabled anyway but that wasn't enough. I'm not sure if that's intended? I guess it makes sense in principle…
  • Pre-Alpha ActivityPub-related bug reports

    151
    10 Votes
    151 Posts
    8k Views
    thisismissem@socialhub.activitypub.rocksT
    There's probably a FEP that needs to exist explaining how polls on Mastodon even work, plus how they should work (it's not what you might expect)
  • 0 Votes
    7 Posts
    159 Views
    mariusor@metalhead.clubM
    @unexpectedteapot Thank you. Indeed I missed that distinction, sorry for the noise @hongminhee.
  • Explaining the fediverse is a hard problem.

    66
    10 Votes
    66 Posts
    3k Views
    kichae@catodon.socialK
    @omega @Kichae @baris @julian I think the only problem here is you assume people should be able to "grok" it.I don't think that's a problem. I think people should be able to understand that the Internet is a communications platform. Growing up on IRC isn't a requirement to intuiting this; the point there was that I people understood it there and then. People should be able to understand it here and now, too. They've just been trained otherwise.
  • FEP-7888 and the Add activity

    13
    2 Votes
    13 Posts
    286 Views
    shlee@aus.socialS
    @julian @thisismissem @trwnh makes sense as well for “followers only”… if you post a post with abuse and include someone.. It *could* reach the somebody and all of their followers as well boosted via their server (with controls. Opens the abuse vector slightly.
  • Mentions and notifications over the fediverse

    10
    1 Votes
    10 Posts
    319 Views
    mro@digitalcourage.socialM
    Hi @julian @Claire - but sending incorrect json you get neither as of today, do you?
  • 12 Votes
    9 Posts
    328 Views
    antonio5609@socialhub.activitypub.rocksA
    Hi,I think It would be helpful to include examples of common use cases for ActivityPub integration in NodeBB detailed setup instructions with screenshots and troubleshooting tips for potential issues users might encounter. Additionally a FAQ section addressing common questions could be valuable.Thanks
  • How do posts end up in World/Uncategorized?

    1
    0 Votes
    1 Posts
    111 Views
    B
    Hi everyone! With, I have to admit, invaluable help from one of the co-founders, yesterday I was finally able to complete configuration of the ActivityPub feature on my own NodeBB instance, and I'm now obviously trying and testing. I've read the few docs that are currently available on the Fediverse features, but I'm pretty confused on the World section, or Uncategorized category. I see how, on this instance (community.nodebb.org), that section is filled with many posts coming from many Fediverse instances. Totally random content, that doesn't mention this site or its users in any way, just like you could see on the "Global Timeline" of a software like Mastodon. On my instance, by contrast, no new posts arrive there, although in /admin/settings/activitypub it says the server knows 10 other instances (and growing). To be more specific, the category itself seems to work, and posts from the Fediverse can appear there, if they are either tagging one of the users of the forum, or posted from Lemmy inside the (broken, but that's an issue for another day) community generated from a forum category. Follow relationships don't seem to influence this at all: even if I follow a Fediverse account from the forum, and they follow my account on the forum, if they post something normally then it won't show up. I'm not sure if this is a bug, or if again a configuration error on my end. But inside NodeBB I don't see any option that could be tweaked, so who knows. However, I've noticed that some errors related to ActivityPub tend to appear when I run the server with ./nodebb --dev start, below is a sample snippet. Maybe they are related? [api] Exception caught, error with stack trace follows: TypeError [ERR_INVALID_URL]: Invalid URL at new NodeError (node:internal/errors:405:5) at new URL (node:internal/url:676:13) at inbox.delete (/Main/Server/SpaccBBS-NodeBB/src/activitypub/inbox.js:155:25) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Controller.postInbox (/Main/Server/SpaccBBS-NodeBB/src/controllers/activitypub/index.js:124:3)[api] Exception caught, error with stack trace follows: TypeError [ERR_INVALID_URL]: Invalid URL at new NodeError (node:internal/errors:405:5) at new URL (node:internal/url:676:13) at inbox.delete (/Main/Server/SpaccBBS-NodeBB/src/activitypub/inbox.js:155:25) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Controller.postInbox (/Main/Server/SpaccBBS-NodeBB/src/controllers/activitypub/index.js:124:3)2024-07-27T11:29:22.594Z [4567/190136] - verbose: [activitypub/get] Received 410 when querying https://social.vivaldi.net/users/helloleo2024#main-key 2024-07-27T11:29:22.594Z [4567/190136] - verbose: [activitypub/get] Error received: Gone 2024-07-27T11:29:44.906Z [4567/190136] - verbose: [activitypub/get] Received 410 when querying https://mastodon.social/users/fmhgshkj101#main-key 2024-07-27T11:29:44.907Z [4567/190136] - verbose: [activitypub/get] Error received: Gone [api] Exception caught, error with stack trace follows: TypeError [ERR_INVALID_URL]: Invalid URL at new NodeError (node:internal/errors:405:5) at new URL (node:internal/url:676:13) at inbox.delete (/Main/Server/SpaccBBS-NodeBB/src/activitypub/inbox.js:155:25) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Controller.postInbox (/Main/Server/SpaccBBS-NodeBB/src/controllers/activitypub/index.js:124:3) It could be that I'm missing something, considering also how the World section here doesn't show up every possible post in the Fediverse, otherwise after scrolling a few dozen entries we would see posts created just a few minutes ago, and not hours or days before; it would be a huge spam like we see on the official Mastodon instances, or any other big one. Maybe posts appear in World only after they have X number of comments? Or maybe an admin must boost them? How? I'm really lost..
  • Is it possible to enable ActivityPub in NodeBB 3.8.3?

    4
    0 Votes
    4 Posts
    123 Views
    julianJ
    @locationforums That's correct. You would have to switch to the activitypub branch to take advantage of this functionality. While you can switch back to master or whatever v3.x code, the data store might have changed, and so going back to v3.x is untested.
  • Additional categories now federating

    1
    1 Votes
    1 Posts
    123 Views
    julianJ
    The following categories are now federating: NodeBB Blog (@blog) — I'm not sure why I only just federated this one now, it makes so much sense to! Technical Support (@support) Developer FAQ (@developer-faq)
  • Changing the domain of an existing instance

    10
    2 Votes
    10 Posts
    258 Views
    silverpill@mitra.socialS
    @julian For FEP-ef61 you will likely need to refactor much more than ID generation. This can be done (@mikedev and I did it), and might even be worth the effort, because this FEP not only solves the problem you've described, but also takes ActivityPub to the whole new level.