A persona's archive: exported in Mastodon's layout, imported without telling anyone
A root exports one of its personas (a job) as Mastodon's account archive, so other servers' importers read it: the actor with its public key only, its own posts and boosts with their media, likes, bookmarks and Mastodon's CSV files, plus PrivaPub's filters, followed hashtags, notification policy, pins, scheduled and located posts; nothing of its root, its siblings, its keys or anyone's token. A ticket link downloads it, for a week. An archive (PrivaPub's or Mastodon's) uploaded in pieces is imported into a persona in a job, the parts the root picks, with progress and a stop. SafeArchive refuses links, escaping paths, duplicates, bombs and oversized items, and reads the outbox one item at a time. Imported posts are delivered to no one, put in no home and notify nobody, yet show on the profile, outbox, hashtags and search; back home a post keeps its id, from another actor it gets one of its date and ImportedFromURI, so importing twice changes nothing. Relationships go through the existing services; located, scheduled and likes only when asked; followers never. tools/pasture/scenarios/persona-archive.sh imports mastouser's real Mastodon archive (156 posts, 24 pictures) into a persona Mastodon follows: Mastodon receives none of it, and a second import changes nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
bdc8be4508
commit
3d7d406834
18 files changed
+2377
-7
No files matched your search
@@ -51,9 +51,9 @@ server {
|
||||
proxy_read_timeout 300s;
|
||||
}
|
||||
|
||||
# the administrator's backups (owner decision 2026-10-07): a download streams a whole backup for as long as it takes;
|
||||
# an upload arrives in pieces of at most 32 MB, unbuffered
|
||||
location ^~ /clientapi/admin/backups/download/ {
|
||||
# the administrator's backups and the personas' archives (owner decision 2026-10-07): a download streams a whole one for
|
||||
# as long as it takes; an upload arrives in pieces of at most 32 MB, unbuffered
|
||||
location ~ ^/clientapi/(admin/backups|persona/archive)/download/ {
|
||||
proxy_buffering off;
|
||||
proxy_pass http://127.0.0.1:6970;
|
||||
proxy_http_version 1.1;
|
||||
@@ -65,7 +65,7 @@ server {
|
||||
proxy_read_timeout 3600s;
|
||||
proxy_send_timeout 3600s;
|
||||
}
|
||||
location ^~ /clientapi/admin/backups/uploads {
|
||||
location ~ ^/clientapi/(admin/backups|persona/archive)/uploads {
|
||||
client_max_body_size 40m;
|
||||
proxy_request_buffering off;
|
||||
limit_req zone=privapub_backup_uploads burst=30 nodelay;
|
||||
|
||||
Reference in new issue
Block a user