|
|
|
@ -44,9 +44,9 @@ message SharedConfigMessage {
|
|
|
|
|
CONTACTS = 2;
|
|
|
|
|
CONVO_INFO_VOLATILE = 3;
|
|
|
|
|
USER_GROUPS = 4;
|
|
|
|
|
// CLOSED_GROUP_INFO = 5;
|
|
|
|
|
// CLOSED_GROUP_MEMBERS = 6;
|
|
|
|
|
// ENCRYPTION_KEYS = 7;
|
|
|
|
|
GROUP_INFO = 5;
|
|
|
|
|
GROUP_MEMBERS = 6;
|
|
|
|
|
GROUP_KEYS = 7;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
required Kind kind = 1;
|
|
|
|
@ -85,41 +85,90 @@ message DataExtractionNotification {
|
|
|
|
|
optional uint64 timestamp = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// message GroupInviteMessage {
|
|
|
|
|
// required string name = 1;
|
|
|
|
|
// required bytes memberPrivateKey = 2;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// this will replace our closedGroupControlMessage but we will need to keep both for some time
|
|
|
|
|
// message GroupMessage {
|
|
|
|
|
// optional GroupAdminMessage adminMessage = 31;
|
|
|
|
|
// optional GroupMemberLeftMessage memberLeftMessage = 32;
|
|
|
|
|
// optional GroupInviteMessage inviteMessage = 33;
|
|
|
|
|
// optional GroupPromoteMessage promoteMessage = 34;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// message GroupPromoteMessage {
|
|
|
|
|
// required bytes privateKey = 1; // this is the group admins key
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// message GroupAdminMessage {
|
|
|
|
|
// enum Type {
|
|
|
|
|
// DELETE_GROUP = 1; // members, groupSignature
|
|
|
|
|
// DELETE_GROUP_ALL_MEMBERS = 2; // groupSignature
|
|
|
|
|
// DELETE_MESSAGES_ALL_MEMBERS = 3; // groupSignature
|
|
|
|
|
// DELETE_ATTACHMENTS_ALL_MEMBERS = 4; // groupSignature
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // @required
|
|
|
|
|
// required Type type = 1;
|
|
|
|
|
// repeated bytes members = 2;
|
|
|
|
|
message GroupUpdateInviteMessage {
|
|
|
|
|
// @required
|
|
|
|
|
// required bytes groupSignature = 3; // used by every members to make sure incoming admin action can be trusted
|
|
|
|
|
// }
|
|
|
|
|
required bytes groupIdentityPublicKey = 1;
|
|
|
|
|
// @required
|
|
|
|
|
required string name = 2;
|
|
|
|
|
// @required
|
|
|
|
|
required bytes memberSubkey = 3;
|
|
|
|
|
// @required
|
|
|
|
|
required bytes memberTag = 4;
|
|
|
|
|
optional bytes profileKey = 5;
|
|
|
|
|
optional LokiProfile profile = 6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message GroupUpdateDeleteMessage {
|
|
|
|
|
// @required
|
|
|
|
|
required bytes groupIdentityPublicKey = 1;
|
|
|
|
|
// @required
|
|
|
|
|
required bytes encryptedMemberSubkey = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message GroupUpdateInfoChangeMessage {
|
|
|
|
|
enum Type {
|
|
|
|
|
NAME = 1;
|
|
|
|
|
AVATAR = 2;
|
|
|
|
|
DISAPPEARING_MESSAGES = 3;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// @required
|
|
|
|
|
required Type type = 1;
|
|
|
|
|
optional string updatedName = 2;
|
|
|
|
|
optional uint32 updatedExpiration = 3;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message GroupUpdateMemberChangeMessage {
|
|
|
|
|
enum Type {
|
|
|
|
|
ADDED = 1;
|
|
|
|
|
REMOVED = 2;
|
|
|
|
|
PROMOTED = 3;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// @required
|
|
|
|
|
required Type type = 1;
|
|
|
|
|
repeated bytes memberPublicKeys = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message GroupUpdatePromoteMessage {
|
|
|
|
|
// @required
|
|
|
|
|
required bytes memberPublicKey = 1;
|
|
|
|
|
// @required
|
|
|
|
|
required bytes encryptedGroupIdentityPrivateKey = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message GroupUpdateMemberLeftMessage {
|
|
|
|
|
// the pubkey of the member left is included as part of the closed group encryption logic (senderIdentity on desktop)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message GroupUpdateInviteResponseMessage {
|
|
|
|
|
// @required
|
|
|
|
|
required bool isApproved = 1; // Whether the request was approved
|
|
|
|
|
optional bytes profileKey = 2;
|
|
|
|
|
optional LokiProfile profile = 3;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message GroupUpdatePromotionResponseMessage {
|
|
|
|
|
// @required
|
|
|
|
|
required bytes encryptedMemberPublicKey = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message GroupUpdateDeleteMemberContentMessage {
|
|
|
|
|
repeated bytes memberPublicKeys = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message GroupUpdateMessage {
|
|
|
|
|
optional GroupUpdateInviteMessage inviteMessage = 31;
|
|
|
|
|
optional GroupUpdateDeleteMessage deleteMessage = 32;
|
|
|
|
|
optional GroupUpdateInfoChangeMessage infoChangeMessage = 33;
|
|
|
|
|
optional GroupUpdateMemberChangeMessage memberChangeMessage = 34;
|
|
|
|
|
optional GroupUpdatePromoteMessage promoteMessage = 35;
|
|
|
|
|
optional GroupUpdateMemberLeftMessage memberLeftMessage = 36;
|
|
|
|
|
optional GroupUpdateInviteResponseMessage inviteResponse = 37;
|
|
|
|
|
optional GroupUpdatePromotionResponseMessage promotionResponse = 38;
|
|
|
|
|
optional GroupUpdateDeleteMemberContentMessage deleteMemberContent = 39;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// message GroupMemberLeftMessage {
|
|
|
|
|
// the pubkey of the member who left is already in the senderIdentity
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
message DataMessage {
|
|
|
|
@ -225,8 +274,7 @@ message DataMessage {
|
|
|
|
|
optional ClosedGroupControlMessage closedGroupControlMessage = 104;
|
|
|
|
|
optional string syncTarget = 105;
|
|
|
|
|
optional bool blocksCommunityMessageRequests = 106;
|
|
|
|
|
// optional GroupMessage groupMessage = 120;
|
|
|
|
|
}
|
|
|
|
|
optional GroupUpdateMessage groupUpdateMessage = 120;}
|
|
|
|
|
|
|
|
|
|
message CallMessage {
|
|
|
|
|
|
|
|
|
|