Update backup import/export with new SendStatus, FilePointer, and GroupSnapshot updates
This commit is contained in:
parent
f44a16489c
commit
301f7a505a
9 changed files with 239 additions and 119 deletions
|
@ -1,6 +1,5 @@
|
|||
// Copyright 2024 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package signalbackups;
|
||||
|
@ -160,7 +159,7 @@ message Group {
|
|||
// We would use Groups.proto if we could, but we want a plaintext version to improve export readability.
|
||||
// For documentation, defer to Groups.proto. The only name change is Group -> GroupSnapshot to avoid the naming conflict.
|
||||
message GroupSnapshot {
|
||||
bytes publicKey = 1;
|
||||
reserved /*publicKey*/ 1; // The field is deprecated in the context of static group state
|
||||
GroupAttributeBlob title = 2;
|
||||
GroupAttributeBlob description = 11;
|
||||
string avatarUrl = 3;
|
||||
|
@ -346,23 +345,49 @@ message ChatItem {
|
|||
}
|
||||
|
||||
message SendStatus {
|
||||
enum Status {
|
||||
UNKNOWN = 0;
|
||||
FAILED = 1;
|
||||
PENDING = 2;
|
||||
SENT = 3;
|
||||
DELIVERED = 4;
|
||||
READ = 5;
|
||||
VIEWED = 6;
|
||||
SKIPPED = 7; // e.g. user in group was blocked, so we skipped sending to them
|
||||
message Pending {}
|
||||
|
||||
message Sent {
|
||||
bool sealedSender = 1;
|
||||
}
|
||||
|
||||
message Delivered {
|
||||
bool sealedSender = 1;
|
||||
}
|
||||
|
||||
message Read {
|
||||
bool sealedSender = 1;
|
||||
}
|
||||
|
||||
message Viewed {
|
||||
bool sealedSender = 1;
|
||||
}
|
||||
|
||||
// e.g. user in group was blocked, so we skipped sending to them
|
||||
message Skipped {}
|
||||
|
||||
message Failed {
|
||||
enum FailureReason {
|
||||
UNKNOWN = 0; // A valid value -- could indicate a crash or lack of information
|
||||
NETWORK = 1;
|
||||
IDENTITY_KEY_MISMATCH = 2;
|
||||
}
|
||||
|
||||
FailureReason reason = 1;
|
||||
}
|
||||
|
||||
uint64 recipientId = 1;
|
||||
Status deliveryStatus = 2;
|
||||
bool networkFailure = 3;
|
||||
bool identityKeyMismatch = 4;
|
||||
bool sealedSender = 5;
|
||||
uint64 lastStatusUpdateTimestamp = 6; // the time the status was last updated -- if from a receipt, it should be the sentTime of the receipt
|
||||
uint64 timestamp = 2; // the time the status was last updated -- if from a receipt, it should be the sentTime of the receipt
|
||||
|
||||
oneof deliveryStatus {
|
||||
Pending pending = 3;
|
||||
Sent sent = 4;
|
||||
Delivered delivered = 5;
|
||||
Read read = 6;
|
||||
Viewed viewed = 7;
|
||||
Skipped skipped = 8;
|
||||
Failed failed = 9;
|
||||
}
|
||||
}
|
||||
|
||||
message Text {
|
||||
|
@ -568,7 +593,7 @@ message FilePointer {
|
|||
optional uint32 cdnNumber = 2;
|
||||
bytes key = 3;
|
||||
bytes digest = 4;
|
||||
uint64 size = 5;
|
||||
uint32 size = 5;
|
||||
// Fallback in case backup tier upload failed.
|
||||
optional string transitCdnKey = 6;
|
||||
optional uint32 transitCdnNumber = 7;
|
||||
|
@ -655,8 +680,11 @@ message Reaction {
|
|||
string emoji = 1;
|
||||
uint64 authorId = 2;
|
||||
uint64 sentTimestamp = 3;
|
||||
// Optional because some clients may not track this data
|
||||
optional uint64 receivedTimestamp = 4;
|
||||
uint64 sortOrder = 5; // A higher sort order means that a reaction is more recent
|
||||
// A higher sort order means that a reaction is more recent. Some clients may export this as
|
||||
// incrementing numbers (e.g. 1, 2, 3), others as timestamps.
|
||||
uint64 sortOrder = 5;
|
||||
}
|
||||
|
||||
message ChatUpdateMessage {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue