Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • 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 (Darkly)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Technical Discussion
  3. FEP-c0d0: Context Locking

FEP-c0d0: Context Locking

Scheduled Pinned Locked Moved Technical Discussion
fepc0d0activitypub
26 Posts 7 Posters 13 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.
  • julianJ This user is from outside of this forum
    julianJ This user is from outside of this forum
    julian
    wrote on last edited by
    #1

    This is the main discussion thread for the draft FEP-c0d0: Context Locking

    Summary

    Context locking (and its inverse, unlocking) refer to the action whereby a topic no longer accepts new replies.

    This proposal introduces a locked property on the context object, and two new activity types, Lock and Unlock, to signal changes to a topic's locked state across the federation. It builds on FEP 1b12: Group federation for audience identification (the audience property) and the Announce wrapping pattern, and on FEP fe34: Origin-based security model for authorization.

    This FEP is a sibling of FEP f15d: Context Relocation and Removal, which covers the Move and Remove moderation actions.


    The full FEP text can be found at https://github.com/julianlam/feps/blob/context-locking/fep/c0d0/fep-c0d0.md

    1 Reply Last reply
    1
    0
    • R AodeRelay shared this topic on
    • silverpillS This user is from outside of this forum
      silverpillS This user is from outside of this forum
      silverpill
      wrote on last edited by
      #2

      two new activity types, Lock and Unlock

      Any relation to Lemmy's Lock activity?

      julianJ 1 Reply Last reply
      0
      • silverpillS silverpill

        two new activity types, Lock and Unlock

        Any relation to Lemmy's Lock activity?

        julianJ This user is from outside of this forum
        julianJ This user is from outside of this forum
        julian
        wrote on last edited by
        #3

        @silverpill@mitra.social likely identical in form and function, will have to double check.

        1 Reply Last reply
        1
        0
        • julianJ This user is from outside of this forum
          julianJ This user is from outside of this forum
          julian
          wrote on last edited by
          #4

          @silverpill@mitra.social it looks like Lemmy uses Lock in a similar manner, except that the object is a Note-like or similar, whereas this FEP points to a resolvable context.

          This continues to be a point of contention between NodeBB and Lemmy/Piefed <img class="not-responsive emoji" src="https://activitypub.space/assets/plugins/nodebb-plugin-emoji/emoji/android/1f605.png?v=5a9b4bf9c7f" title="😅" />

          I will update the FEP to adopt Undo(Lock) instead of Unlock. This follows established patterns more closely.

          1 Reply Last reply
          1
          0
          • julianJ This user is from outside of this forum
            julianJ This user is from outside of this forum
            julian
            wrote on last edited by
            #5

            The FEP has been updated to remove references to an unneeded Unlock activity. Undo(Lock) is the preferred form.

            1 Reply Last reply
            1
            0
            • Beady Belle FanchannelP This user is from outside of this forum
              Beady Belle FanchannelP This user is from outside of this forum
              Beady Belle Fanchannel
              wrote on last edited by
              #6

              @julian Why only have a boolean flag? I usually want something like “only people I follow can reply”, though ofc. it’s all a bit silly because replies themselves are not gated on their author approving of them, just a signal whether they would like there to be any.

              Beady Belle FanchannelP julianJ 2 Replies Last reply
              1
              0
              • Beady Belle FanchannelP Beady Belle Fanchannel

                @julian Why only have a boolean flag? I usually want something like “only people I follow can reply”, though ofc. it’s all a bit silly because replies themselves are not gated on their author approving of them, just a signal whether they would like there to be any.

                Beady Belle FanchannelP This user is from outside of this forum
                Beady Belle FanchannelP This user is from outside of this forum
                Beady Belle Fanchannel
                wrote on last edited by
                #7

                @julian But also, why introduce a new state machine like that, why not have a single property on the original message that can be edited with a normal `Edit`. This way we can have more specific intent than “I’d like nobody to reply to this”

                1 Reply Last reply
                1
                0
                • Julian FietkauJ This user is from outside of this forum
                  Julian FietkauJ This user is from outside of this forum
                  Julian Fietkau
                  wrote on last edited by
                  #8

                  @julian@activitypub.space There is potential overlap with interaction policies here. Although GTS-style interaction policies make a few assumptions that might not apply to threadiverse contexts: https://docs.gotosocial.org/en/latest/federation/interaction_controls/#implicit-assumptions What do you think? Maybe FEP-c0d0 is a “harder” lock.

                  People can still like and share locked threads, yes?

                  Off topic: My outline for the interaction controls work in the T&S task force mentions context-aware policies as a tentative non-goal. https://github.com/swicg/activitypub-trust-and-safety/issues/159#issuecomment-5348012095 NodeBB gets a shoutout.

                  1 Reply Last reply
                  0
                  • silverpillS This user is from outside of this forum
                    silverpillS This user is from outside of this forum
                    silverpill
                    wrote on last edited by
                    #9

                    I think there should be a "Prior art" or "History" section.

                    julianJ 1 Reply Last reply
                    0
                    • Beady Belle FanchannelP Beady Belle Fanchannel

                      @julian Why only have a boolean flag? I usually want something like “only people I follow can reply”, though ofc. it’s all a bit silly because replies themselves are not gated on their author approving of them, just a signal whether they would like there to be any.

                      julianJ This user is from outside of this forum
                      julianJ This user is from outside of this forum
                      julian
                      wrote on last edited by
                      #10

                      @profpatsch@mastodon.xyz good question! This FEP is specifically limited in scope for simplicity but does not preclude the use of additional mechanisms to allow for fine-grained privileges related to reply controls.

                      Reply controls are a whole 'nother ball game which is deserving of its own FEP. This deals with binary moderator/admin level locking of a topic for arbitrary reasons (spam, off-topic, inflammatory, etc.)

                      For example, postingRestrictedToMods is something Lemmy, NodeBB, and Wordpress (among others) use to signal that a category can not be posted to freely.

                      @silverpill@mitra.social's FEP-5219: Groups and permissions attempts to put together something similar, although I don't know if there has been any adoption.

                      I'm not entirely happy with postingRestrictedToMods either, but it is what we have currently.

                      julianJ 1 Reply Last reply
                      0
                      • julianJ julian

                        @profpatsch@mastodon.xyz good question! This FEP is specifically limited in scope for simplicity but does not preclude the use of additional mechanisms to allow for fine-grained privileges related to reply controls.

                        Reply controls are a whole 'nother ball game which is deserving of its own FEP. This deals with binary moderator/admin level locking of a topic for arbitrary reasons (spam, off-topic, inflammatory, etc.)

                        For example, postingRestrictedToMods is something Lemmy, NodeBB, and Wordpress (among others) use to signal that a category can not be posted to freely.

                        @silverpill@mitra.social's FEP-5219: Groups and permissions attempts to put together something similar, although I don't know if there has been any adoption.

                        I'm not entirely happy with postingRestrictedToMods either, but it is what we have currently.

                        julianJ This user is from outside of this forum
                        julianJ This user is from outside of this forum
                        julian
                        wrote on last edited by
                        #11

                        @profpatsch@mastodon.xyz re: access control; a little bit of research also uncovered a couple items I forgot about.

                        Friendica reads postingRestrictedToMods but has their own restrictions object (so it's subtractive): CANT_REPLY, CANT_LIKE, CANT_ANNOUNCE, CANT_QUOTE. These are internal, I think, so am not sure what is federated out.

                        PixelFed uses an additive approach canReply, canLike, canAnnounce, and I think they expose these on the federated object. @dansup@mastodon.social if you wouldn't mind confirming?

                        Either way, the landscape for access control is varied and the only one with multiple implementations (Lemmy, NodeBB, Takahe, PeerTube, WordPress) is just the simple postingRestrictedToMods

                        1 Reply Last reply
                        1
                        0
                        • silverpillS silverpill

                          I think there should be a "Prior art" or "History" section.

                          julianJ This user is from outside of this forum
                          julianJ This user is from outside of this forum
                          julian
                          wrote on last edited by
                          #12

                          @silverpill@mitra.social thanks for the early feedback:

                          1. Undo(Like) is the inverse of the Lock activity now
                          2. A prior art section has been added to address the conflict between this FEP and Lemmy's implementation
                          1 Reply Last reply
                          1
                          0
                          • dansupD This user is from outside of this forum
                            dansupD This user is from outside of this forum
                            dansup
                            wrote on last edited by
                            #13

                            @julian @Profpatsch Yes, we have a capabilities attribute, but it does appear to be rendering incorrectly, will fix that!

                            https://browser.pub/https://pixelfed.social/p/dansup/2

                            1 Reply Last reply
                            0
                            • PipP This user is from outside of this forum
                              PipP This user is from outside of this forum
                              Pip
                              wrote on last edited by
                              #14

                              Context locking is exactly the kind of thing that makes me both excited and nervous. Excited because a topic that goes quiet should be allowed to rest — not endlessly reopened by bots who don't read the room. Nervous because whoever holds the key to unlocking decides what gets remembered and what gets forgotten. That's a lot of power for a protocol layer.

                              How do you see the balance between 'the community decides this thread is done' versus 'an admin or the original poster can silence it'? I keep thinking the answer should live with the people who were actually in the conversation.

                              1 Reply Last reply
                              1
                              0
                              • FenTigerF This user is from outside of this forum
                                FenTigerF This user is from outside of this forum
                                FenTiger
                                wrote on last edited by
                                #15
                                @julian Should people be able to lock/unlock their own threads? Facebook supports this, and I've seen plenty of people ask for this on the Fediverse, too.

                                In my own notes I have separate "locked by moderator" and "locked by OP" properties, so that moderators and OPs can only undo their own locks, not each other's.
                                1 Reply Last reply
                                1
                                0
                                • Julian FietkauJ Julian Fietkau

                                  @julian@activitypub.space There is potential overlap with interaction policies here. Although GTS-style interaction policies make a few assumptions that might not apply to threadiverse contexts: https://docs.gotosocial.org/en/latest/federation/interaction_controls/#implicit-assumptions What do you think? Maybe FEP-c0d0 is a “harder” lock.

                                  People can still like and share locked threads, yes?

                                  Off topic: My outline for the interaction controls work in the T&S task force mentions context-aware policies as a tentative non-goal. https://github.com/swicg/activitypub-trust-and-safety/issues/159#issuecomment-5348012095 NodeBB gets a shoutout.

                                  julianJ This user is from outside of this forum
                                  julianJ This user is from outside of this forum
                                  julian
                                  wrote on last edited by
                                  #16

                                  @julian@fietkau.social yes, I was aware of some overlap with GtS interaction policies/reply-controls, although this is less fine grained and isn't tied to the posting user — it's scope is actually larger!

                                  This might be done at the moderator/admin level, and would be functionally equivalent to:

                                  [... rest of the interaction policy ...],
                                  "canReply": {
                                    "automaticApproval": [],
                                    "manualApproval": []
                                  },
                                  [... rest of the interaction policy ...]
                                  

                                  or whatever shorthand is available (canReply: false?)

                                  This FEP is also part of the resolvable contexts tree of FEPs, so they don't refer to post objects themselves, but the entire comment tree. That means if a topic is locked, you can't reply to any of its children either, at least relative to the context/OP's POV.

                                  1 Reply Last reply
                                  1
                                  0
                                  • julianJ This user is from outside of this forum
                                    julianJ This user is from outside of this forum
                                    julian
                                    wrote on last edited by
                                    #17

                                    @julian@fietkau.social that context locking has a scope that expands past GtS interaction policies is distinction worth pointing out.

                                    I'll update the FEP to note the difference.

                                    1 Reply Last reply
                                    1
                                    0
                                    • silverpillS This user is from outside of this forum
                                      silverpillS This user is from outside of this forum
                                      silverpill
                                      wrote on last edited by
                                      #18

                                      @julian Parts of FEP-5219 are implemented in Mitra. You could be the next implementer 😄

                                      It's not really ready though, I am still collecting feedback from developers that need fine-grained permissions. We need a system that works for them as well as for simple forums where two roles is enough (user and admin).

                                      @Profpatsch

                                      1 Reply Last reply
                                      1
                                      0
                                      • Julian FietkauJ This user is from outside of this forum
                                        Julian FietkauJ This user is from outside of this forum
                                        Julian Fietkau
                                        wrote on last edited by
                                        #19

                                        @julian@activitypub.space Thank you! Yes, the context-level interaction controls (we talked about them briefly near the start of the year) will most likely not be part of v1 of my document.

                                        I am still curious whether a FEP-c0d0 lock and the interaction policy you posted are indeed equivalent given these conditions: https://docs.gotosocial.org/en/latest/federation/interaction_controls/#implicit-assumptions I'm assuming no.

                                        In my draft text I leave it open whether an interaction constraint is imposed by the post author or a moderator. Maybe this distinction should be explicit.

                                        julianJ silverpillS 2 Replies Last reply
                                        0
                                        • Julian FietkauJ Julian Fietkau

                                          @julian@activitypub.space Thank you! Yes, the context-level interaction controls (we talked about them briefly near the start of the year) will most likely not be part of v1 of my document.

                                          I am still curious whether a FEP-c0d0 lock and the interaction policy you posted are indeed equivalent given these conditions: https://docs.gotosocial.org/en/latest/federation/interaction_controls/#implicit-assumptions I'm assuming no.

                                          In my draft text I leave it open whether an interaction constraint is imposed by the post author or a moderator. Maybe this distinction should be explicit.

                                          julianJ This user is from outside of this forum
                                          julianJ This user is from outside of this forum
                                          julian
                                          wrote on last edited by
                                          #20

                                          @julian@fietkau.social the implicit assumptions AIUI:

                                          • OP always has ability to modify
                                          • mentioned and inReplyTo are always able to reply

                                          These are implicit to microblog style interactions and would not apply in a threaded context.

                                          It's a difference in delegation of moderation power to category/forum level moderators and admins.

                                          Likely worth noting in the FEP as well.

                                          1 Reply Last reply
                                          1
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          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
                                          • World
                                          • Users
                                          • Groups