Add owner-only room backup snapshots and audited exports

This commit is contained in:
Quintine committed 2026-09-28 20:12:57 +10:00
1 parent 92564f8de5
commit 53a1ba77a1
19 files changed
+5613 -4

No files matched your search

+15
View File
@@ -0,0 +1,15 @@
CREATE TABLE `admin_room_backups` (
`operation_id` text PRIMARY KEY NOT NULL,
`actor_admin_id` text NOT NULL,
`room_code` text NOT NULL,
`request_hash` text NOT NULL,
`room_version` integer NOT NULL,
`created_at` integer NOT NULL,
`size_bytes` integer NOT NULL,
`digest` text NOT NULL,
`payload` text NOT NULL,
`reason` text NOT NULL,
CONSTRAINT `admin_room_backups_size` CHECK (`size_bytes` BETWEEN 1 AND 1800000 AND `size_bytes` = length(CAST(`payload` AS BLOB)))
);
--> statement-breakpoint
CREATE INDEX `admin_room_backups_room` ON `admin_room_backups` (`room_code`,`created_at`);
+9
View File
@@ -0,0 +1,9 @@
CREATE TABLE `admin_room_backup_downloads` (
`download_id` text PRIMARY KEY NOT NULL,
`operation_id` text NOT NULL,
`actor_admin_id` text NOT NULL,
`room_code` text NOT NULL,
`created_at` integer NOT NULL
);
--> statement-breakpoint
CREATE INDEX `admin_room_backup_downloads_room` ON `admin_room_backup_downloads` (`room_code`,`created_at`);
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+14
View File
@@ -120,6 +120,20 @@
"when": 1790395696065,
"tag": "0016_seat_discussion_controls",
"breakpoints": true
},
{
"idx": 17,
"version": "6",
"when": 1790640000000,
"tag": "0017_admin_room_backups",
"breakpoints": true
},
{
"idx": 18,
"version": "6",
"when": 1790640001000,
"tag": "0018_admin_backup_downloads",
"breakpoints": true
}
]
}