diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4eb3d7e379..53ffb0a6c3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -middlewareVersion = "v0.40.0-rc9" +middlewareVersion = "v0.40.0" kotlinVersion = '2.0.21' kspVersion = "2.0.21-1.0.25" diff --git a/protocol/src/main/proto/commands.proto b/protocol/src/main/proto/commands.proto index a82465cde6..1bb6ba238e 100644 --- a/protocol/src/main/proto/commands.proto +++ b/protocol/src/main/proto/commands.proto @@ -151,6 +151,11 @@ message Rpc { message InviteGenerate { message Request { string spaceId = 1; + InviteType inviteType = 2; + enum InviteType { + Member = 0; + Guest = 1; + } } message Response { @@ -228,6 +233,32 @@ message Rpc { } } + message InviteGetGuest { + message Request { + string spaceId = 1; + } + + message Response { + Error error = 1; + string inviteCid = 2; + string inviteFileKey = 3; + + message Error { + Code code = 1; + string description = 2; + + enum Code { + NULL = 0; + UNKNOWN_ERROR = 1; + BAD_INPUT = 2; + + INVALID_SPACE_TYPE = 101; + } + } + } + } + + message InviteRevoke { message Request { string spaceId = 1; @@ -267,6 +298,7 @@ message Rpc { string spaceName = 3; string spaceIconCid = 4; string creatorName = 5; + bool isGuestUserInvite = 6; message Error { Code code = 1; @@ -706,6 +738,7 @@ message Rpc { string networkCustomConfigFilePath = 7; // config path for the custom network mode } bool preferYamuxTransport = 8; // optional, default is false, recommended in case of problems with QUIC transport string jsonApiListenAddr = 9; // optional, if empty json api will not be started; 127.0.0.1:31009 should be the default one + string joinStreamUrl = 10; // anytype:// schema URL to join an embed stream } /** * Middleware-to-front-end response for an account creation request, that can contain a NULL error and created account or a non-NULL error and an empty account @@ -827,6 +860,7 @@ message Rpc { message Error { Code code = 1; string description = 2; + int64 requiredSpace = 3; enum Code { NULL = 0; // No error @@ -878,6 +912,7 @@ message Rpc { bool preferYamuxTransport = 6; // optional, default is false, recommended in case of problems with QUIC transport string jsonApiListenAddr = 7; // optional, if empty json api will not be started; 127.0.0.1:31009 should be the default one string fulltextPrimaryLanguage = 8; // optional, default fts language + string joinStreamURL = 9; // anytype:// schema URL to join an embed stream } /** @@ -3040,6 +3075,7 @@ message Rpc { NONE = 0; GET_STARTED = 1; EMPTY = 2; + GUIDE_ONLY = 3; // only the guide without other tables } } diff --git a/protocol/src/main/proto/models.proto b/protocol/src/main/proto/models.proto index 08e610e4b1..38577c2bf1 100644 --- a/protocol/src/main/proto/models.proto +++ b/protocol/src/main/proto/models.proto @@ -1195,11 +1195,18 @@ message Invite { message InvitePayload { string creatorIdentity = 1; string creatorName = 2; - bytes inviteKey = 3; + bytes aclKey = 3; string spaceId = 4; string spaceName = 5; string spaceIconCid = 6; repeated FileEncryptionKey spaceIconEncryptionKeys = 7; + + InviteType inviteType = 8; + bytes guestKey = 9; + enum InviteType { + JoinAsMember = 0; // aclKey contains the key to sign the ACL record + JoinAsGuest = 1; // guestKey contains the privateKey of the guest user + } } message IdentityProfile {