Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • 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

FòrumCAT

  1. Home
  2. Uncategorized
  3. @julian diving into the hard problems of building for the Fediverse at #Fedicon, starting with hilariously talking about how those hard problems look like to average users 😅

@julian diving into the hard problems of building for the Fediverse at #Fedicon, starting with hilariously talking about how those hard problems look like to average users 😅

Scheduled Pinned Locked Moved Uncategorized
fedicon
98 Posts 13 Posters 0 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.
  • fentiger@mastodon.socialF fentiger@mastodon.social

    @benpate @evan @thisismissem @julian @naturzukunft I think the idea is that you get an access_token which you can use to post to the outbox - which you can discover from the Actor object.

    benpate@mastodon.socialB This user is from outside of this forum
    benpate@mastodon.socialB This user is from outside of this forum
    benpate@mastodon.social
    wrote last edited by
    #75

    But most software doesn't support the C2S API, so that POST would either fail, or the server would lie and say "thanks for submitting this activity" and then just do nothing with it.

    I'd like to know that the activity is going to fail BEFORE I hit submit. Otherwise, users will run into a dead end, and the server that originated the request won't have any way to fix it.

    Servers should know AHEAD OF TIME if they can post activities or not.

    @FenTiger @evan @thisismissem @julian @naturzukunft

    fentiger@mastodon.socialF 1 Reply Last reply
    0
    • benpate@mastodon.socialB benpate@mastodon.social

      I'm genuinely behind on this. I've skimmed Evan's FEP, but a lot of OAuth complexity is still opaque to me.

      It seems like the missing piece with using the C2S API would be *figuring out* what endpoints I can call to initiate an activity.

      Does FEP-d8c2 implement discovery in some way that I'm not seeing? Or, is this something *still to be defined* and I'm just jumping the gun, here?

      @evan @thisismissem @julian @naturzukunft

      by_caballero@mastodon.socialB This user is from outside of this forum
      by_caballero@mastodon.socialB This user is from outside of this forum
      by_caballero@mastodon.social
      wrote last edited by
      #76

      @benpate @evan @thisismissem @julian @naturzukunft SWICG c2s task force wen (or will the payments task force just naturally become the c2s tf over time)

      by_caballero@mastodon.socialB 1 Reply Last reply
      0
      • by_caballero@mastodon.socialB by_caballero@mastodon.social

        @benpate @evan @thisismissem @julian @naturzukunft SWICG c2s task force wen (or will the payments task force just naturally become the c2s tf over time)

        by_caballero@mastodon.socialB This user is from outside of this forum
        by_caballero@mastodon.socialB This user is from outside of this forum
        by_caballero@mastodon.social
        wrote last edited by
        #77

        @benpate @evan @thisismissem @julian @naturzukunft all joking aside I think c2s requires emelia and Aaron's rfc on the OAuth side, and some equally complex discovery mechanism based on alternate AuthZ (presumably something based on certificate-ized Object Capabilities?) if we wanna stay composable and not-100%-dependent on oauth...

        evan@cosocial.caE 1 Reply Last reply
        0
        • benpate@mastodon.socialB benpate@mastodon.social

          But most software doesn't support the C2S API, so that POST would either fail, or the server would lie and say "thanks for submitting this activity" and then just do nothing with it.

          I'd like to know that the activity is going to fail BEFORE I hit submit. Otherwise, users will run into a dead end, and the server that originated the request won't have any way to fix it.

          Servers should know AHEAD OF TIME if they can post activities or not.

          @FenTiger @evan @thisismissem @julian @naturzukunft

          fentiger@mastodon.socialF This user is from outside of this forum
          fentiger@mastodon.socialF This user is from outside of this forum
          fentiger@mastodon.social
          wrote last edited by
          #78

          @benpate @evan @thisismissem @julian @naturzukunft It's certainly helpful to have a way to know if you should show that button on the UI or not!

          julian@community.nodebb.orgJ 1 Reply Last reply
          0
          • fentiger@mastodon.socialF fentiger@mastodon.social

            @benpate @evan @thisismissem @julian @naturzukunft It's certainly helpful to have a way to know if you should show that button on the UI or not!

            julian@community.nodebb.orgJ This user is from outside of this forum
            julian@community.nodebb.orgJ This user is from outside of this forum
            julian@community.nodebb.org
            wrote last edited by julian@community.nodebb.org
            #79

            fentiger@mastodon.social benpate@mastodon.social exactly, we need some guarantee that the activity we POST to the outbox isn't just unceremoniously dropped and an HTTP 200 returned.

            NodeBB doesn't support POSTing the outbox at the moment, but we do return an HTTP response for "not implemented", currently.

            1 Reply Last reply
            0
            • fentiger@mastodon.socialF fentiger@mastodon.social

              @benpate @julian I'm not sure OWA is the way forward here; mainly it's a lightweight authentication-only alternative to OAuth, and for FEP-d8c2-style SSO the authorization part - issuing the access_token - is important.

              FEP-61cf does describe the "zid" mechanism that can be used to avoid the user having to type their handle in; maybe this will be useful (though it's not without its downsides).

              benpate@mastodon.socialB This user is from outside of this forum
              benpate@mastodon.socialB This user is from outside of this forum
              benpate@mastodon.social
              wrote last edited by
              #80

              @FenTiger @julian

              Yes, this makes sense. OWA was a partial match for my FEP, but doesn't fit this larger use case we're discussing.

              Exciting!

              1 Reply Last reply
              0
              • evan@cosocial.caE This user is from outside of this forum
                evan@cosocial.caE This user is from outside of this forum
                evan@cosocial.ca
                wrote last edited by
                #81

                @julian @FenTiger @benpate there's no way to know that.

                evan@cosocial.caE 1 Reply Last reply
                0
                • evan@cosocial.caE evan@cosocial.ca

                  @julian @FenTiger @benpate there's no way to know that.

                  evan@cosocial.caE This user is from outside of this forum
                  evan@cosocial.caE This user is from outside of this forum
                  evan@cosocial.ca
                  wrote last edited by
                  #82

                  @julian @FenTiger @benpate at that point, it's just about social pressure. "This implementation doesn't work with clients well, don't use it."

                  1 Reply Last reply
                  0
                  • by_caballero@mastodon.socialB by_caballero@mastodon.social

                    @benpate @evan @thisismissem @julian @naturzukunft all joking aside I think c2s requires emelia and Aaron's rfc on the OAuth side, and some equally complex discovery mechanism based on alternate AuthZ (presumably something based on certificate-ized Object Capabilities?) if we wanna stay composable and not-100%-dependent on oauth...

                    evan@cosocial.caE This user is from outside of this forum
                    evan@cosocial.caE This user is from outside of this forum
                    evan@cosocial.ca
                    wrote last edited by
                    #83

                    @by_caballero @benpate @thisismissem @julian @naturzukunft that's too hard. We have an API. It already works.

                    julian@community.nodebb.orgJ 1 Reply Last reply
                    0
                    • benpate@mastodon.socialB benpate@mastodon.social

                      @FenTiger @julian @evan

                      This is a good point, though I'm not clear how different servers would handle outbox requests for activities that they don't support. I'm pretty sure mine would just die.

                      My big concern with OAuth tokens is that they require me to give away write access to my Fediverse identity when I "like" or "reply" to something, which could easily be an attack vector.

                      We talked about scoping OAuth tokens, but it feels like a lot of moving parts. More details later

                      evan@cosocial.caE This user is from outside of this forum
                      evan@cosocial.caE This user is from outside of this forum
                      evan@cosocial.ca
                      wrote last edited by
                      #84

                      @benpate @FenTiger @julian they should just pass them along! If you don't implement a side effect for that activity type, just leave it alone and pass it along to clients.

                      evan@cosocial.caE benpate@mastodon.socialB 2 Replies Last reply
                      0
                      • evan@cosocial.caE evan@cosocial.ca

                        @benpate @FenTiger @julian they should just pass them along! If you don't implement a side effect for that activity type, just leave it alone and pass it along to clients.

                        evan@cosocial.caE This user is from outside of this forum
                        evan@cosocial.caE This user is from outside of this forum
                        evan@cosocial.ca
                        wrote last edited by
                        #85

                        @benpate @FenTiger @julian the plan there is to have finer grained scopes for particular activities. And also limiting them by domain: "let this server Like and Reply to objects on its own domain"

                        https://codeberg.org/evanp/fep/issues/8

                        evan@cosocial.caE 1 Reply Last reply
                        0
                        • evan@cosocial.caE evan@cosocial.ca

                          @benpate @FenTiger @julian the plan there is to have finer grained scopes for particular activities. And also limiting them by domain: "let this server Like and Reply to objects on its own domain"

                          https://codeberg.org/evanp/fep/issues/8

                          evan@cosocial.caE This user is from outside of this forum
                          evan@cosocial.caE This user is from outside of this forum
                          evan@cosocial.ca
                          wrote last edited by
                          #86

                          @benpate @FenTiger @julian there's a whole chapter about the API in my book:

                          https://evanp.me/activitypub-book/

                          evan@cosocial.caE 1 Reply Last reply
                          0
                          • evan@cosocial.caE evan@cosocial.ca

                            @benpate @FenTiger @julian there's a whole chapter about the API in my book:

                            https://evanp.me/activitypub-book/

                            evan@cosocial.caE This user is from outside of this forum
                            evan@cosocial.caE This user is from outside of this forum
                            evan@cosocial.ca
                            wrote last edited by
                            #87

                            @benpate @FenTiger @julian also, and this is very important: if you want apps to have a global reputation, so that social pressure can keep them from being abusive, they need to have a universal id across different API servers.

                            1 Reply Last reply
                            0
                            • evan@cosocial.caE evan@cosocial.ca

                              @by_caballero @benpate @thisismissem @julian @naturzukunft that's too hard. We have an API. It already works.

                              julian@community.nodebb.orgJ This user is from outside of this forum
                              julian@community.nodebb.orgJ This user is from outside of this forum
                              julian@community.nodebb.org
                              wrote last edited by
                              #88

                              evan@cosocial.ca I'm not certain whether it's too hard or not. At this point I haven't looked into it yet.

                              But if there is a chance that we can use standardized endpoints for this, then it's a point in their favour.

                              At the same time, I am a proponent of simplicity.

                              1 Reply Last reply
                              0
                              • evan@cosocial.caE evan@cosocial.ca

                                @benpate @FenTiger @julian they should just pass them along! If you don't implement a side effect for that activity type, just leave it alone and pass it along to clients.

                                benpate@mastodon.socialB This user is from outside of this forum
                                benpate@mastodon.socialB This user is from outside of this forum
                                benpate@mastodon.social
                                wrote last edited by
                                #89

                                @evan @FenTiger @julian

                                This sounds perfectly reasonable, and is probably the right thing to do.

                                Except I probably implemented ActivityPub wrong - using it as a protocol and not an architecture.

                                Database tables represent the things I understand, and are written out as “JSON-LD” when needed. So there’s no true “outbox”, except as links to the tables I care about 😅

                                Again, this is an “it’s me, not you” situation, but I’ll bet others might be in the same boat.

                                julian@community.nodebb.orgJ 1 Reply Last reply
                                0
                                • benpate@mastodon.socialB benpate@mastodon.social

                                  @evan @FenTiger @julian

                                  This sounds perfectly reasonable, and is probably the right thing to do.

                                  Except I probably implemented ActivityPub wrong - using it as a protocol and not an architecture.

                                  Database tables represent the things I understand, and are written out as “JSON-LD” when needed. So there’s no true “outbox”, except as links to the tables I care about 😅

                                  Again, this is an “it’s me, not you” situation, but I’ll bet others might be in the same boat.

                                  julian@community.nodebb.orgJ This user is from outside of this forum
                                  julian@community.nodebb.orgJ This user is from outside of this forum
                                  julian@community.nodebb.org
                                  wrote last edited by
                                  #90

                                  benpate@mastodon.social said:
                                  > Database tables represent the things I understand, and are written out as “JSON-LD” when needed. So there’s no true “outbox”, except as links to the tables I care about 😅

                                  I am pretty sure 85-90% of the fediverse developers do this 😛

                                  The remaining 10-15% complain loudly when the "JSON-LD" we send back doesn't actually validate.

                                  1 Reply Last reply
                                  0
                                  • benpate@mastodon.socialB This user is from outside of this forum
                                    benpate@mastodon.socialB This user is from outside of this forum
                                    benpate@mastodon.social
                                    wrote last edited by
                                    #91

                                    @julian

                                    I honestly thought it was just me 😇

                                    evan@cosocial.caE 1 Reply Last reply
                                    0
                                    • benpate@mastodon.socialB benpate@mastodon.social

                                      @julian

                                      I honestly thought it was just me 😇

                                      evan@cosocial.caE This user is from outside of this forum
                                      evan@cosocial.caE This user is from outside of this forum
                                      evan@cosocial.ca
                                      wrote last edited by
                                      #92

                                      @benpate @julian sure. But neither of you support the ActivityPub API yet, right? And you both have pretty good ideas of how to do this correctly and probably even easily in your software.

                                      evan@cosocial.caE benpate@mastodon.socialB 2 Replies Last reply
                                      0
                                      • evan@cosocial.caE evan@cosocial.ca

                                        @benpate @julian sure. But neither of you support the ActivityPub API yet, right? And you both have pretty good ideas of how to do this correctly and probably even easily in your software.

                                        evan@cosocial.caE This user is from outside of this forum
                                        evan@cosocial.caE This user is from outside of this forum
                                        evan@cosocial.ca
                                        wrote last edited by
                                        #93

                                        @benpate @julian I'm not saying it's absolutely necessary to support arbitrary activity types. But it makes sense if you want to support interesting innovation at the edge. Otherwise, sure, just support the dozen or so activity types defined in the AP spec, plus a few more from FEPs you know.

                                        1 Reply Last reply
                                        0
                                        • benpate@mastodon.socialB benpate@mastodon.social

                                          I'm genuinely behind on this. I've skimmed Evan's FEP, but a lot of OAuth complexity is still opaque to me.

                                          It seems like the missing piece with using the C2S API would be *figuring out* what endpoints I can call to initiate an activity.

                                          Does FEP-d8c2 implement discovery in some way that I'm not seeing? Or, is this something *still to be defined* and I'm just jumping the gun, here?

                                          @evan @thisismissem @julian @naturzukunft

                                          evan@cosocial.caE This user is from outside of this forum
                                          evan@cosocial.caE This user is from outside of this forum
                                          evan@cosocial.ca
                                          wrote last edited by
                                          #94

                                          @benpate @thisismissem @julian @naturzukunft I forgot to ask: have you ever implemented an OAuth client before? Or used a library for it?

                                          julian@community.nodebb.orgJ 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups