Skip to content
0
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
  • 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 (No Skin)
  • No Skin
Collapse
Brand Logo

fedi wiki

  1. Home
  2. Technical Discussion
  3. FEP-bebd: Follow Invites

FEP-bebd: Follow Invites

Scheduled Pinned Locked Moved Technical Discussion
fepbebdfepfedidev
12 Posts 5 Posters 76 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 This user is from outside of this forum
    silverpill@mitra.socialS This user is from outside of this forum
    silverpill@mitra.social
    wrote on last edited by
    #3

    @maddyunderstars Your FEP has been added to the repository: https://codeberg.org/fediverse/fep/src/branch/main/fep/bebd/fep-bebd.md

    @julian Private FEP-1b12 groups exist in Lemmy 1.0beta. I am already testing them, but there are still some issues with the federation (I am also working on a FEP that covers access control and user roles in FEP-1b12 groups)

    maddyunderstars@aus.socialM 1 Reply Last reply
    1
    • silverpill@mitra.socialS silverpill@mitra.social

      @maddyunderstars Your FEP has been added to the repository: https://codeberg.org/fediverse/fep/src/branch/main/fep/bebd/fep-bebd.md

      @julian Private FEP-1b12 groups exist in Lemmy 1.0beta. I am already testing them, but there are still some issues with the federation (I am also working on a FEP that covers access control and user roles in FEP-1b12 groups)

      maddyunderstars@aus.socialM This user is from outside of this forum
      maddyunderstars@aus.socialM This user is from outside of this forum
      maddyunderstars@aus.social
      wrote on last edited by
      #4

      @silverpill @julian @technical-discussion Thanks! Yes my own project Shoot, a discord-like, uses private 1b12 groups (or well, I'm working towards compliance?) for its private group chats and guild channels.

      Invite codes in Shoot are currently used for joining guilds which at the moment are actually organisations of groups rather than groups themselves. I just wasn't up to writing a FEP for that yet if ever. That's why this FEP says you can use them to follow any actor, don't want to lock myself out.

      you can find Shoot here: https://github.com/MaddyUnderStars/shoot

      (this originally only tagged Julian but it didn't show up in nodebb, so I hope this repost does...)

      1 Reply Last reply
      0
      • maddyunderstars@aus.socialM maddyunderstars@aus.social

        FEP-bebd: Follow Invites

        This is the discussion thread for the draft FEP-bebd: Follow Invites

        > This document describes an alternative method of accepting follow requests via an 'invite code' intended to be used with Private FEP-1b12 Groups, although it is applicable to any Actor. It further defines an extension of Webfinger to resolve an InviteCode to its corresponding Actor.

        Full text here:
        https://codeberg.org/MaddyUnderStars/fep/src/branch/invites/fep/bebd/fep-bebd.md

        #fep_bebd #fep #fedidev

        kauer@aus.socialK This user is from outside of this forum
        kauer@aus.socialK This user is from outside of this forum
        kauer@aus.social
        wrote on last edited by
        #5

        @maddyunderstars

        Some comments:

        - watch out for "may" meaning "possibly" rather than "is permitted". E.g. in "Example restrictions". Ditto for "may not" meaning "might not" rather than "must not". Best not to use "may" unless capitalised so it has the meaning given in RFC2119.

        - why must a Reject activity be sent for an invalid code?

        - having unrestricted name formats is a recipe for disaster. The restrictions can be broad, but should exist. Otherwise guaranteed some nutcase will decide that their names will be 100,000 characters long, taken entirely from the ASCII codes below 32.

        - similarly, allowing the document to contain additional properties without restricting the numbers, types and sizes of the additional properties either individually or in total, means someone will send you three million additional properties, just because they can.

        - it seems that Actors can both send and receive activities modifying an InviteCode. It would be a good idea in this doco to always stipulate e.g. "sending Actor" or "receiving Actor", at least where it is not 100% clear from the context.

        maddyunderstars@aus.socialM 1 Reply Last reply
        0
        • kauer@aus.socialK kauer@aus.social

          @maddyunderstars

          Some comments:

          - watch out for "may" meaning "possibly" rather than "is permitted". E.g. in "Example restrictions". Ditto for "may not" meaning "might not" rather than "must not". Best not to use "may" unless capitalised so it has the meaning given in RFC2119.

          - why must a Reject activity be sent for an invalid code?

          - having unrestricted name formats is a recipe for disaster. The restrictions can be broad, but should exist. Otherwise guaranteed some nutcase will decide that their names will be 100,000 characters long, taken entirely from the ASCII codes below 32.

          - similarly, allowing the document to contain additional properties without restricting the numbers, types and sizes of the additional properties either individually or in total, means someone will send you three million additional properties, just because they can.

          - it seems that Actors can both send and receive activities modifying an InviteCode. It would be a good idea in this doco to always stipulate e.g. "sending Actor" or "receiving Actor", at least where it is not 100% clear from the context.

          maddyunderstars@aus.socialM This user is from outside of this forum
          maddyunderstars@aus.socialM This user is from outside of this forum
          maddyunderstars@aus.social
          wrote on last edited by
          #6

          @kauer @technical-discussion good advice, thank you!

          The examples restrictions section was marked non-normative which other FEPs seem to use to mean that the section is more commentary about the doc rather than actually specification language per the requirements RFC. I will check the wording of the rest of the document as well

          Hm, I suppose a Reject doesn't need to be sent. It could be a MAY requirement instead. The idea was for user feedback: When I as a foreign server moderator want to make an invite, if my request was rejected I want to know quickly rather than on the next attempt to use the invite. But making it a MUST means I have to send some data back even if they're spamming me with invalid requests.

          Good call on the name formats, it should at the least be the same restrictions as URLs due to webfinger

          I might change the wording so that InviteCode extends Object from AS, because I'm pretty sure these default restrictions exist in there

          1 Reply Last reply
          0
          • maddyunderstars@aus.socialM maddyunderstars@aus.social

            FEP-bebd: Follow Invites

            This is the discussion thread for the draft FEP-bebd: Follow Invites

            > This document describes an alternative method of accepting follow requests via an 'invite code' intended to be used with Private FEP-1b12 Groups, although it is applicable to any Actor. It further defines an extension of Webfinger to resolve an InviteCode to its corresponding Actor.

            Full text here:
            https://codeberg.org/MaddyUnderStars/fep/src/branch/invites/fep/bebd/fep-bebd.md

            #fep_bebd #fep #fedidev

            thisismissem@activitypub.spaceT This user is from outside of this forum
            thisismissem@activitypub.spaceT This user is from outside of this forum
            thisismissem@activitypub.space
            wrote on last edited by
            #7

            @maddyunderstars@aus.social the "instrument" here should probably just be the URI to the invite code, rather than overloading webfinger with this

            1 Reply Last reply
            0
            • maddyunderstars@aus.socialM This user is from outside of this forum
              maddyunderstars@aus.socialM This user is from outside of this forum
              maddyunderstars@aus.social
              wrote on last edited by
              #8

              @thisismissem Ah you're right, I agree. I think this was an artifact of my original implementation if I remember correctly? In that, invite: webfinger lookups returned the actor directly rather than the invitecode, so it was impossible to know the invitecode ID. I'll update this FEP soon, thanks!

              1 Reply Last reply
              0
              • maddyunderstars@aus.socialM maddyunderstars@aus.social

                FEP-bebd: Follow Invites

                This is the discussion thread for the draft FEP-bebd: Follow Invites

                > This document describes an alternative method of accepting follow requests via an 'invite code' intended to be used with Private FEP-1b12 Groups, although it is applicable to any Actor. It further defines an extension of Webfinger to resolve an InviteCode to its corresponding Actor.

                Full text here:
                https://codeberg.org/MaddyUnderStars/fep/src/branch/invites/fep/bebd/fep-bebd.md

                #fep_bebd #fep #fedidev

                silverpill@mitra.socialS This user is from outside of this forum
                silverpill@mitra.socialS This user is from outside of this forum
                silverpill@mitra.social
                wrote last edited by
                #9

                @maddyunderstars

                Activities on InviteCodes

                When an activity modifying the InviteCodes for an Actor is received, the Actor MUST ensure that the activity is being performed by an authorised Actor.

                Did you mean "modifying the invites collection of an Actor"?
                How to ensure that activity is being performed by an authorized actor?

                To create a new InviteCode for an Actor, a standard Add activity is sent to the Actor the InviteCode is associated with.

                Is there a Create(InviteCode) activity? Or invite code is supposed to be created as a side-effect of Add activity?

                @technical-discussion

                maddyunderstars@aus.socialM 1 Reply Last reply
                0
                • silverpill@mitra.socialS silverpill@mitra.social

                  @maddyunderstars

                  Activities on InviteCodes

                  When an activity modifying the InviteCodes for an Actor is received, the Actor MUST ensure that the activity is being performed by an authorised Actor.

                  Did you mean "modifying the invites collection of an Actor"?
                  How to ensure that activity is being performed by an authorized actor?

                  To create a new InviteCode for an Actor, a standard Add activity is sent to the Actor the InviteCode is associated with.

                  Is there a Create(InviteCode) activity? Or invite code is supposed to be created as a side-effect of Add activity?

                  @technical-discussion

                  maddyunderstars@aus.socialM This user is from outside of this forum
                  maddyunderstars@aus.socialM This user is from outside of this forum
                  maddyunderstars@aus.social
                  wrote last edited by
                  #10

                  @silverpill @technical-discussion Thank you.

                  Yes it should probably read 'modifying the invites collection'.

                  There's a footnote on what authorised actors are, tldr it's however you decide to do it. Shoot checks if the activities actor is a member of the guild and that they have sufficient permissions (MANAGE_INVITES). Do you think I should elaborate more on this? I didn't want to be too specific, because Shoot permissions aren't super useful for the rest of fedi, and specifying some other mechanism might lock Shoot out.

                  It's a side effect of Add currently. Should it be the other way around? I guess Create<Note> adds to the outbox, so it would make sense.

                  silverpill@mitra.socialS 1 Reply Last reply
                  0
                  • maddyunderstars@aus.socialM maddyunderstars@aus.social

                    @silverpill @technical-discussion Thank you.

                    Yes it should probably read 'modifying the invites collection'.

                    There's a footnote on what authorised actors are, tldr it's however you decide to do it. Shoot checks if the activities actor is a member of the guild and that they have sufficient permissions (MANAGE_INVITES). Do you think I should elaborate more on this? I didn't want to be too specific, because Shoot permissions aren't super useful for the rest of fedi, and specifying some other mechanism might lock Shoot out.

                    It's a side effect of Add currently. Should it be the other way around? I guess Create<Note> adds to the outbox, so it would make sense.

                    silverpill@mitra.socialS This user is from outside of this forum
                    silverpill@mitra.socialS This user is from outside of this forum
                    silverpill@mitra.social
                    wrote last edited by
                    #11

                    @maddyunderstars @technical-discussion

                    Do you think I should elaborate more on this?

                    Yes. I think an example from FEP-1b12 realm will be helpful. Can actors from FEP-1b12 "moderators" collection be considered authorised actors?

                    There's a footnote on what authorised actors are, tldr it's however you decide to do it.

                    In that section, you mention "the 'invite-actor'". Does this term refer to InviteCode.attributedTo actor?

                    It's a side effect of Add currently. Should it be the other way around? I guess Create<Note> adds to the outbox, so it would make sense.

                    I would expect that an invite code is Created first, and then Added. At least when using ActivityPub API clients.

                    maddyunderstars@aus.socialM 1 Reply Last reply
                    0
                    • silverpill@mitra.socialS silverpill@mitra.social

                      @maddyunderstars @technical-discussion

                      Do you think I should elaborate more on this?

                      Yes. I think an example from FEP-1b12 realm will be helpful. Can actors from FEP-1b12 "moderators" collection be considered authorised actors?

                      There's a footnote on what authorised actors are, tldr it's however you decide to do it.

                      In that section, you mention "the 'invite-actor'". Does this term refer to InviteCode.attributedTo actor?

                      It's a side effect of Add currently. Should it be the other way around? I guess Create<Note> adds to the outbox, so it would make sense.

                      I would expect that an invite code is Created first, and then Added. At least when using ActivityPub API clients.

                      maddyunderstars@aus.socialM This user is from outside of this forum
                      maddyunderstars@aus.socialM This user is from outside of this forum
                      maddyunderstars@aus.social
                      wrote last edited by
                      #12

                      @silverpill @technical-discussion Yes, fep-1b12 moderators could be authorised actors.

                      Yes 'invite-actor' refers to InviteCode.attributedTo. I agree this isn't very clear...

                      I'll update the FEP soon with your feedback, thank you 🙂

                      1 Reply Last reply
                      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