Spacc BBS Spacc BBS
    • Categorie
    • Recenti
    • Tag
    • Popolare
    • Mondo
    • Utenti
    • Gruppi
    • Registrati
    • Accedi
    La nuova BBS è in fase Alpha. I post precedenti al 22 luglio 2024 potrebbero non essere trasferibili, ma rimarranno disponibili per la lettura su /old/.

    Reconciling ActivityPub Deletes with NodeBB deletion

    Pianificato Fissato Bloccato Spostato Uncategorized
    activitypub
    16 Post 6 Autori 0 Visualizzazioni
    Caricamento altri post
    • Da Vecchi a Nuovi
    • Da Nuovi a Vecchi
    • Più Voti
    Rispondi
    • Topic risposta
    Effettua l'accesso per rispondere
    Questa discussione è stata eliminata. Solo gli utenti con diritti di gestione possono vederla.
    • julian@community.nodebb.orgJ Questo utente è esterno a questo forum
      julian@community.nodebb.org @blaue_fledermaus@mstdn.io
      ultima modifica di

      @blaue_Fledermaus@mstdn.io — interesting idea, but my gut feeling is no, because post visibility (which at present, NodeBB doesn't even support at all) and deletion are two separate properties in ActivityPub.

      One is defined in the object itself (to, cc, etc.), whereas if a post is deleted, it simply ceases to exist or becomes a Tombstone.

      1 Risposta Ultima Risposta Rispondi Cita 0
      • eeeee@community.nodebb.orgE Questo utente è esterno a questo forum
        eeeee@community.nodebb.org @julian@community.nodebb.org
        ultima modifica di

        Just my thought, but the whole Delete then Purge has always irritated me.
        Delete should just be Delete.
        If a Mod wants to temporarily hide something they could move post, or delete and keep a copy.
        The only thing Delete then Purge does is add extra step to removing something!

        julian@community.nodebb.orgJ angus@socialhub.activitypub.rocksA 2 Risposte Ultima Risposta Rispondi Cita 0
        • julian@community.nodebb.orgJ Questo utente è esterno a questo forum
          julian@community.nodebb.org @eeeee@community.nodebb.org
          ultima modifica di

          @eeeee said in Reconciling ActivityPub Deletes with NodeBB deletion:
          > The only thing Delete then Purge does is add extra step to removing something!

          Technically they needn't be two steps. You could just go straight to purge.

          We toyed with the idea of removing deletes altogether... not sure where we landed haha @baris?

          1 Risposta Ultima Risposta Rispondi Cita 0
          • soaproot@sfba.socialS Questo utente è esterno a questo forum
            soaproot@sfba.social
            ultima modifica di

            @julian I don't know ActivityPub well enough to have a detailed set of comments but this seems sensible. In particular, using Tombstone would seem to enable good handling of cases like a deleted post with replies to it.

            1 Risposta Ultima Risposta Rispondi Cita 0
            • ariadne@social.treehouse.systemsA Questo utente è esterno a questo forum
              ariadne@social.treehouse.systems @julian@community.nodebb.org
              ultima modifica di

              @julian i still say delete only makes sense as a cache invalidation when it comes to remote content. that hasn’t changed :)

              julian@community.nodebb.orgJ 1 Risposta Ultima Risposta Rispondi Cita 0
              • julian@community.nodebb.orgJ Questo utente è esterno a questo forum
                julian@community.nodebb.org @ariadne@social.treehouse.systems
                ultima modifica di

                @ariadne@social.treehouse.systems right. I think functionally I'll never encounter a Delete, check the origin, and find that the note hasn't actually been deleted, but stranger things have happened!

                1 Risposta Ultima Risposta Rispondi Cita 0
                • angus@socialhub.activitypub.rocksA Questo utente è esterno a questo forum
                  angus@socialhub.activitypub.rocks @julian@community.nodebb.org
                  ultima modifica di

                  @julian I'm focusing on Deletion (both Notes and Actors) in Discourse at the moment and I'm thinking of essentially adopting the approach you've outlined here. Have there been any updates to your approach since you wrote this?

                  julian@community.nodebb.orgJ 1 Risposta Ultima Risposta Rispondi Cita 0
                  • angus@socialhub.activitypub.rocksA Questo utente è esterno a questo forum
                    angus@socialhub.activitypub.rocks @eeeee@community.nodebb.org
                    ultima modifica di

                    eeeee:

                    The only thing Delete then Purge does is add extra step to removing something!

                    Discourse also uses a "soft delete" (we call it "Trash(ed)"). The main point of it is that it allows restoration if the delete was in error.

                    julian:

                    my gut feeling is no, because post visibility (which at present, NodeBB doesn't even support at all) and deletion are two separate properties in ActivityPub.

                    I agree.

                    1 Risposta Ultima Risposta Rispondi Cita 0
                    • julian@community.nodebb.orgJ Questo utente è esterno a questo forum
                      julian@community.nodebb.org @angus@socialhub.activitypub.rocks
                      ultima modifica di

                      No, there have been no major concerns arising out of this.

                      A couple observations:

                      1. There is a mismatch between what other instances expect for deletions and what actually happens. A Mastodon user deleting post expects it to be gone for good, but on our end it will simply be soft deleted. This isn't a major issue, it just means admins get to see all the deleted stuff (useful when people say hurtful things, delete them, and pretend they never happened.) Even then it's only a small percentage, most of the deleted stuff I see are for fixing typos.
                      2. I am reasonably sure that nobody else besides NodeBB (and now Discourse) knows what to do with an Update(Tombstone), so nothing happens. It means soft deleted posts on our end are essentially ignored and still visible.

                      The latter may actually be a concern and warrant an admin-side option to explicitly federate out a Delete.

                      1 Risposta Ultima Risposta Rispondi Cita 0
                      • angus@socialhub.activitypub.rocksA Questo utente è esterno a questo forum
                        angus@socialhub.activitypub.rocks
                        ultima modifica di

                        Thanks for clarifying.

                        julian:
                        1. I am reasonably sure that nobody else besides NodeBB (and now Discourse) knows what to do with an Update(Tombstone), so nothing happens. It means soft deleted posts on our end are essentially ignored and still visible.

                        The latter may actually be a concern and warrant an admin-side option to explicitly federate out a Delete.

                        Yeah, I'm currently weighing this one. I'm wondering whether Update(Tombstone) really makes sense. I can see why you took that approach. I'm just mulling the implications, particularly

                        julian:

                        It means soft deleted posts on our end are essentially ignored and still visible.

                        I'm currently thinking users may find this surprising and it may interfere with things like moderation. But I'm still mulling it.

                        julian@community.nodebb.orgJ 1 Risposta Ultima Risposta Rispondi Cita 0
                        • julian@community.nodebb.orgJ Questo utente è esterno a questo forum
                          julian@community.nodebb.org @angus@socialhub.activitypub.rocks
                          ultima modifica di

                          I can look into putting together an FEP for this. It would solidify the concepts and open it up for wider discussion if necessary.

                          1 Risposta Ultima Risposta Rispondi Cita 0
                          • angus@socialhub.activitypub.rocksA Questo utente è esterno a questo forum
                            angus@socialhub.activitypub.rocks
                            ultima modifica di

                            tbh the more I think about this, the more it feels like federating Update(Tombstone) is never going to work very well.

                            We'd first have to win the argument that federating Tombstones make sense at all. I found the arguments to the contrary relatively persuasive on that front (I know you're aware of this, but just giving context for other folks reading this):

                            Link Preview Image
                            The Delete Activity And It's Misconceptions

                            Instead of using my personal blog, I’m going to just start writing about ActivityPub here instead, as I think it is more useful to have a central repository of all knowledge relating to ActivityPub that is easily searcha…

                            favicon

                            SocialHub (socialhub.activitypub.rocks)

                            I wonder if we can't just do point 6 on your list:

                            If we receive a Delete(Note) (or Article, or Question, etc.) we will not delete it immediately. Instead, as kaniini advises, we will attempt to retrieve the object from the origin:

                            • If we see an as:Tombstone, we will delete the post (soft delete)
                            • If we encounter a 404 or 410, we will purge the post (hard delete)

                            So to play that out:

                            PublisherPost is deleted

                            1. On soft delete:
                              • Convert (Note|Article) to Tombstone
                              • Federate Delete(Note|Article)
                            2. On hard delete:
                              • Delete (Note|Article)
                              • Federate Delete(Note|Article)

                            ReceiverReceives Delete(Note|Article)

                            1. Remote (Note|Article) returns Tombstone
                              • Convert (Note|Article) to Tombstone
                              • Soft-delete associated post.
                            2. Remote (Note|Article) returns 404 (or 410)
                              • Delete (Note|Article)
                              • Hard-delete associated post.
                            julian@community.nodebb.orgJ 1 Risposta Ultima Risposta Rispondi Cita 0
                            • julian@community.nodebb.orgJ Questo utente è esterno a questo forum
                              julian@community.nodebb.org @angus@socialhub.activitypub.rocks
                              ultima modifica di

                              Agreed. That makes sense since receiving a Delete should trigger a cache invalidation, so there's no reason it need be a different activity. I will make the appropriate changes soon.

                              1 Risposta Ultima Risposta Rispondi Cita 0
                              • julian@community.nodebb.orgJ Questo utente è esterno a questo forum
                                julian@community.nodebb.org
                                ultima modifica di

                                Angus, while I haven't made the appropriate changes to NodeBB's implementation yet, I did draft an FEP including the changes we discussed.

                                https://github.com/julianlam/feps/blob/main/fep/15c5/fep-15c5.md

                                It is not PR'd upstream yet, but I will do so in the coming days unless there are some concerns.

                                1 Risposta Ultima Risposta Rispondi Cita 0
                                • Primo post
                                  Ultimo post