API for mass Pods creation and data occupation
If I have (user) data somewhere (e.g. from another application that manages accounts) and want to move them to a Pod architecture, it would be interesting to provide an API to create Pods from that and prefill them with certain data from a template or a user database.
In some cases, it might also be helpful for the WebID not to be linked at that point, i.e. the identity provider is dissociated from the pod provider. Imported users could then receive an email to log in to their new pod and set a password. Importing hashed passwords could be an alternative for that. Then the users could connect (through an email link) and find all their data there.
There's this for live S2S portability: https://swicg.github.io/activitypub-data-portability/lola.html
But I actually think this might be easier to work with, particularly given the "import, then authorize/generate/rotate WebID" approach mentioned above: https://codeberg.org/fediverse/fep/src/branch/main/fep/6fcd/fep-6fcd.md
Maybe experiment a little with the above specs (I think there might be reference implementations of both out there already? maybe ask on the SWICG mailing list for leads?), and then request a meeting of the Portability Task Force specifically to discuss your findings so far and open questions? One the one hand, there are lots of "implementation-specific" questions, but many of those overlap almost completely with generally-useful questions about how exports from "JSON-only" implementations can be canonicalized as RDF which are useful to JSON<>RDF interop more generally-- at least the latter seem entirely in-scope for SWICG, IMHO!
Hi @bumblefudge, thanks for sharing and the heads up! Will comment on the fep later :)
Regarding POD export, there is an export feature we have implemented already (somehwere in the settings), albeit there are things missing like versioning, client-discoverable api, ...: You receive an archive with all RDF data (so all activities, keys, ACLs too) in n-quads format bundled in one file. The binaries are stored in a separate directory with the file names beinig the corresponding URIs. See https://github.com/activitypods/activitypods/pull/228#issuecomment-2178174569 for the PR. Reminds me, this needs documentation on https://docs.activitypods.org, thanks!