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
We Distribute
  1. Home
  2. Technical Discussion
  3. Alright it's late and i need to go to bed, but here's a draft FEP to do full account migration with posts and whatever other kinda objects you want to bring with you.

Alright it's late and i need to go to bed, but here's a draft FEP to do full account migration with posts and whatever other kinda objects you want to bring with you.

Scheduled Pinned Locked Moved Technical Discussion
moveallpostsfedidevfepfep1580fullmigration
53 Posts 11 Posters 5 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.
  • trwnh@mastodon.socialT trwnh@mastodon.social

    @kopper @jonny @mariusor

    > see who "owns" an object from a reference alone, which namespacing would solve

    i don't think that's desirable on its own (since id should be opaque) but you can get it anyway if you require actors to have their own dns name (and then tls does the rest). that's how the same-origin model is *supposed* to work in theory; the bit that breaks the assumption is when one origin has multiple tenants

    re: actor namespaces, i am writing/exploring a fep for that actually...

    trwnh@mastodon.socialT This user is from outside of this forum
    trwnh@mastodon.socialT This user is from outside of this forum
    trwnh@mastodon.social
    wrote last edited by
    #22

    @kopper @jonny @mariusor basic idea is similar to toot:attributionDomains but with prefixes instead. the part i'm exploring is whether it makes more sense to just say heck it and use containers instead

    1 Reply Last reply
    0
    • jonny@neuromatch.socialJ jonny@neuromatch.social

      @kopper @mariusor in my fediverse, objects are given absolute addresses like @{actorPublicKey}/whatever/i/want and displayed like {petName}/whatever/i/want

      trwnh@mastodon.socialT This user is from outside of this forum
      trwnh@mastodon.socialT This user is from outside of this forum
      trwnh@mastodon.social
      wrote last edited by
      #23

      @jonny @kopper @mariusor i've had the same wish, except instead of "actorPublicKey" it's any uri

      basically take a base uri for your contact in your address book, and append a relative reference. the did specs can do this with service + relativeRef, and i think https://w3id.org/fep/e3e9 uses that? i'd like to be able to do that with cids too, or probably even http redirects

      1 Reply Last reply
      0
      • trwnh@mastodon.socialT trwnh@mastodon.social

        @kopper @jonny @mariusor

        > see who "owns" an object from a reference alone, which namespacing would solve

        i don't think that's desirable on its own (since id should be opaque) but you can get it anyway if you require actors to have their own dns name (and then tls does the rest). that's how the same-origin model is *supposed* to work in theory; the bit that breaks the assumption is when one origin has multiple tenants

        re: actor namespaces, i am writing/exploring a fep for that actually...

        mariusor@metalhead.clubM This user is from outside of this forum
        mariusor@metalhead.clubM This user is from outside of this forum
        mariusor@metalhead.club
        wrote last edited by
        #24

        @trwnh the way I meant namespacing object IDs was simply related to being able to decompose an IRI into a clean and intuitive structure: example.com/~jdoe/outbox/123, means that the activity with that ID can be said to be contained in jdoe's outbox on example.com.

        @kopper @jonny

        trwnh@mastodon.socialT 1 Reply Last reply
        0
        • mariusor@metalhead.clubM mariusor@metalhead.club

          @trwnh the way I meant namespacing object IDs was simply related to being able to decompose an IRI into a clean and intuitive structure: example.com/~jdoe/outbox/123, means that the activity with that ID can be said to be contained in jdoe's outbox on example.com.

          @kopper @jonny

          trwnh@mastodon.socialT This user is from outside of this forum
          trwnh@mastodon.socialT This user is from outside of this forum
          trwnh@mastodon.social
          wrote last edited by
          #25

          @mariusor @kopper @jonny the uri owner in this case is example.com and you cannot assume that "~jdoe" or "/outbox/" mean anything special

          ...however, if you knew that /~jdoe was an actor, then /~jdoe can tell you that you can implicitly trust any attribution claims to /~jdoe if the resource exists within some prefix like /~jdoe/ or /objects/

          mariusor@metalhead.clubM 1 Reply Last reply
          0
          • trwnh@mastodon.socialT trwnh@mastodon.social

            @mariusor @kopper @jonny the uri owner in this case is example.com and you cannot assume that "~jdoe" or "/outbox/" mean anything special

            ...however, if you knew that /~jdoe was an actor, then /~jdoe can tell you that you can implicitly trust any attribution claims to /~jdoe if the resource exists within some prefix like /~jdoe/ or /objects/

            mariusor@metalhead.clubM This user is from outside of this forum
            mariusor@metalhead.clubM This user is from outside of this forum
            mariusor@metalhead.club
            wrote last edited by
            #26

            > you cannot assume

            @trwnh but I can. šŸ˜„ At least in GoActivityPub I built some logic around composing IRIs using this kind of mechanism.

            It's not guaranteed for handling external objects, but it's useful for creating internal ones.

            And in the context of moving objects (which is what I was replying to initially), I feel like having a example.com/~jdoe namespace ensures that you can do a batch move (and not have collisions) for all objects that have them as author just by changing the relevant bits of the object IDs, instead of having to generate a new ID individually for each moved object.

            @kopper @jonny

            trwnh@mastodon.socialT 1 Reply Last reply
            0
            • mariusor@metalhead.clubM mariusor@metalhead.club

              > you cannot assume

              @trwnh but I can. šŸ˜„ At least in GoActivityPub I built some logic around composing IRIs using this kind of mechanism.

              It's not guaranteed for handling external objects, but it's useful for creating internal ones.

              And in the context of moving objects (which is what I was replying to initially), I feel like having a example.com/~jdoe namespace ensures that you can do a batch move (and not have collisions) for all objects that have them as author just by changing the relevant bits of the object IDs, instead of having to generate a new ID individually for each moved object.

              @kopper @jonny

              trwnh@mastodon.socialT This user is from outside of this forum
              trwnh@mastodon.socialT This user is from outside of this forum
              trwnh@mastodon.social
              wrote last edited by
              #27

              @mariusor well, internally you control the identifiers, so you can do whatever you want. the danger is in assuming meaning externally.

              1 Reply Last reply
              0
              • julian@activitypub.spaceJ julian@activitypub.space

                jonny@neuromatch.social FWIW there's no need to use SocialHub. You could post a discussion thread anywhere (like ActivityPub.Space, GitHub, a WordPress blog, etc... and yes, even a Mastodon status can be a starting point for discussion.)

                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
                #28

                @julian @jonny SocialHub is not a bad place though - FEP category is federated

                https://socialhub.activitypub.rocks/ap/object/bee813d28b0947ffce97f8c2bbebb955

                julian@activitypub.spaceJ 1 Reply Last reply
                0
                • silverpill@mitra.socialS silverpill@mitra.social

                  @julian @jonny SocialHub is not a bad place though - FEP category is federated

                  https://socialhub.activitypub.rocks/ap/object/bee813d28b0947ffce97f8c2bbebb955

                  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
                  #29

                  Of course, not trying to say otherwise. Just that there is a preconception that jonny@neuromatch.social had to post there as part of the FEP process, which even I was under the assumption of.

                  We chatted about that and you disabused me of that notion šŸ˜

                  1 Reply Last reply
                  0
                  • jonny@neuromatch.socialJ jonny@neuromatch.social

                    @kopper i was looking for an instance metadata item that was just some list of tokens that was "the list of things that the instance supports," and i could have sworn it existed, but i couldn't find it when i looked. most fedi apps (and even most LD apps) don't actually dereference the URIs in a context and treat them as tokens anyway, but yes failure to resolve terms is a big problem and am not a fan of DNS-based linked data.

                    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
                    #30

                    jonny@neuromatch.social kopper@not-brain.d.on-t.work Perhaps Capability Discovery is what you might be looking for? There is some implementor support for this one.

                    1 Reply Last reply
                    0
                    • jonny@neuromatch.socialJ jonny@neuromatch.social

                      Alright it's late and i need to go to bed, but here's a draft FEP to do full account migration with posts and whatever other kinda objects you want to bring with you. It's a trivial expansion of existing ActivityPub/streams systems and supports gradual migration as it's implemented and after an account migration. It should be possible to migrate pretty much everything this way, both private and public objects.

                      criticism, feedback, revisions, etc. welcome - i don't think this is a "final version" and there are certainly things i overlooked.

                      Link Preview Image
                      fep/fep/1580/fep-1580.md at e6f7b7ce32aa6f84dcfa7bfdc10fd65119d75984

                      fep - Fediverse Enhancement Proposals

                      favicon

                      Codeberg.org (codeberg.org)

                      Link Preview Image
                      WIP: FEP-1580: Move Actor Objects with a `migration` Collection

                      fep - Fediverse Enhancement Proposals

                      favicon

                      Codeberg.org (codeberg.org)

                      #MoveAllPosts #FediDev #FEP #FEP_1580 #FullMigration #AccountMigration

                      elduvelle@neuromatch.socialE This user is from outside of this forum
                      elduvelle@neuromatch.socialE This user is from outside of this forum
                      elduvelle@neuromatch.social
                      wrote last edited by
                      #31

                      @jonny you're amazing šŸ˜

                      1 Reply Last reply
                      0
                      • jonny@neuromatch.socialJ jonny@neuromatch.social

                        Alright it's late and i need to go to bed, but here's a draft FEP to do full account migration with posts and whatever other kinda objects you want to bring with you. It's a trivial expansion of existing ActivityPub/streams systems and supports gradual migration as it's implemented and after an account migration. It should be possible to migrate pretty much everything this way, both private and public objects.

                        criticism, feedback, revisions, etc. welcome - i don't think this is a "final version" and there are certainly things i overlooked.

                        Link Preview Image
                        fep/fep/1580/fep-1580.md at e6f7b7ce32aa6f84dcfa7bfdc10fd65119d75984

                        fep - Fediverse Enhancement Proposals

                        favicon

                        Codeberg.org (codeberg.org)

                        Link Preview Image
                        WIP: FEP-1580: Move Actor Objects with a `migration` Collection

                        fep - Fediverse Enhancement Proposals

                        favicon

                        Codeberg.org (codeberg.org)

                        #MoveAllPosts #FediDev #FEP #FEP_1580 #FullMigration #AccountMigration

                        rimu@piefed.socialR This user is from outside of this forum
                        rimu@piefed.socialR This user is from outside of this forum
                        rimu@piefed.social
                        wrote last edited by
                        #32

                        This looks fine to me, great to see many edge cases considered.

                        1 Reply Last reply
                        0
                        • jonny@neuromatch.socialJ jonny@neuromatch.social

                          i'm almost disappointed bc it's so simple and obvious. there are a lot of caveats and requirements there because i was trying to make it clear enough to be implementable, but really it's as simple as doing this: https://neuromatch.social/@jonny/115338330944599542

                          gatesvp@mstdn.caG This user is from outside of this forum
                          gatesvp@mstdn.caG This user is from outside of this forum
                          gatesvp@mstdn.ca
                          wrote last edited by
                          #33

                          @jonny I'm seeing notes here for the technical challenge of performing a migration of objects between two willing hosts given a user in good standing with sufficient credentials. I think it's great that you have written that down.

                          But I think the reason we don't have this yet is because that's only 20% of the problem. The other 80% of the challenge is contained in that first sentence of mine.

                          • How do we signal this intention to migrate to both hosts?
                          • How do we validate that both hosts are willing?
                          • How do the hosts validate credentials and good standing of both the migrating user and each other?
                          • What obligations does each party have to propagate and maintain this effective URL redirect?
                          • What controls does each party have in order to manage this transition process?
                          • How do we manage moderation of the incoming content?
                          • How will this impact current user agreements on most instances?

                          Any specification here needs to address admins and moderators as key players.

                          jonny@neuromatch.socialJ 1 Reply Last reply
                          1
                          • jonny@neuromatch.socialJ jonny@neuromatch.social

                            Alright it's late and i need to go to bed, but here's a draft FEP to do full account migration with posts and whatever other kinda objects you want to bring with you. It's a trivial expansion of existing ActivityPub/streams systems and supports gradual migration as it's implemented and after an account migration. It should be possible to migrate pretty much everything this way, both private and public objects.

                            criticism, feedback, revisions, etc. welcome - i don't think this is a "final version" and there are certainly things i overlooked.

                            Link Preview Image
                            fep/fep/1580/fep-1580.md at e6f7b7ce32aa6f84dcfa7bfdc10fd65119d75984

                            fep - Fediverse Enhancement Proposals

                            favicon

                            Codeberg.org (codeberg.org)

                            Link Preview Image
                            WIP: FEP-1580: Move Actor Objects with a `migration` Collection

                            fep - Fediverse Enhancement Proposals

                            favicon

                            Codeberg.org (codeberg.org)

                            #MoveAllPosts #FediDev #FEP #FEP_1580 #FullMigration #AccountMigration

                            gaditb@icosahedron.websiteG This user is from outside of this forum
                            gaditb@icosahedron.websiteG This user is from outside of this forum
                            gaditb@icosahedron.website
                            wrote last edited by
                            #34

                            @jonny Could I possibly encourage you to add a brief 1-2 sentences-or-so "Social Considerations" section -- or, well, the way you organized your headings a "Social" heading in your "Discussion" section -- next to "Privacy" and "Security".

                            I think in this case the basic Social motivation and implication for this specifically is reasonably obvious to everyone in the discussion right now, but because that obviousness won't be as available to people looking back at this during a more future implementation and won't be as available to people reading this looking for interactions with their own drafting FEP at a later point, it's worth including in the text itself.

                            If you don't want to or if this isn't the sort of feedback you're looking for no worries and sorry for imposing.
                            (Alternatively if you'd be up for it but have many other things atm, and if you trust me enough, I could try to grab time from dodging between the holidays at the moment and do a brief one for you, if you want.)

                            jonny@neuromatch.socialJ 1 Reply Last reply
                            0
                            • gatesvp@mstdn.caG gatesvp@mstdn.ca

                              @jonny I'm seeing notes here for the technical challenge of performing a migration of objects between two willing hosts given a user in good standing with sufficient credentials. I think it's great that you have written that down.

                              But I think the reason we don't have this yet is because that's only 20% of the problem. The other 80% of the challenge is contained in that first sentence of mine.

                              • How do we signal this intention to migrate to both hosts?
                              • How do we validate that both hosts are willing?
                              • How do the hosts validate credentials and good standing of both the migrating user and each other?
                              • What obligations does each party have to propagate and maintain this effective URL redirect?
                              • What controls does each party have in order to manage this transition process?
                              • How do we manage moderation of the incoming content?
                              • How will this impact current user agreements on most instances?

                              Any specification here needs to address admins and moderators as key players.

                              jonny@neuromatch.socialJ This user is from outside of this forum
                              jonny@neuromatch.socialJ This user is from outside of this forum
                              jonny@neuromatch.social
                              wrote last edited by
                              #35

                              @gatesvp
                              All these questions are addressed in the FEP except moderation, and I'm talking with masto devs about what would be good there

                              gatesvp@mstdn.caG 1 Reply Last reply
                              0
                              • gaditb@icosahedron.websiteG gaditb@icosahedron.website

                                @jonny Could I possibly encourage you to add a brief 1-2 sentences-or-so "Social Considerations" section -- or, well, the way you organized your headings a "Social" heading in your "Discussion" section -- next to "Privacy" and "Security".

                                I think in this case the basic Social motivation and implication for this specifically is reasonably obvious to everyone in the discussion right now, but because that obviousness won't be as available to people looking back at this during a more future implementation and won't be as available to people reading this looking for interactions with their own drafting FEP at a later point, it's worth including in the text itself.

                                If you don't want to or if this isn't the sort of feedback you're looking for no worries and sorry for imposing.
                                (Alternatively if you'd be up for it but have many other things atm, and if you trust me enough, I could try to grab time from dodging between the holidays at the moment and do a brief one for you, if you want.)

                                jonny@neuromatch.socialJ This user is from outside of this forum
                                jonny@neuromatch.socialJ This user is from outside of this forum
                                jonny@neuromatch.social
                                wrote last edited by
                                #36

                                @gaditb
                                I briefly addressed this in the intro but I agree its worth expanding on

                                gaditb@icosahedron.websiteG 1 Reply Last reply
                                0
                                • jonny@neuromatch.socialJ jonny@neuromatch.social

                                  @gaditb
                                  I briefly addressed this in the intro but I agree its worth expanding on

                                  gaditb@icosahedron.websiteG This user is from outside of this forum
                                  gaditb@icosahedron.websiteG This user is from outside of this forum
                                  gaditb@icosahedron.website
                                  wrote last edited by
                                  #37

                                  @jonny (My low-key agenda is, I kinda think every FEP should have a section about it. It's like, part of the discussion and the years of prior context people are discussing from,,)

                                  gaditb@icosahedron.websiteG 1 Reply Last reply
                                  1
                                  • gaditb@icosahedron.websiteG gaditb@icosahedron.website

                                    @jonny (My low-key agenda is, I kinda think every FEP should have a section about it. It's like, part of the discussion and the years of prior context people are discussing from,,)

                                    gaditb@icosahedron.websiteG This user is from outside of this forum
                                    gaditb@icosahedron.websiteG This user is from outside of this forum
                                    gaditb@icosahedron.website
                                    wrote last edited by
                                    #38

                                    @jonny Okay actually more directly-specufic-to-content thought. Although one that I don't know the right answer to:

                                    > Constitutively private objects like bookmarks, blocks, and mutes SHOULD be ingested during the ingestion routine for the purposes of creating a seamless migration from the perspective of the migrating Actor, but MUST NOT be included in the migration collection.

                                    For Blocks in particular -- In cases where, as is allowed by SHOULD, a migration (either source or destination) implements migrating posts but /not/ Blocks,
                                    that silently opens up old posts to now no longer be blocked from interaction, which feels particular significant currently (where we don't have shared blocklists) since it means primarily accounts that have been specifically blocked on an individual basis -- likely (? this is an assumption) for recurringly-applicable reasons.

                                    jonny@neuromatch.socialJ 1 Reply Last reply
                                    1
                                    • gaditb@icosahedron.websiteG gaditb@icosahedron.website

                                      @jonny Okay actually more directly-specufic-to-content thought. Although one that I don't know the right answer to:

                                      > Constitutively private objects like bookmarks, blocks, and mutes SHOULD be ingested during the ingestion routine for the purposes of creating a seamless migration from the perspective of the migrating Actor, but MUST NOT be included in the migration collection.

                                      For Blocks in particular -- In cases where, as is allowed by SHOULD, a migration (either source or destination) implements migrating posts but /not/ Blocks,
                                      that silently opens up old posts to now no longer be blocked from interaction, which feels particular significant currently (where we don't have shared blocklists) since it means primarily accounts that have been specifically blocked on an individual basis -- likely (? this is an assumption) for recurringly-applicable reasons.

                                      jonny@neuromatch.socialJ This user is from outside of this forum
                                      jonny@neuromatch.socialJ This user is from outside of this forum
                                      jonny@neuromatch.social
                                      wrote last edited by
                                      #39

                                      @gaditb
                                      Really good point, I have some ideas for language here, and there does need to be a bit more specificity about how to handle visibility for e.g. instance software that may not have blocks importing from software that does - basically that visibility must be at least as constrained as the source object

                                      gaditb@icosahedron.websiteG 1 Reply Last reply
                                      1
                                      • jonny@neuromatch.socialJ jonny@neuromatch.social

                                        @gaditb
                                        Really good point, I have some ideas for language here, and there does need to be a bit more specificity about how to handle visibility for e.g. instance software that may not have blocks importing from software that does - basically that visibility must be at least as constrained as the source object

                                        gaditb@icosahedron.websiteG This user is from outside of this forum
                                        gaditb@icosahedron.websiteG This user is from outside of this forum
                                        gaditb@icosahedron.website
                                        wrote last edited by
                                        #40

                                        @jonny Or at minimum alerted to the user, possible?

                                        But does that even. make sense? Most of the stuff here is, because of FEPs' linage from RFCs, spoken in the language of protocols and behavior/format specifications -- is it coherent to define a part of the specifications as the... I guess, social protocol, interface, etc., of a compliant piece of software towards its users?

                                        (On the one hand those are literally the original pre-computer definitions of "protocol" and "compliant", but on the other hand that is CLEARLY misusing the terms there.)

                                        And even if it is coherent, is it possible to actually do it without becoming a "the Passkey people yelling at and threatening the Keepass devs"?

                                        jonny@neuromatch.socialJ 1 Reply Last reply
                                        0
                                        • gaditb@icosahedron.websiteG gaditb@icosahedron.website

                                          @jonny Or at minimum alerted to the user, possible?

                                          But does that even. make sense? Most of the stuff here is, because of FEPs' linage from RFCs, spoken in the language of protocols and behavior/format specifications -- is it coherent to define a part of the specifications as the... I guess, social protocol, interface, etc., of a compliant piece of software towards its users?

                                          (On the one hand those are literally the original pre-computer definitions of "protocol" and "compliant", but on the other hand that is CLEARLY misusing the terms there.)

                                          And even if it is coherent, is it possible to actually do it without becoming a "the Passkey people yelling at and threatening the Keepass devs"?

                                          jonny@neuromatch.socialJ This user is from outside of this forum
                                          jonny@neuromatch.socialJ This user is from outside of this forum
                                          jonny@neuromatch.social
                                          wrote last edited by
                                          #41

                                          @gaditb
                                          I think both are needed and have their place. And in this case I am actually not sure if there is an opposing party to accidentally be perceived as yelling at - as far as I can tell people pretty universally agree that you should retain control of the things you said and did while moving around and not always lose everything (maybe there is some disagreement about what to move, but the FEP is purposely designed to leave that up to the implementation and ideally the actor)

                                          jonny@neuromatch.socialJ 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
                                          • World
                                          • Users
                                          • Groups