Salta al contenuto
0
  • Home
  • Piero Bosio
  • Blog
  • Mondo
  • Fediverso
  • News
  • Categorie
  • Old Web Site
  • Recenti
  • Popolare
  • Tag
  • Utenti
  • Home
  • Piero Bosio
  • Blog
  • Mondo
  • Fediverso
  • News
  • Categorie
  • Old Web Site
  • Recenti
  • Popolare
  • Tag
  • Utenti
Skin
  • Chiaro
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Scuro
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Predefinito (Nessuna skin)
  • Nessuna skin
Collassa

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone
  1. Home
  2. Categorie
  3. Technical Discussion
  4. 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.

Pianificato Fissato Bloccato Spostato Technical Discussion
moveallpostsfedidevfepfep1580fullmigrationaccountmigration
56 Post 12 Autori 211 Visualizzazioni
  • Da Vecchi a Nuovi
  • Da Nuovi a Vecchi
  • Più Voti
Rispondi
  • Risposta alla discussione
Effettua l'accesso per rispondere
Questa discussione è stata eliminata. Solo gli utenti con diritti di gestione possono vederla.
  • jonny@neuromatch.social
    jonny@neuromatch.social
    jonny@neuromatch.social
    scritto su ultima modifica di
    #1

    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.

    https://codeberg.org/fediverse/fep/src/commit/e6f7b7ce32aa6f84dcfa7bfdc10fd65119d75984/fep/1580/fep-1580.md

    https://codeberg.org/fediverse/fep/pulls/692

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

    jonny@neuromatch.social mariusor@metalhead.club kopper@not-brain.d.on-t.work elduvelle@neuromatch.social rimu@piefed.social 7 Risposte Ultima Risposta
    0
    • jonny@neuromatch.social 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.

      https://codeberg.org/fediverse/fep/src/commit/e6f7b7ce32aa6f84dcfa7bfdc10fd65119d75984/fep/1580/fep-1580.md

      https://codeberg.org/fediverse/fep/pulls/692

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

      jonny@neuromatch.social
      jonny@neuromatch.social
      jonny@neuromatch.social
      scritto su ultima modifica di
      #2

      and no it doesn't require emitting and processing 100,000 Move activities to 10,000 instances at once

      jonny@neuromatch.social 1 Risposta Ultima Risposta
      0
      • jonny@neuromatch.social jonny@neuromatch.social

        and no it doesn't require emitting and processing 100,000 Move activities to 10,000 instances at once

        jonny@neuromatch.social
        jonny@neuromatch.social
        jonny@neuromatch.social
        scritto su ultima modifica di
        #3

        i think i'm supposed to direct discussion here, but i also linked back here from there, so idk in the spirit of everything being everywhere as far as i'm concerned go hogwild and yell at me online wherever you want

        https://socialhub.activitypub.rocks/t/fep-1580-move-actor-objects-with-a-migration-collection/8111

        jonny@neuromatch.social julian@activitypub.space 2 Risposte Ultima Risposta
        0
        • jonny@neuromatch.social jonny@neuromatch.social

          i think i'm supposed to direct discussion here, but i also linked back here from there, so idk in the spirit of everything being everywhere as far as i'm concerned go hogwild and yell at me online wherever you want

          https://socialhub.activitypub.rocks/t/fep-1580-move-actor-objects-with-a-migration-collection/8111

          jonny@neuromatch.social
          jonny@neuromatch.social
          jonny@neuromatch.social
          scritto su ultima modifica di
          #4

          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.ca 1 Risposta Ultima Risposta
          0
          • jonny@neuromatch.social 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.

            https://codeberg.org/fediverse/fep/src/commit/e6f7b7ce32aa6f84dcfa7bfdc10fd65119d75984/fep/1580/fep-1580.md

            https://codeberg.org/fediverse/fep/pulls/692

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

            mariusor@metalhead.club
            mariusor@metalhead.club
            mariusor@metalhead.club
            scritto su ultima modifica di
            #5

            > The mapping from old to new URIs is not knowable in advance, as the local IDs used by one instance software need not map onto the IDs used by another

            @jonny frankly you're making it more difficult for yourself here. There's no actual reason why regenerating all IDs should be necessary.

            You're forcing the new server to do processing for every moved object, which is very inefficient.

            A good proposal should try to make the whole move in one batch. Keep the existing ID paths and mitigate against collisions by having them namespaced properly in the first place (which I think most servers kinda do already).

            jonny@neuromatch.social kopper@not-brain.d.on-t.work 2 Risposte Ultima Risposta
            0
            • mariusor@metalhead.club mariusor@metalhead.club

              > The mapping from old to new URIs is not knowable in advance, as the local IDs used by one instance software need not map onto the IDs used by another

              @jonny frankly you're making it more difficult for yourself here. There's no actual reason why regenerating all IDs should be necessary.

              You're forcing the new server to do processing for every moved object, which is very inefficient.

              A good proposal should try to make the whole move in one batch. Keep the existing ID paths and mitigate against collisions by having them namespaced properly in the first place (which I think most servers kinda do already).

              jonny@neuromatch.social
              jonny@neuromatch.social
              jonny@neuromatch.social
              scritto su ultima modifica di
              #6

              @mariusor cool well i figured that the URI mapping step (which is cheap) was a good compromise vs "modifying the URI structure in every existing fediverse app to support proper namespacing" especially since you do need to hit each object to update the proofs anyway, but note taken.

              1 Risposta Ultima Risposta
              0
              • mariusor@metalhead.club mariusor@metalhead.club

                > The mapping from old to new URIs is not knowable in advance, as the local IDs used by one instance software need not map onto the IDs used by another

                @jonny frankly you're making it more difficult for yourself here. There's no actual reason why regenerating all IDs should be necessary.

                You're forcing the new server to do processing for every moved object, which is very inefficient.

                A good proposal should try to make the whole move in one batch. Keep the existing ID paths and mitigate against collisions by having them namespaced properly in the first place (which I think most servers kinda do already).

                kopper@not-brain.d.on-t.work
                kopper@not-brain.d.on-t.work
                kopper@not-brain.d.on-t.work
                scritto su ultima modifica di
                #7
                @mariusor @jonny another problem requiring namespacing would've massively helped. and yet we must keep bikeshedding because the spec people say so
                jonny@neuromatch.social mariusor@metalhead.club 2 Risposte Ultima Risposta
                1
                • kopper@not-brain.d.on-t.work kopper@not-brain.d.on-t.work
                  @mariusor @jonny another problem requiring namespacing would've massively helped. and yet we must keep bikeshedding because the spec people say so
                  jonny@neuromatch.social
                  jonny@neuromatch.social
                  jonny@neuromatch.social
                  scritto su ultima modifica di
                  #8

                  @kopper @mariusor this FEP is totally orthogonal to other FEPs that make migration unnecessary, including by giving objects content addresses, which i would definitely prefer. this FEP addresses a huge problem given the current state of fedi software, but yes ideally things would have already been done better.

                  1 Risposta Ultima Risposta
                  0
                  • jonny@neuromatch.social 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.

                    https://codeberg.org/fediverse/fep/src/commit/e6f7b7ce32aa6f84dcfa7bfdc10fd65119d75984/fep/1580/fep-1580.md

                    https://codeberg.org/fediverse/fep/pulls/692

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

                    kopper@not-brain.d.on-t.work
                    kopper@not-brain.d.on-t.work
                    kopper@not-brain.d.on-t.work
                    scritto su ultima modifica di
                    #9
                    @jonny still reading so not everything but:
                    Supporting instances MUST indicate their support of this FEP by including its namespace in the @context of affected Actor objects.
                    the recent archive.org downtime made all objects with contexts containing purl.org URLs completely unfederatable for any json-ld handling software. i really recommend not MUST-ing this
                    jonny@neuromatch.social 1 Risposta Ultima Risposta
                    0
                    • kopper@not-brain.d.on-t.work kopper@not-brain.d.on-t.work
                      @jonny still reading so not everything but:
                      Supporting instances MUST indicate their support of this FEP by including its namespace in the @context of affected Actor objects.
                      the recent archive.org downtime made all objects with contexts containing purl.org URLs completely unfederatable for any json-ld handling software. i really recommend not MUST-ing this
                      jonny@neuromatch.social
                      jonny@neuromatch.social
                      jonny@neuromatch.social
                      scritto su ultima modifica di
                      #10

                      @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.

                      kopper@not-brain.d.on-t.work julian@activitypub.space 2 Risposte Ultima Risposta
                      0
                      • kopper@not-brain.d.on-t.work kopper@not-brain.d.on-t.work
                        @mariusor @jonny another problem requiring namespacing would've massively helped. and yet we must keep bikeshedding because the spec people say so
                        mariusor@metalhead.club
                        mariusor@metalhead.club
                        mariusor@metalhead.club
                        scritto su ultima modifica di
                        #11

                        @kopper I don't understand your complaint here, nor the "subtle" dig at the spec writers.

                        @jonny

                        jonny@neuromatch.social 1 Risposta Ultima Risposta
                        0
                        • mariusor@metalhead.club mariusor@metalhead.club

                          @kopper I don't understand your complaint here, nor the "subtle" dig at the spec writers.

                          @jonny

                          jonny@neuromatch.social
                          jonny@neuromatch.social
                          jonny@neuromatch.social
                          scritto su ultima modifica di
                          #12

                          @mariusor not speaking for @kopper , but there's a longstanding problem that linked data doesn't do namespacing and doesn't handle relative locations/identities at all, and that bleeds into activitypub and fedi app design. so like fully agreed that it would be way more convenient to just be able to pick up a whole subtree that includes all my posts and move it over there because all the relationships between things are relative to a single root, but it don't work that way atm unfortunately

                          kopper@not-brain.d.on-t.work 1 Risposta Ultima Risposta
                          0
                          • jonny@neuromatch.social 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.

                            kopper@not-brain.d.on-t.work
                            kopper@not-brain.d.on-t.work
                            kopper@not-brain.d.on-t.work
                            scritto su ultima modifica di
                            #13
                            @jonny feature-detection based on the moves and migration collections' presence would be enough for this purpose i'd think?
                            jonny@neuromatch.social 1 Risposta Ultima Risposta
                            0
                            • kopper@not-brain.d.on-t.work kopper@not-brain.d.on-t.work
                              @jonny feature-detection based on the moves and migration collections' presence would be enough for this purpose i'd think?
                              jonny@neuromatch.social
                              jonny@neuromatch.social
                              jonny@neuromatch.social
                              scritto su ultima modifica di
                              #14

                              @kopper ya that's what i landed on - it's effectively the same as requiring the vocabulary to be declared in the context, since the properties moves and migration would otherwise be undefined in the json-ld document. i still would just like to have a standard way of declaring instance capabilities (and i could have sworn there already was one) so there's an unambiguous, easily resolved way of checking "does the instance know about this" without having to happen upon it by refreshing a migrated account

                              1 Risposta Ultima Risposta
                              0
                              • jonny@neuromatch.social jonny@neuromatch.social

                                @mariusor not speaking for @kopper , but there's a longstanding problem that linked data doesn't do namespacing and doesn't handle relative locations/identities at all, and that bleeds into activitypub and fedi app design. so like fully agreed that it would be way more convenient to just be able to pick up a whole subtree that includes all my posts and move it over there because all the relationships between things are relative to a single root, but it don't work that way atm unfortunately

                                kopper@not-brain.d.on-t.work
                                kopper@not-brain.d.on-t.work
                                kopper@not-brain.d.on-t.work
                                scritto su ultima modifica di
                                #15
                                @jonny @mariusor from what i can tell the only reason the origin based security model and it's problems are a thing at all is because there is no mechanism to see who "owns" an object from a reference alone, which namespacing would solve

                                otherwise you have to fetch every single object ever referenced just to check for a backlink. not only is fetching over AP is already inefficient as it is with no batching and surprisingly slow crypto,
                                nobody serves backlinks of any kind
                                jonny@neuromatch.social mariusor@metalhead.club trwnh@mastodon.social 3 Risposte Ultima Risposta
                                0
                                • kopper@not-brain.d.on-t.work kopper@not-brain.d.on-t.work
                                  @jonny @mariusor from what i can tell the only reason the origin based security model and it's problems are a thing at all is because there is no mechanism to see who "owns" an object from a reference alone, which namespacing would solve

                                  otherwise you have to fetch every single object ever referenced just to check for a backlink. not only is fetching over AP is already inefficient as it is with no batching and surprisingly slow crypto,
                                  nobody serves backlinks of any kind
                                  jonny@neuromatch.social
                                  jonny@neuromatch.social
                                  jonny@neuromatch.social
                                  scritto su ultima modifica di
                                  #16

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

                                  mariusor@metalhead.club trwnh@mastodon.social 2 Risposte Ultima Risposta
                                  0
                                  • jonny@neuromatch.social 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

                                    mariusor@metalhead.club
                                    mariusor@metalhead.club
                                    mariusor@metalhead.club
                                    scritto su ultima modifica di
                                    #17

                                    @jonny that's how I do it in ONI. But because it's a service that supports client to server the ID of the object can be generated in the client (or by the user) when they submit the Create activity.

                                    See here an example: https://marius.federated.id/uploads/big-air-package (you can CURL that as ActivityPub IRI, or in a browser as HTML or directly access the image with the Accept: image/jpeg header)

                                    @kopper

                                    1 Risposta Ultima Risposta
                                    0
                                    • kopper@not-brain.d.on-t.work kopper@not-brain.d.on-t.work
                                      @jonny @mariusor from what i can tell the only reason the origin based security model and it's problems are a thing at all is because there is no mechanism to see who "owns" an object from a reference alone, which namespacing would solve

                                      otherwise you have to fetch every single object ever referenced just to check for a backlink. not only is fetching over AP is already inefficient as it is with no batching and surprisingly slow crypto,
                                      nobody serves backlinks of any kind
                                      mariusor@metalhead.club
                                      mariusor@metalhead.club
                                      mariusor@metalhead.club
                                      scritto su ultima modifica di
                                      #18

                                      @kopper TY. :)

                                      And fetching every single object in order to check who owns it should be the norm when that's relevant.

                                      And quoting form your post on the activitypub.rocks forum:

                                      > Therefore, if a user can create an actor-like object with private keys in their control, they can impersonate any other actor on their instance.

                                      I don't follow your explanation. Maybe it's because I never plan to support request time fully dynamic JSON-LD contexts, because for the type of API I want to use for GoActivityPub, the best I'll be able to do is compilation time dynamic.

                                      kopper@not-brain.d.on-t.work 1 Risposta Ultima Risposta
                                      0
                                      • mariusor@metalhead.club mariusor@metalhead.club

                                        @kopper TY. :)

                                        And fetching every single object in order to check who owns it should be the norm when that's relevant.

                                        And quoting form your post on the activitypub.rocks forum:

                                        > Therefore, if a user can create an actor-like object with private keys in their control, they can impersonate any other actor on their instance.

                                        I don't follow your explanation. Maybe it's because I never plan to support request time fully dynamic JSON-LD contexts, because for the type of API I want to use for GoActivityPub, the best I'll be able to do is compilation time dynamic.

                                        kopper@not-brain.d.on-t.work
                                        kopper@not-brain.d.on-t.work
                                        kopper@not-brain.d.on-t.work
                                        scritto su ultima modifica di
                                        #19
                                        @mariusor this only becomes an issue for software which aims to be completely generic, with little to no knowledge on the objects being stored in them. if that is not a goal then you don't need to worry about this attack on your own actors
                                        mariusor@metalhead.club 1 Risposta Ultima Risposta
                                        0
                                        • kopper@not-brain.d.on-t.work kopper@not-brain.d.on-t.work
                                          @mariusor this only becomes an issue for software which aims to be completely generic, with little to no knowledge on the objects being stored in them. if that is not a goal then you don't need to worry about this attack on your own actors
                                          mariusor@metalhead.club
                                          mariusor@metalhead.club
                                          mariusor@metalhead.club
                                          scritto su ultima modifica di
                                          #20

                                          @kopper I saw that the code you posted as an example for the issue was C#.

                                          Do you maybe have a solution on how to make the dynamic nature of JSON-LD documents play nice with static typing and low overhead data types for the Activity Vocabulary?

                                          For GoActivityPub I want an object in the vocabulary to correspond to an identically structured data type.

                                          So far I can only think of compile time metaprogramming to generate these types based on a known list of JSON-LD contexts, but maybe I'm not seeing the whole picture.

                                          1 Risposta Ultima Risposta
                                          0

                                          Ciao! Sembra che tu sia interessato a questa conversazione, ma non hai ancora un account.

                                          Stanco di dover scorrere gli stessi post a ogni visita? Quando registri un account, tornerai sempre esattamente dove eri rimasto e potrai scegliere di essere avvisato delle nuove risposte (tramite email o notifica push). Potrai anche salvare segnalibri e votare i post per mostrare il tuo apprezzamento agli altri membri della comunità.

                                          Con il tuo contributo, questo post potrebbe essere ancora migliore 💗

                                          Registrati Accedi
                                          Rispondi
                                          • Risposta alla discussione
                                          Effettua l'accesso per rispondere
                                          • Da Vecchi a Nuovi
                                          • Da Nuovi a Vecchi
                                          • Più Voti


                                          • 1
                                          • 2
                                          • 3
                                          Feed RSS
                                          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.
                                          @pierobosio@soc.bosio.info
                                          NodeBB Contributors
                                          • Accedi

                                          • Accedi o registrati per effettuare la ricerca.
                                          • Primo post
                                            Ultimo post