From 4086ed75e4950f096e9e301100633c1b630c574d Mon Sep 17 00:00:00 2001 From: Dakota Brink Date: Thu, 13 Nov 2025 14:57:56 -0500 Subject: [PATCH 1/6] Snapshot archives --- proto/device_sync/blob_backup.proto | 14 ++++++++++++++ proto/device_sync/device_sync.proto | 4 ++++ 2 files changed, 18 insertions(+) create mode 100644 proto/device_sync/blob_backup.proto diff --git a/proto/device_sync/blob_backup.proto b/proto/device_sync/blob_backup.proto new file mode 100644 index 00000000..5983fbed --- /dev/null +++ b/proto/device_sync/blob_backup.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; +package xmtp.device_sync.blob_backup; + +option java_package = "org.xmtp.proto.device_sync"; + +message BlobSave { + BlobTypeSave blob_type = 1; + bytes blob = 2; +} + +enum BlobTypeSave { + BLOB_TYPE_SAVE_UNSPECIFIED = 0; + BLOB_TYPE_SAVE_SNAPSHOT = 1; +} diff --git a/proto/device_sync/device_sync.proto b/proto/device_sync/device_sync.proto index 71fa58b6..09ed31eb 100644 --- a/proto/device_sync/device_sync.proto +++ b/proto/device_sync/device_sync.proto @@ -2,10 +2,12 @@ syntax = "proto3"; package xmtp.device_sync; +import "device_sync/blob_backup.proto"; import "device_sync/consent_backup.proto"; import "device_sync/event_backup.proto"; import "device_sync/group_backup.proto"; import "device_sync/message_backup.proto"; +import "identity/associations/association.proto"; option java_package = "org.xmtp.proto.device_sync"; @@ -17,6 +19,8 @@ message BackupElement { xmtp.device_sync.message_backup.GroupMessageSave group_message = 3; xmtp.device_sync.consent_backup.ConsentSave consent = 4; xmtp.device_sync.event_backup.EventSave event = 5; + xmtp.identity.associations.IdentityUpdate identity_updates = 6; + xmtp.device_sync.blob_backup.BlobSave blob = 7; } } From 156cf3c4d909f6018a99fe2392e89eb15a797d01 Mon Sep 17 00:00:00 2001 From: Dakota Brink Date: Tue, 25 Nov 2025 12:16:42 -0500 Subject: [PATCH 2/6] keypackage type --- proto/device_sync/blob_backup.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/proto/device_sync/blob_backup.proto b/proto/device_sync/blob_backup.proto index 5983fbed..c1fd3a5b 100644 --- a/proto/device_sync/blob_backup.proto +++ b/proto/device_sync/blob_backup.proto @@ -11,4 +11,5 @@ message BlobSave { enum BlobTypeSave { BLOB_TYPE_SAVE_UNSPECIFIED = 0; BLOB_TYPE_SAVE_SNAPSHOT = 1; + BLOB_TYPE_SAVE_KEYPACKAGE = 2; } From 8df4857c3db72a65fea5d80dcbd07ddcce45fee0 Mon Sep 17 00:00:00 2001 From: Dakota Brink Date: Tue, 25 Nov 2025 12:34:55 -0500 Subject: [PATCH 3/6] wip --- proto/device_sync/backup.proto | 12 ++++++++++++ proto/device_sync/blob_backup.proto | 15 --------------- proto/device_sync/device_sync.proto | 5 +++-- 3 files changed, 15 insertions(+), 17 deletions(-) create mode 100644 proto/device_sync/backup.proto delete mode 100644 proto/device_sync/blob_backup.proto diff --git a/proto/device_sync/backup.proto b/proto/device_sync/backup.proto new file mode 100644 index 00000000..af85c741 --- /dev/null +++ b/proto/device_sync/backup.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; +package xmtp.device_sync.blob_backup; + +option java_package = "org.xmtp.proto.device_sync"; + +message SnapshotSave { + bytes snapshot = 1; +} + +message KeypackageSave { + bytes keypackage = 1; +} diff --git a/proto/device_sync/blob_backup.proto b/proto/device_sync/blob_backup.proto deleted file mode 100644 index c1fd3a5b..00000000 --- a/proto/device_sync/blob_backup.proto +++ /dev/null @@ -1,15 +0,0 @@ -syntax = "proto3"; -package xmtp.device_sync.blob_backup; - -option java_package = "org.xmtp.proto.device_sync"; - -message BlobSave { - BlobTypeSave blob_type = 1; - bytes blob = 2; -} - -enum BlobTypeSave { - BLOB_TYPE_SAVE_UNSPECIFIED = 0; - BLOB_TYPE_SAVE_SNAPSHOT = 1; - BLOB_TYPE_SAVE_KEYPACKAGE = 2; -} diff --git a/proto/device_sync/device_sync.proto b/proto/device_sync/device_sync.proto index 64feb57a..a03067db 100644 --- a/proto/device_sync/device_sync.proto +++ b/proto/device_sync/device_sync.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package xmtp.device_sync; -import "device_sync/blob_backup.proto"; +import "device_sync/backup.proto"; import "device_sync/consent_backup.proto"; import "device_sync/event_backup.proto"; import "device_sync/group_backup.proto"; @@ -20,7 +20,8 @@ message BackupElement { xmtp.device_sync.consent_backup.ConsentSave consent = 4; xmtp.device_sync.event_backup.EventSave event = 5; xmtp.identity.associations.IdentityUpdate identity_updates = 6; - xmtp.device_sync.blob_backup.BlobSave blob = 7; + xmtp.device_sync.backup.SnapshotSave snapshot = 7; + xmtp.device_sync.backup.KeypackageSave keypackage = 8; } } From 32410aec8cc997187d957331534f8a1fd6ff38f8 Mon Sep 17 00:00:00 2001 From: Dakota Brink Date: Wed, 26 Nov 2025 13:13:35 -0500 Subject: [PATCH 4/6] package fix --- proto/device_sync/backup.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/device_sync/backup.proto b/proto/device_sync/backup.proto index af85c741..3094781f 100644 --- a/proto/device_sync/backup.proto +++ b/proto/device_sync/backup.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -package xmtp.device_sync.blob_backup; +package xmtp.device_sync.backup; option java_package = "org.xmtp.proto.device_sync"; From 706f4c2868c52fcd938c54587f422bac375527ad Mon Sep 17 00:00:00 2001 From: Dakota Brink Date: Mon, 1 Dec 2025 09:38:29 -0500 Subject: [PATCH 5/6] cleanup --- proto/device_sync/backup.proto | 4 ---- proto/device_sync/device_sync.proto | 1 - 2 files changed, 5 deletions(-) diff --git a/proto/device_sync/backup.proto b/proto/device_sync/backup.proto index 3094781f..e0a5595b 100644 --- a/proto/device_sync/backup.proto +++ b/proto/device_sync/backup.proto @@ -6,7 +6,3 @@ option java_package = "org.xmtp.proto.device_sync"; message SnapshotSave { bytes snapshot = 1; } - -message KeypackageSave { - bytes keypackage = 1; -} diff --git a/proto/device_sync/device_sync.proto b/proto/device_sync/device_sync.proto index a03067db..ade8ccaf 100644 --- a/proto/device_sync/device_sync.proto +++ b/proto/device_sync/device_sync.proto @@ -21,7 +21,6 @@ message BackupElement { xmtp.device_sync.event_backup.EventSave event = 5; xmtp.identity.associations.IdentityUpdate identity_updates = 6; xmtp.device_sync.backup.SnapshotSave snapshot = 7; - xmtp.device_sync.backup.KeypackageSave keypackage = 8; } } From ed9e57e623c3f2192799928e172385ab0be2c78c Mon Sep 17 00:00:00 2001 From: Dakota Brink Date: Tue, 9 Dec 2025 12:18:59 -0500 Subject: [PATCH 6/6] wrap the identity update --- proto/device_sync/device_sync.proto | 4 ++-- proto/device_sync/identity_update_backup.proto | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 proto/device_sync/identity_update_backup.proto diff --git a/proto/device_sync/device_sync.proto b/proto/device_sync/device_sync.proto index 9173cf13..998af619 100644 --- a/proto/device_sync/device_sync.proto +++ b/proto/device_sync/device_sync.proto @@ -6,8 +6,8 @@ import "device_sync/backup.proto"; import "device_sync/consent_backup.proto"; import "device_sync/event_backup.proto"; import "device_sync/group_backup.proto"; +import "device_sync/identity_update_backup.proto"; import "device_sync/message_backup.proto"; -import "identity/associations/association.proto"; option java_package = "org.xmtp.proto.device_sync"; @@ -19,7 +19,7 @@ message BackupElement { xmtp.device_sync.message_backup.GroupMessageSave group_message = 3; xmtp.device_sync.consent_backup.ConsentSave consent = 4; xmtp.device_sync.event_backup.EventSave event = 5 [deprecated = true]; - xmtp.identity.associations.IdentityUpdate identity_updates = 6; + xmtp.device_sync.identity_update_backup.IdentityUpdateSave identity_update = 6; xmtp.device_sync.backup.SnapshotSave snapshot = 7; } } diff --git a/proto/device_sync/identity_update_backup.proto b/proto/device_sync/identity_update_backup.proto new file mode 100644 index 00000000..51e50856 --- /dev/null +++ b/proto/device_sync/identity_update_backup.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; +package xmtp.device_sync.identity_update_backup; + +option java_package = "org.xmtp.proto.device_sync"; + +import "identity/associations/association.proto"; + +// Proto wrapper for an identity update backup +message IdentityUpdateSave { + xmtp.identity.associations.IdentityUpdate identity_update = 1; +}