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-3447: Endorsements

FEP-3447: Endorsements

Scheduled Pinned Locked Moved Technical Discussion
34 Posts 5 Posters 30 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.
  • benpate@activitypub.spaceB benpate@activitypub.space

    This is a topic for community work on FEP-3447: Endorsements. The early-early-pre-draft is currently on my own GitHub, but should be moving to the official Codeberg repository soon.

    I recently started a discussion on Mastodon that is ready to move to a bigger venue. So here we are 🤓

    benpate@activitypub.spaceB This user is from outside of this forum
    benpate@activitypub.spaceB This user is from outside of this forum
    benpate@activitypub.space
    wrote last edited by benpate@activitypub.space
    #21

    content should probably be free-form HTML, so maybe not? But we definitely need something -- I'm kicking around either tag or context for this.

    I'm leaning towards context because we could define URL-like namespaces for specific things, where tags are usually more of a "folks-onomy" and therefore harder to aggregate.

    What do you think?

    1 Reply Last reply
    0
    • benpate@activitypub.spaceB This user is from outside of this forum
      benpate@activitypub.spaceB This user is from outside of this forum
      benpate@activitypub.space
      wrote last edited by
      #22

      @julian I'm spinning back and forth on this. Should this be a noun or a verb? In a way, it's kind of irrelevant - we could query this data all the same whether they're objects or activities.

      Pros for Activity:

      • Follow, Like, and Block are all activities. Endorse should feel parallel to them
      • We have other examples of actors Accept-ing and Reject-ing other activities.
      • Mastodon API already publishes Endorsement, so we shouldn't overlap with that.

      Pros for Object:

      • Offer(Endorsement) reads cleaner than Offer(Endorse)
      • As a noun, an Endorsement feels like something I could pick up and hold, attach a signature to, or put on my home page.
      • Mastodon API already publishes Endorsement, so we'd just be opening this up to a broader ActivityPub audience.
      1 Reply Last reply
      0
      • julian@activitypub.spaceJ This user is from outside of this forum
        julian@activitypub.spaceJ This user is from outside of this forum
        julian@activitypub.space
        wrote last edited by
        #23

        Do you mean this API endpoint?

        https://docs.joinmastodon.org/methods/endorsements/

        It's not AP, so it's not conflicting with this FEP, no?

        TIL Mastodon has endorsements.

        1 Reply Last reply
        0
        • benpate@activitypub.spaceB benpate@activitypub.space

          This is a topic for community work on FEP-3447: Endorsements. The early-early-pre-draft is currently on my own GitHub, but should be moving to the official Codeberg repository soon.

          I recently started a discussion on Mastodon that is ready to move to a bigger venue. So here we are 🤓

          benpate@activitypub.spaceB This user is from outside of this forum
          benpate@activitypub.spaceB This user is from outside of this forum
          benpate@activitypub.space
          wrote last edited by
          #24

          Yes, exactly. It's not AP now, so it's not technically reusing the name. If anything, we're taunting Mastodon to just connect up what they've already got in place. Though, they may be ditching this in favor of their new "Collections" feature -- which will be very cool.

          1 Reply Last reply
          1
          • julian@activitypub.spaceJ This user is from outside of this forum
            julian@activitypub.spaceJ This user is from outside of this forum
            julian@activitypub.space
            wrote last edited by
            #25

            @benpate I still agree with @silverpill@mitra.social that Endorsement makes more sense because it's metadata can be updated (content, tags, etc.)

            Like, block, etc. don't have that additional concern AFAIK. However it's not a sticking point for me and I am ok with whatever.

            1 Reply Last reply
            0
            • benpate@activitypub.spaceB benpate@activitypub.space

              This is a topic for community work on FEP-3447: Endorsements. The early-early-pre-draft is currently on my own GitHub, but should be moving to the official Codeberg repository soon.

              I recently started a discussion on Mastodon that is ready to move to a bigger venue. So here we are 🤓

              benpate@activitypub.spaceB This user is from outside of this forum
              benpate@activitypub.spaceB This user is from outside of this forum
              benpate@activitypub.space
              wrote last edited by
              #26

              Ok. I'm going to rewrite it as a noun and see how that works.

              1 Reply Last reply
              1
              • benpate@activitypub.spaceB benpate@activitypub.space

                This is a topic for community work on FEP-3447: Endorsements. The early-early-pre-draft is currently on my own GitHub, but should be moving to the official Codeberg repository soon.

                I recently started a discussion on Mastodon that is ready to move to a bigger venue. So here we are 🤓

                benpate@activitypub.spaceB This user is from outside of this forum
                benpate@activitypub.spaceB This user is from outside of this forum
                benpate@activitypub.space
                wrote last edited by
                #27

                I've updated the document to use "Endorsement" as an object (instead of "Endorse" as an activity). This changes the name to "FEP-d471: Endorsements". I've also tried to incorporate a number of the ideas and suggestions here, including a context URI to identify specific KINDS of endorsements, as well as explanations for many common questions.

                If you're following this, now is a great time to revisit the FEP. This whole thing will be migrated to Codeberg soon (a PR is already in the works) and this will be the primary place to discuss updates 🙂

                1 Reply Last reply
                1
                • julian@activitypub.spaceJ This user is from outside of this forum
                  julian@activitypub.spaceJ This user is from outside of this forum
                  julian@activitypub.space
                  wrote last edited by
                  #28

                  @benpate could Endorsement types be split off into a separate FEP? I think keeping things simple makes it easier for potential devs to digest.

                  1 Reply Last reply
                  0
                  • benpate@activitypub.spaceB benpate@activitypub.space

                    This is a topic for community work on FEP-3447: Endorsements. The early-early-pre-draft is currently on my own GitHub, but should be moving to the official Codeberg repository soon.

                    I recently started a discussion on Mastodon that is ready to move to a bigger venue. So here we are 🤓

                    benpate@activitypub.spaceB This user is from outside of this forum
                    benpate@activitypub.spaceB This user is from outside of this forum
                    benpate@activitypub.space
                    wrote last edited by
                    #29

                    Yes, that's a good idea. I'm hoping we can make a really streamlined document for the protocol and then to put the other important "how to use this" stuff into some separate document. So it makes sense to put context types somewhere else, too.

                    For the very short term there's a lot of overlapping conversations so it's easier for me to dump everything into one big messy document. Will that work, with the general understanding that context URIs break out into their own FEP long before we start building?

                    1 Reply Last reply
                    1
                    • julian@activitypub.spaceJ This user is from outside of this forum
                      julian@activitypub.spaceJ This user is from outside of this forum
                      julian@activitypub.space
                      wrote last edited by julian@activitypub.space
                      #30

                      Two thoughts:

                      1. 7888 doesn't lay claim to context, additional uses are encouraged, even

                      2. Suggest downgrading requirement of proof to MAY. Upgrade it to MUST in a new FEP. Some of us have no immediate plans to support object integrity proofs. Especially since an endorsement is resolvable, there's no need for a proof — t'is merely a convenience.

                      1 Reply Last reply
                      0
                      • benpate@activitypub.spaceB benpate@activitypub.space

                        This is a topic for community work on FEP-3447: Endorsements. The early-early-pre-draft is currently on my own GitHub, but should be moving to the official Codeberg repository soon.

                        I recently started a discussion on Mastodon that is ready to move to a bigger venue. So here we are 🤓

                        benpate@activitypub.spaceB This user is from outside of this forum
                        benpate@activitypub.spaceB This user is from outside of this forum
                        benpate@activitypub.space
                        wrote last edited by
                        #31

                        I'd rather not use Object Integrity Proofs either, and I'd be happy to cut them entirely. But here's the big issue I'm concerned about:

                        Someone may endorse me for one thing (Ben likes Tea) that I'm perfectly ok with. I accept the endorsement, but then they maliciously change the endorsement (Ben likes Coffee, gross) and I still keep their endorsement, leading me to lots of embarrassment.

                        Is there another way around this issue that DOESN'T require Object Integrity Proofs?

                        1 Reply Last reply
                        0
                        • benpate@activitypub.spaceB This user is from outside of this forum
                          benpate@activitypub.spaceB This user is from outside of this forum
                          benpate@activitypub.space
                          wrote last edited by
                          #32

                          @silverpill@mitra.social

                          Yes, an Endorsement is very similar to Relationship and I wrestled with this a bunch. But I think we're modeling a one-way relationship, not two way. I think it's something like this:

                          Relationship: Alice <- work together -> Bob
                          Endorsement: Alice -> endorses work product -> Bob

                          And in more practical (and less theoretical) terms, this new object allows us to assume tighter controls around how an Endorsement was made. As under-specified as it is, I could post a valid Relationship between myself and Robert Plant (I did meet him once) and there's no way to verify it. Using a new object, like Endorsement, we can rely on the workflow around this object a little more, and can verify that Robert Plant actually acknowledged my endorsement (but I'm certain he wouldn't remember me, the kid in the bookstore)

                          So, we should reuse as much of the existing vocabulary as we can (context, content, etc) but I think there's a good reason for a new top-level object.

                          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
                            silverpill@mitra.social
                            wrote last edited by
                            #33

                            I think it's fine to use a different type. What I wanted to point out is that context property is for grouping related objects, and that there is another property that does exactly you want - relationship.

                            we're modeling a one-way relationship, not two way.

                            In a two-way relationship, there is an expectation that another Relationship object exists representing a reverse claim.

                            Is there another way around this issue that DOESN'T require Object Integrity Proofs?

                            I am not sure if integrity proofs really solve this problem... It's hard to tell without knowing who signs what (I didn't find that information in the FEP).

                            1 Reply Last reply
                            0
                            • julian@activitypub.spaceJ This user is from outside of this forum
                              julian@activitypub.spaceJ This user is from outside of this forum
                              julian@activitypub.space
                              wrote last edited by
                              #34

                              @benpate thinking out loud, we don't need proofs to do this, they just guarantee that the object the proof is attached to hasn't been modified in transit.

                              What you need is a checksum! sha256 hash with each Endorsement object. Maybe that hash forms part of the id itself, then you don't need a property.

                              Not sure who's going to yell at me for that one.

                              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