Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

Darkscribes Community

  1. Home
  2. Technical Discussion
  3. Topic removal from a category/community

Topic removal from a category/community

Scheduled Pinned Locked Moved Technical Discussion
piefed
24 Posts 5 Posters 207 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • silverpill@mitra.socialS [email protected]

    @rimu Still, I think it would be nice to deprecate Delete and slowly migrate to Remove(target: context), since both PieFed and Lemmy implement the context collection now.

    My server rejects Delete if its actor is different from object's owner, and I have to treat Announce(Delete) as a special case where the normal processing logic doesn't apply.

    rimu@piefed.socialR This user is from outside of this forum
    rimu@piefed.socialR This user is from outside of this forum
    [email protected]
    wrote on last edited by
    #8

    Possibly although the differences of federation between the threadiverse and the rest of the fediverse go way beyond deletes. FEP 1b12 is a whole thing, chipping away at it piece by piece would be slow going.

    julian@activitypub.spaceJ 2 Replies Last reply
    0
    • rimu@piefed.socialR [email protected]

      Possibly although the differences of federation between the threadiverse and the rest of the fediverse go way beyond deletes. FEP 1b12 is a whole thing, chipping away at it piece by piece would be slow going.

      julian@activitypub.spaceJ This user is from outside of this forum
      julian@activitypub.spaceJ This user is from outside of this forum
      [email protected]
      wrote on last edited by
      #9

      Personally I think 1b12 doesn't need to be changed or hacked around. It doesn't specifically call for federating out deletes so I'd think any solution we come up with together would work with that FEP, not go against it.

      cc [email protected] (if your app notifies you of new replies without a direct mention I'll stop tagging you too)

      julian@community.nodebb.orgJ 1 Reply Last reply
      0
      • julian@activitypub.spaceJ [email protected]

        Personally I think 1b12 doesn't need to be changed or hacked around. It doesn't specifically call for federating out deletes so I'd think any solution we come up with together would work with that FEP, not go against it.

        cc [email protected] (if your app notifies you of new replies without a direct mention I'll stop tagging you too)

        julian@community.nodebb.orgJ This user is from outside of this forum
        julian@community.nodebb.orgJ This user is from outside of this forum
        [email protected]
        wrote on last edited by
        #10

        I also think that backfill will have a side effect of connecting the threadiverse and the rest of the fediverse.

        Exposing context collections will mean consumers will be able to see both *verses. Once Mastodon starts consuming them I predict you will start seeing much more engagement from the microblogs.

        The same would apply if Piefed or Lemmy begin consuming them as well.

        That is an angle I had not even considered until now!

        1 Reply Last reply
        0
        • silverpill@mitra.socialS This user is from outside of this forum
          silverpill@mitra.socialS This user is from outside of this forum
          [email protected]
          wrote on last edited by
          #11

          @julian

          if your app notifies you of new replies without a direct mention I'll stop tagging you too

          Inclusion in to or cc is enough to generate a notification.

          1 Reply Last reply
          0
          • rimu@piefed.socialR [email protected]

            Possibly although the differences of federation between the threadiverse and the rest of the fediverse go way beyond deletes. FEP 1b12 is a whole thing, chipping away at it piece by piece would be slow going.

            julian@activitypub.spaceJ This user is from outside of this forum
            julian@activitypub.spaceJ This user is from outside of this forum
            [email protected]
            wrote on last edited by
            #12

            [email protected] [email protected] I gave this a bit more thought and I am coming around to the idea that Remove could work.

            I am assuming that when Piefed sends Announce(Delete(Object)) this is only understood by Piefed? Not Lemmy (and certainly not NodeBB, yet)...

            In that case, a move to a simpler Remove(target: context) signed and acted on by the community actor, would send a more explicit message that the object was removed from the community.

            The "1b12-speaking" portion of it would be an Undo(Announce(Create)), although once again I am not even sure if that action is understood by Piefed/Lemmy.

            rimu@piefed.socialR 1 Reply Last reply
            0
            • julian@activitypub.spaceJ [email protected]

              [email protected] [email protected] I gave this a bit more thought and I am coming around to the idea that Remove could work.

              I am assuming that when Piefed sends Announce(Delete(Object)) this is only understood by Piefed? Not Lemmy (and certainly not NodeBB, yet)...

              In that case, a move to a simpler Remove(target: context) signed and acted on by the community actor, would send a more explicit message that the object was removed from the community.

              The "1b12-speaking" portion of it would be an Undo(Announce(Create)), although once again I am not even sure if that action is understood by Piefed/Lemmy.

              rimu@piefed.socialR This user is from outside of this forum
              rimu@piefed.socialR This user is from outside of this forum
              [email protected]
              wrote on last edited by
              #13

              only understood by Piefed? Not Lemmy

              No, that's a Lemmy thing too.

              julian@activitypub.spaceJ julian@community.nodebb.orgJ 2 Replies Last reply
              0
              • rimu@piefed.socialR [email protected]

                only understood by Piefed? Not Lemmy

                No, that's a Lemmy thing too.

                julian@activitypub.spaceJ This user is from outside of this forum
                julian@activitypub.spaceJ This user is from outside of this forum
                [email protected]
                wrote on last edited by
                #14

                Oh okay. I wasn't sure about that since I don't think it's documented in the FEP, though it's been awhile since I've given it a read through.

                1 Reply Last reply
                0
                • rimu@piefed.socialR [email protected]

                  only understood by Piefed? Not Lemmy

                  No, that's a Lemmy thing too.

                  julian@community.nodebb.orgJ This user is from outside of this forum
                  julian@community.nodebb.orgJ This user is from outside of this forum
                  [email protected]
                  wrote last edited by
                  #15

                  [email protected] Do you send the Undo(Announce(Create)) as well for microblog compatibility?

                  1 Reply Last reply
                  0
                  • rimu@piefed.socialR This user is from outside of this forum
                    rimu@piefed.socialR This user is from outside of this forum
                    [email protected]
                    wrote last edited by
                    #16

                    Looks like for Mastodon we just do a bare Delete.

                    julian@community.nodebb.orgJ 1 Reply Last reply
                    0
                    • rimu@piefed.socialR [email protected]

                      Looks like for Mastodon we just do a bare Delete.

                      julian@community.nodebb.orgJ This user is from outside of this forum
                      julian@community.nodebb.orgJ This user is from outside of this forum
                      [email protected]
                      wrote last edited by [email protected]
                      #17

                      [email protected] got it, thanks. How do you reconcile the Delete coming from outside your domain? I would figure Mastodon would drop those Deletes.

                      Edit: that was confusing wording... I mean — how do you sign a Delete for an object that doesn't belong to your instance?

                      1 Reply Last reply
                      0
                      • rimu@piefed.socialR This user is from outside of this forum
                        rimu@piefed.socialR This user is from outside of this forum
                        [email protected]
                        wrote last edited by
                        #18

                        We only federate the deletion if it is in one of our local communities.

                        The activity is signed by the person who did it, so if Mastodon detects that the person deleting is not the author and doesn't know how to find out if someone is a moderator or not, that's their problem.

                        Mastodon has been dropping the ball on groups support for years so I didn't even bother to find out if they handle it well - I bet they don't.

                        silverpill@mitra.socialS 1 Reply Last reply
                        0
                        • rimu@piefed.socialR [email protected]

                          We only federate the deletion if it is in one of our local communities.

                          The activity is signed by the person who did it, so if Mastodon detects that the person deleting is not the author and doesn't know how to find out if someone is a moderator or not, that's their problem.

                          Mastodon has been dropping the ball on groups support for years so I didn't even bother to find out if they handle it well - I bet they don't.

                          silverpill@mitra.socialS This user is from outside of this forum
                          silverpill@mitra.socialS This user is from outside of this forum
                          [email protected]
                          wrote last edited by
                          #19

                          @rimu

                          so if Mastodon detects that the person deleting is not the author and doesn’t know how to find out if someone is a moderator or not, that’s their problem.

                          It is not their problem. If your actor Deletes an object that is owned by a different server, then your implementation of ActivityPub standard is incorrect:

                          https://www.w3.org/TR/activitypub/#delete-activity-inbox

                          The side effect of receiving this is that (assuming the object is owned by the sending actor / server) the server receiving the delete activity SHOULD remove its representation of the object with the same id

                          @julian

                          julian@community.nodebb.orgJ 1 Reply Last reply
                          0
                          • silverpill@mitra.socialS [email protected]

                            @rimu

                            so if Mastodon detects that the person deleting is not the author and doesn’t know how to find out if someone is a moderator or not, that’s their problem.

                            It is not their problem. If your actor Deletes an object that is owned by a different server, then your implementation of ActivityPub standard is incorrect:

                            https://www.w3.org/TR/activitypub/#delete-activity-inbox

                            The side effect of receiving this is that (assuming the object is owned by the sending actor / server) the server receiving the delete activity SHOULD remove its representation of the object with the same id

                            @julian

                            julian@community.nodebb.orgJ This user is from outside of this forum
                            julian@community.nodebb.orgJ This user is from outside of this forum
                            [email protected]
                            wrote last edited by
                            #20

                            I think Announce(Delete(Object)) skirts around that, though. Maybe not if you're being technical about it, but the shape of the activity is different enough to mean something else in 1b12-land:

                            • A community/group-actor announced a Delete
                            • The object may or may not belong to the same domain as the community/group-actor or Delete actor
                            • Verify that the community/group-actor and Delete actor are same-origin (might not need this if cross-instance moderation is a thing)
                            • Verify that the Delete actor is a moderator of the community/group-actor as per 1b12
                            1 Reply Last reply
                            0
                            • silverpill@mitra.socialS This user is from outside of this forum
                              silverpill@mitra.socialS This user is from outside of this forum
                              [email protected]
                              wrote last edited by
                              #21

                              @julian @rimu No, when one object is embedded in another, it doesn't change its behavior. A Delete activity wrapped in Announce doesn't mean something else, it exists as an independent object that can be fetched by its id.

                              The invalid Delete activity worked for Lemmy only because they didn't care about federation with non-forum software. But it can't work in the multi-app network without ugly hacks like checking remote server's NodeInfo.

                              julian@activitypub.spaceJ 1 Reply Last reply
                              0
                              • silverpill@mitra.socialS [email protected]

                                @julian @rimu No, when one object is embedded in another, it doesn't change its behavior. A Delete activity wrapped in Announce doesn't mean something else, it exists as an independent object that can be fetched by its id.

                                The invalid Delete activity worked for Lemmy only because they didn't care about federation with non-forum software. But it can't work in the multi-app network without ugly hacks like checking remote server's NodeInfo.

                                julian@activitypub.spaceJ This user is from outside of this forum
                                julian@activitypub.spaceJ This user is from outside of this forum
                                [email protected]
                                wrote last edited by
                                #22

                                Perhaps resolvable contexts can be a solution for this then.

                                I have been implementing topic deletion logic in NodeBB, and while I can send out Announce(Delete(Object)) where Object is the root-level post, it occasionally would send out Deletes where the sender is not the owner of the object. This is the 1b12-speaking logic.

                                In 7888-speaking logic, Object would be the local context collection. A receiver would be able to resolve the context URL to the appropriate local representation and delete it as needed. This would also satisfy the "sender needs to own the object" constraint.

                                silverpill@mitra.socialS 1 Reply Last reply
                                0
                                • julian@activitypub.spaceJ [email protected]

                                  Perhaps resolvable contexts can be a solution for this then.

                                  I have been implementing topic deletion logic in NodeBB, and while I can send out Announce(Delete(Object)) where Object is the root-level post, it occasionally would send out Deletes where the sender is not the owner of the object. This is the 1b12-speaking logic.

                                  In 7888-speaking logic, Object would be the local context collection. A receiver would be able to resolve the context URL to the appropriate local representation and delete it as needed. This would also satisfy the "sender needs to own the object" constraint.

                                  silverpill@mitra.socialS This user is from outside of this forum
                                  silverpill@mitra.socialS This user is from outside of this forum
                                  [email protected]
                                  wrote last edited by
                                  #23

                                  @julian

                                  Delete(Context)? This is very unusual because other collections are not created or deleted, they are server-generated views.

                                  I assume this problem arises when you create a topic for a remote post? Perhaps deletion of such topics shouldn't be federated?

                                  Or you can generate

                                  Announce(Remove(object: root, target: Context))
                                  

                                  It would be valid from the authorization point of view.

                                  julian@community.nodebb.orgJ 1 Reply Last reply
                                  0
                                  • silverpill@mitra.socialS [email protected]

                                    @julian

                                    Delete(Context)? This is very unusual because other collections are not created or deleted, they are server-generated views.

                                    I assume this problem arises when you create a topic for a remote post? Perhaps deletion of such topics shouldn't be federated?

                                    Or you can generate

                                    Announce(Remove(object: root, target: Context))
                                    

                                    It would be valid from the authorization point of view.

                                    julian@community.nodebb.orgJ This user is from outside of this forum
                                    julian@community.nodebb.orgJ This user is from outside of this forum
                                    [email protected]
                                    wrote last edited by [email protected]
                                    #24

                                    Well, the whole idea behind them being resolvable is so that when they are acted upon (by the context owner), they can be queried.

                                    For example if I receive a Delete(Context), I'll resolve it to find the root level post, and from there find my local representation, and delete it, assuming the actor was allowed to delete it.

                                    They're only server generated views per current usage... but why do they have to be constrained to that usage?

                                    1 Reply Last reply
                                    0
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes


                                    • Login

                                    • Don't have an account? Register

                                    • Login or register to search.
                                    Powered by NodeBB Contributors
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • Users
                                    • Groups