Skip to content

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

Re: Expanding collections on delivery

Technical Discussion
3 2 0

Gli ultimi otto messaggi ricevuti dalla Federazione
  • @trwnh@mastodon.social I thought inbox forwarding between instances was a non-starter per the AP spec because you cannot guarantee that the activity hasn't been tampered with.

    I thought it must be paired with a signature of some sort.

    read more

  • @julian

    > group itself be the distributor

    well, naturally, i would suggest addressing both the group and its members. just like you would address both a person and their followers. or a moderated conversation and its audience. the way inbox forwarding works is that someone has to do the forwarding from their inbox. :)

    > list is hidden

    you don't need to know the items. that's private info, and you just need the id to be understood by the forwarder (who will themselves know the secret items)

    read more

  • @evan The groups (private groups, specifically) aspect is the reason why I brought up this topic at all — it was mostly for my understanding of the spec because to my knowledge, there weren't many collections being passed around in recipient fields; the only one being /follower, which isn't always resolvable.

    The same issues would occur around private groups... a public group publishing something a /members collection would be addressable, but not a private group or one whose membership list is hidden.

    All threadiverse softwares work around this by having the group itself be the distributor, and so you needn't address a members collection, you just need to ensure the group itself is addressed. The rest is implied (which HA! I bet @trwnh@mastodon.social has much to say about implied behaviour)

    read more

  • @silverpill @technical-discussion it's part of the outbox delivery algorithm, which bridges between c2s and s2s. the intention is that the outbox publishes activities via c2s, but then optionally delivers based on addressing properties via s2s

    (this ends up having other issues in practice due to the lack of an envelope, but at least the intent of "relevant activities should trigger notifications for relevant entities" makes sense, per 6.1 clients "look at" some relevant props)

    read more

  • @silverpill @julian @technical-discussion

    example: alice and bob on site.example each have followers collections, but alice can't see bob's followers. if alice addresses bob's followers collection, then alice's outbox can't deliver to bob's followers. alice must address bob, and bob can choose to forward to bob's followers (inbox forwarding)

    if site.example has a collection of "local users" that alice can see, then alice can address it and alice's outbox can deliver to items

    read more

  • @silverpill @julian @technical-discussion

    a "local collection" might still have access control on it.

    (the interface being assumed throughout the AP spec is HTTP, or at least HTTP semantics; "with the user's credentials" in this case means using an Authorization header that lets the outbox access the collection. it's only confusing if you have a monolith with no boundaries between the outbox and anything else; in that case it'd be "lookup the collection in your db/store/etc")

    read more

  • @julian Yes, I think in practice expansion should be performed only for local collections.

    the server MUST dereference the collection (with the user's credentials) is confusing, because it sounds like we're talking about remote collections here.

    @trwnh

    read more

  • @julian well, sure, with a monolithic implementation, the client and the outbox and the delivery agent are all the same app. but they don't have to be. the model is that the client submits to the outbox, and the outbox could also talk to a separate delivery agent internally. it's all opaque from outside the outbox. your internal "outbox" is the code that serializes activities and sends them to the delivery workers.

    read more
Post suggeriti
  • Expanding collections on delivery

    Technical Discussion activitypub
    15
    0 Votes
    15 Posts
    2 Views
    @silverpill @technical-discussion it's part of the outbox delivery algorithm, which bridges between c2s and s2s. the intention is that the outbox publishes activities via c2s, but then optionally delivers based on addressing properties via s2s(this ends up having other issues in practice due to the lack of an envelope, but at least the intent of "relevant activities should trigger notifications for relevant entities" makes sense, per 6.1 clients "look at" some relevant props)
  • 0 Votes
    1 Posts
    1 Views
    RE: https://theforkiverse.com/@klemens/115915313316598172this person is working on a mac app specifically for #theforkiverse #fedidev
  • Browser.Pub and Anubis

    Technical Discussion browserpub anubis
    3
    1 Votes
    3 Posts
    11 Views
    @js@podcastindex.social thanks! 🤘
  • ActivityPub API Client Reputation

    Technical Discussion
    10
    0 Votes
    10 Posts
    28 Views
    @evan said in ActivityPub API Client Reputation: > @thisismissem said in ActivityPub API Client Reputation: > > > I'm not actively working on any Mastodon features at the moment because they can't give credit where credit is due, which means it's not financially viable for me to contribute. I also just opened that ticket explaining the problem. CIMDs would fix. > > Oof. Let's hope they get around to it before the bad guys do. I'd rather we all don't learn a lesson about security the hard way. One could hope, but they weren't willing to back the huge amount of work to deprecate non-expiring access tokens, so that'll probably be exploited first, since there's quite literally millions of non-revoked access tokens out there. I tried to do the work to fix it on my own, but it's literally months of work to implement correctly with enough test coverage. Without them either paying me or promoting/acknowledging my work, I ran out of my own budget to be able fix their problems. > > You can't Flag a non-activitypub JSON document. > > I think you can, if you use the Link type. > > json > { > "@context": "https://www.w3.org/ns/activitystreams", > "type": "Flag", > "id": "https://social.example/activity/flag/1", > "actor": "https://social.example/user/3", > "object": { > "type": "Link", > "mediaType": "application/json", > "href": "https://client.dev/oauth/metadata.json" > }, > "content": "This is an example Flag activity for a CIMD document." > } > That'll flag it at this point in time, and the contents can change. And software in the fediverse is unlikely to be able to understand receiving a flag like that. > At the very least, manual moderation is important. "This app isn't allowed on this server." That depends on human judgement, CVE reports, whatever. Yeah, requires folks to actually build moderation tools for that and ensure moderating against an application revokes its access completely. Revoking access tokens doesn't prevent usage of data already harvested or whatever, but does prevent ongoing abuse