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

Recently, there was a discussion about generic #ActivityPub servers.

Moved Technical Discussion
9 5 0

Gli ultimi otto messaggi ricevuti dalla Federazione
  • Yes, I think I like the idea of clients being able to store data on the server however they like. It reminds me of this description of ATProto that I found recently: https://overreacted.io/a-social-filesystem/

    I guess my question is: once I store my custom stuff in custom places on my server, how do I publish this so other people can find?

    And, object IDs are usually defined by the server. So how would it work to say "create a collection named XYZ and add this object to it"?

    @silverpill @mariusor @trwnh

    read more

  • @benpate @silverpill in a client managed followers collection i would Add you to my followers just like fedi instances currently do silently. "but how can you prove--" yes exactly, how can current fedi prove anyone is a follower either? you need the Follow+Accept pair to both be live without an Undo on either, right? and that's what leads to the "follow state machine" on fedi that drifts out of sync and leads to private posts being leaked to removed followers (which you can't officially do!)

    read more

  • @benpate @silverpill @mariusor none of the IDs should have any semantics; from the outside, there is no distinction between a client managed or server managed collection. likes/shares/etc could be managed by a "client" like mastodon, or even a "default" one. it's not any more complex unless you want to vary the collection responses based on the request headers. for that you need a minimal dynamic layer with an access control policy of some sort. (WAC is the simplest, but ACP is more powerful)

    read more

  • @silverpill @mariusor @trwnh

    I e*love* this idea- especially in principle. I say that because I’m having a hard time wrapping my head around this and how it would be used in practice.

    Do you think you could post an example workflow (or three) to demonstrate how this would work?

    I get that objects could be added to client-defined collections (very cool) but if object/collection IDs don’t have predefined semantics, how will I know where to look to get the data I need?

    read more

  • > The thanks was for your input with regards to collection management.

    @silverpill of course, sorry for the misunderstanding. Doubly so, for forgetting Mitra is Rust, I remembered it to be Python. :D

    And yes, the difficulty is indeed in massaging JSON-LD documents into strongly typed data that are meaningful for library consumers. However I've not despaired yet... there's light at the end of that boring tunnel. :P

    read more

  • @julian It looks simple on the surface, but in reality it is much more complicated than a non-generic server. In addition to activity transfer, generic server needs to maintain collections. First of all, a followers collection, which is often used as a delivery target. Then likes, shares etc. It needs to enforce permissions, to prevent actors on the same server from deleting each other posts.

    This is doable if you only care about activities defined in ActivityPub. But then you want to introduce context collection. And then 50 other extensions. How to do that without special-casing every one of them?

    This is where duck typing (FEP-2277) and unified security model (FEP-fe34) become really handy. No matter what the client sends, you can figure out what it is (an object, an actor, or a collection), and enforce permissions.

    read more

  • @silverpill@mitra.social I find it curious that this needs to be spelled out in an FEP.

    Isn't a generic AP server one that ingests anything and shoves it into the outbox... like a mail transfer agent?

    ... then delivers it dutifully?

    I mean, sure, you can do stuff in between, like spam detection, blocklists, etc etc etc...

    My quick read through of the FEP (and it was quick, because it was a short FEP :stuck_out_tongue:) seems to confirm this.

    read more

  • @silverpill lol, based on the "claims" at the begining, why do I feel like the "thanks" at the end should be in quotations?

    Also I take umbrage with calling what I've been doing for the past 8 years as "being not difficult to build nor an interesting concept". I feel like you, and other developers having the benefit of dynamically typed programming languages, underestimate how that can be worked into robust APIs when you're limited by less versatile stacks.

    read more
Post suggeriti
  • 0 Votes
    8 Posts
    47 Views
    @ivan grazie Ivan! And side note: I saw the post in my feed because I follow you but my mention is "broken" - is it because my username starts with an underscore? Just pointing this out in case it's a potential bug...@mayel @hongminhee @admin
  • 0 Votes
    21 Posts
    57 Views
    @SimonTB @javahippie no fosdem for me unfortunately. Keep an eye out for the first commits. Still mulling over a testing strategy that is manageable and not too complex.
  • ** ** *_* / /

    General Discussion gemini gopher guppy fediverse activitypub
    1
    0 Votes
    1 Posts
    11 Views
    ** ** *_* / /_____ ____ / /_(_) /__ / **/ ** \/ ** \/ **/ / //_// /_/ /_/ / /_/ / /_/ / ,< \__/\____/\____/\__/_/_/|_| tootik v0.19.9=> https://github.com/dimkr/tootiktootik is a federated nanoblogging service for the small internet.tootik allows people to participate in the fediverse using their Gemini, Gopher or Finger client of choice and makes the fediverse lighter, more private and more accessible. tootik's interface strips content to bare essentials (like text and links), puts the users in control of the content they see and tries to "slow down" the fediverse to make it more compatible with the slower pace of the small internet.It's a single executable that handles both the federation (using ActivityPub) and the frontend (using Gemini) aspects, while sqlite takes care of persistency. It should be lightweight and efficient enough to host a small community even on a cheap server, and hopefully, be easy to hack on.tootik implements only a small subset of ActivityPub, and probably doesn't really conform to the spec.Changelog:=> https://github.com/dimkr/tootik/releases/tag/v0.19.9#Gemini #Gopher #Guppy #Fediverse #ActivityPub
  • 0 Votes
    1 Posts
    13 Views
    I'm working on federation issues.πŸ‘» Release v3.1.2 of Ktistec improves support for Lemmy and community servers like it that distribute content by wrapping it in Announce activities (FEP-1b12: Group federation support). Ktistec also supports the audience property, although support for that was removed from Lemmy earlier this year.πŸŽƒ This release also adds support for delivering to shared inboxes, which are widely supported by other ActivityPub servers. Despite being federated, the Fediverse is not highly distributed, and this optimization can reduce outbound delivery traffic by 10-20x.AddedSupport for the Dislike activity.Support for the audience property on activities and objects.Support for delivery to shared inboxes.Support for full-width hash signs in hashtags (e.g. οΌƒζ—₯本θͺž) commonly used in Japanese and other Asian languages.FixedStrip HTML from object summaries rather than escaping it.Properly unwrap Lemmy-style Announce activities.ChangedDestroy discarded drafts instead of deleting them.Enjoy!#ktistec #fediverse #activitypub #crystallang