From 0e67767d112c1f34990c02c64b51c74fbfbbc59c Mon Sep 17 00:00:00 2001
From: Alex Petraky <petraky@perx.ru>
Date: Tue, 12 Nov 2024 09:18:29 +0000
Subject: [PATCH] =?UTF-8?q?chore:=20=D0=9F=D0=B5=D1=80=D0=B5=D0=B3=D0=B5?=
 =?UTF-8?q?=D0=BD=D0=B5=D1=80=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D1=8B=20?=
 =?UTF-8?q?=D0=BA=D0=BB=D0=B8=D0=B5=D0=BD=D1=82=D1=8B,=20=D0=BC=D0=BE?=
 =?UTF-8?q?=D0=BA=D0=B8,=20middleware?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Issue #2862
---
 pkg/collections/middleware/middleware.go      |    1 +
 proto/clients/clients.pb.go                   |  336 +----
 proto/clients/clients_grpc.pb.go              |    2 +-
 proto/collaborators/collaborators.pb.go       |  182 +--
 proto/collaborators/collaborators_grpc.pb.go  |    2 +-
 proto/common/common.pb.go                     |  118 +-
 proto/common/error.pb.go                      |  160 +--
 proto/common/operation.pb.go                  |   28 +-
 proto/common/operation_service.pb.go          |   50 +-
 proto/common/operation_service_grpc.pb.go     |    2 +-
 proto/common/validation.pb.go                 |   28 +-
 proto/delivery/delivery.pb.go                 |  380 +----
 proto/delivery/delivery_grpc.pb.go            |    2 +-
 proto/environments/environments.pb.go         |  336 +----
 proto/environments/environments_grpc.pb.go    |    2 +-
 proto/extensions/extension.pb.go              |   50 +-
 proto/extensions/extension_service.pb.go      |   94 +-
 proto/extensions/extension_service_grpc.pb.go |    2 +-
 proto/extensions/manager_service.pb.go        |  248 +---
 proto/extensions/manager_service_grpc.pb.go   |    2 +-
 proto/files/files.pb.go                       |  402 +-----
 proto/files/files_grpc.pb.go                  |    2 +-
 proto/images/images.pb.go                     |   94 +-
 proto/images/images_grpc.pb.go                |    2 +-
 proto/invitations/invitations.pb.go           |  336 +----
 proto/invitations/invitations_grpc.pb.go      |    2 +-
 proto/items/items.pb.go                       | 1238 +++--------------
 proto/items/items_grpc.pb.go                  |    2 +-
 proto/locales/locales.pb.go                   |  160 +--
 proto/locales/locales_grpc.pb.go              |    2 +-
 proto/logs/log.pb.go                          |   28 +-
 proto/logs/log_service.pb.go                  |  182 +--
 proto/logs/log_service_grpc.pb.go             |    2 +-
 proto/members/members.pb.go                   |  248 +---
 proto/members/members_grpc.pb.go              |    2 +-
 proto/mocks/ClientsClient.go                  |   30 +-
 proto/mocks/ClientsServer.go                  |   30 +-
 proto/mocks/CollaboratorsClient.go            |   22 +-
 proto/mocks/CollaboratorsServer.go            |   22 +-
 proto/mocks/CollectionsClient.go              |   26 +-
 proto/mocks/CollectionsServer.go              |   26 +-
 proto/mocks/DeliveryClient.go                 |   34 +-
 proto/mocks/DeliveryServer.go                 |   34 +-
 proto/mocks/EnvironmentsClient.go             |   34 +-
 proto/mocks/EnvironmentsServer.go             |   34 +-
 proto/mocks/ExtensionManagerServiceClient.go  |  179 +++
 proto/mocks/ExtensionManagerServiceServer.go  |  154 ++
 proto/mocks/ExtensionServiceClient.go         |  182 +++
 proto/mocks/ExtensionServiceServer.go         |  157 +++
 proto/mocks/FilesClient.go                    |   30 +-
 proto/mocks/FilesServer.go                    |   30 +-
 proto/mocks/ImagesClient.go                   |    6 +-
 proto/mocks/ImagesServer.go                   |    6 +-
 proto/mocks/InvitationsClient.go              |   22 +-
 proto/mocks/InvitationsServer.go              |   22 +-
 proto/mocks/ItemsClient.go                    |   74 +-
 proto/mocks/ItemsServer.go                    |   74 +-
 proto/mocks/LocalesClient.go                  |   51 +-
 proto/mocks/LocalesServer.go                  |   44 +-
 proto/mocks/LogsServiceClient.go              |  143 ++
 proto/mocks/LogsServiceServer.go              |  124 ++
 proto/mocks/MembersClient.go                  |   22 +-
 proto/mocks/MembersServer.go                  |   22 +-
 proto/mocks/ObserverClient.go                 |    6 +-
 proto/mocks/ObserverServer.go                 |    6 +-
 proto/mocks/OperationServiceClient.go         |   10 +-
 proto/mocks/OperationServiceServer.go         |   10 +-
 proto/mocks/OrganizationsClient.go            |   22 +-
 proto/mocks/OrganizationsServer.go            |   22 +-
 proto/mocks/ReferencesClient.go               |   10 +-
 proto/mocks/ReferencesServer.go               |   10 +-
 proto/mocks/RolesClient.go                    |   22 +-
 proto/mocks/RolesServer.go                    |   22 +-
 proto/mocks/SpacesClient.go                   |   79 +-
 proto/mocks/SpacesServer.go                   |   72 +-
 proto/mocks/UnsafeClientsServer.go            |    2 +-
 proto/mocks/UnsafeCollaboratorsServer.go      |    2 +-
 proto/mocks/UnsafeCollectionsServer.go        |    2 +-
 proto/mocks/UnsafeDeliveryServer.go           |    2 +-
 proto/mocks/UnsafeEnvironmentsServer.go       |    2 +-
 .../UnsafeExtensionManagerServiceServer.go    |   29 +
 proto/mocks/UnsafeExtensionServiceServer.go   |   29 +
 proto/mocks/UnsafeFilesServer.go              |    2 +-
 proto/mocks/UnsafeImagesServer.go             |    2 +-
 proto/mocks/UnsafeInvitationsServer.go        |    2 +-
 proto/mocks/UnsafeItemsServer.go              |    2 +-
 proto/mocks/UnsafeLocalesServer.go            |    2 +-
 proto/mocks/UnsafeLogsServiceServer.go        |   29 +
 proto/mocks/UnsafeMembersServer.go            |    2 +-
 proto/mocks/UnsafeObserverServer.go           |    2 +-
 proto/mocks/UnsafeOperationServiceServer.go   |    2 +-
 proto/mocks/UnsafeOrganizationsServer.go      |    2 +-
 proto/mocks/UnsafeReferencesServer.go         |    2 +-
 proto/mocks/UnsafeRolesServer.go              |    2 +-
 proto/mocks/UnsafeSpacesServer.go             |    2 +-
 proto/mocks/UnsafeUsersServer.go              |    2 +-
 proto/mocks/UnsafeVersionsServer.go           |    2 +-
 proto/mocks/UsersClient.go                    |   63 +-
 proto/mocks/UsersServer.go                    |   56 +-
 proto/mocks/VersionsClient.go                 |    6 +-
 proto/mocks/VersionsServer.go                 |    6 +-
 proto/mocks/isFindResponse_Response.go        |   29 +
 proto/mocks/isOperation_Result.go             |    2 +-
 proto/organizations/organizations.pb.go       |  226 +--
 proto/organizations/organizations_grpc.pb.go  |    2 +-
 proto/references/references.pb.go             |  138 +-
 proto/references/references_grpc.pb.go        |    2 +-
 proto/roles/roles.pb.go                       |  204 +--
 proto/roles/roles_grpc.pb.go                  |    2 +-
 proto/spaces/spaces.pb.go                     |  446 ++----
 proto/spaces/spaces_grpc.pb.go                |    2 +-
 proto/users/users.pb.go                       |  643 ++++-----
 proto/users/users_grpc.pb.go                  |   48 +-
 proto/versions/account/versions.pb.go         |   28 +-
 proto/versions/account/versions_grpc.pb.go    |    2 +-
 proto/versions/content/versions.pb.go         |   28 +-
 proto/versions/content/versions_grpc.pb.go    |    2 +-
 117 files changed, 3589 insertions(+), 5123 deletions(-)
 create mode 100644 proto/mocks/ExtensionManagerServiceClient.go
 create mode 100644 proto/mocks/ExtensionManagerServiceServer.go
 create mode 100644 proto/mocks/ExtensionServiceClient.go
 create mode 100644 proto/mocks/ExtensionServiceServer.go
 create mode 100644 proto/mocks/LogsServiceClient.go
 create mode 100644 proto/mocks/LogsServiceServer.go
 create mode 100644 proto/mocks/UnsafeExtensionManagerServiceServer.go
 create mode 100644 proto/mocks/UnsafeExtensionServiceServer.go
 create mode 100644 proto/mocks/UnsafeLogsServiceServer.go
 create mode 100644 proto/mocks/isFindResponse_Response.go

diff --git a/pkg/collections/middleware/middleware.go b/pkg/collections/middleware/middleware.go
index 22514e7c..c26fa497 100644
--- a/pkg/collections/middleware/middleware.go
+++ b/pkg/collections/middleware/middleware.go
@@ -22,6 +22,7 @@ func WithLog(s collections.Collections, logger *zap.Logger, log_access bool) col
 		s = AccessLoggingMiddleware(logger)(s)
 	}
 	s = LoggingMiddleware(logger)(s)
+
 	s = RecoveringMiddleware(logger)(s)
 	return s
 }
diff --git a/proto/clients/clients.pb.go b/proto/clients/clients.pb.go
index 250cdd86..3f41398c 100644
--- a/proto/clients/clients.pb.go
+++ b/proto/clients/clients.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: clients/clients.proto
 
 package clients
@@ -45,11 +45,9 @@ type Client struct {
 
 func (x *Client) Reset() {
 	*x = Client{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Client) String() string {
@@ -60,7 +58,7 @@ func (*Client) ProtoMessage() {}
 
 func (x *Client) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -148,11 +146,9 @@ type CreateRequest struct {
 
 func (x *CreateRequest) Reset() {
 	*x = CreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateRequest) String() string {
@@ -163,7 +159,7 @@ func (*CreateRequest) ProtoMessage() {}
 
 func (x *CreateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -195,11 +191,9 @@ type CreateResponse struct {
 
 func (x *CreateResponse) Reset() {
 	*x = CreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateResponse) String() string {
@@ -210,7 +204,7 @@ func (*CreateResponse) ProtoMessage() {}
 
 func (x *CreateResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -243,11 +237,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -258,7 +250,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -297,11 +289,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -312,7 +302,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -347,11 +337,9 @@ type GetByRequest struct {
 
 func (x *GetByRequest) Reset() {
 	*x = GetByRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetByRequest) String() string {
@@ -362,7 +350,7 @@ func (*GetByRequest) ProtoMessage() {}
 
 func (x *GetByRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -415,11 +403,9 @@ type GetByResponse struct {
 
 func (x *GetByResponse) Reset() {
 	*x = GetByResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetByResponse) String() string {
@@ -430,7 +416,7 @@ func (*GetByResponse) ProtoMessage() {}
 
 func (x *GetByResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -462,11 +448,9 @@ type UpdateRequest struct {
 
 func (x *UpdateRequest) Reset() {
 	*x = UpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateRequest) String() string {
@@ -477,7 +461,7 @@ func (*UpdateRequest) ProtoMessage() {}
 
 func (x *UpdateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -509,11 +493,9 @@ type ListRequest struct {
 
 func (x *ListRequest) Reset() {
 	*x = ListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListRequest) String() string {
@@ -524,7 +506,7 @@ func (*ListRequest) ProtoMessage() {}
 
 func (x *ListRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -556,11 +538,9 @@ type ListResponse struct {
 
 func (x *ListResponse) Reset() {
 	*x = ListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListResponse) String() string {
@@ -571,7 +551,7 @@ func (*ListResponse) ProtoMessage() {}
 
 func (x *ListResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -604,11 +584,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -619,7 +597,7 @@ func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -660,11 +638,9 @@ type EnableRequest struct {
 
 func (x *EnableRequest) Reset() {
 	*x = EnableRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *EnableRequest) String() string {
@@ -675,7 +651,7 @@ func (*EnableRequest) ProtoMessage() {}
 
 func (x *EnableRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -724,11 +700,9 @@ type Client_OAuth struct {
 
 func (x *Client_OAuth) Reset() {
 	*x = Client_OAuth{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Client_OAuth) String() string {
@@ -739,7 +713,7 @@ func (*Client_OAuth) ProtoMessage() {}
 
 func (x *Client_OAuth) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -793,11 +767,9 @@ type Client_APIKey struct {
 
 func (x *Client_APIKey) Reset() {
 	*x = Client_APIKey{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Client_APIKey) String() string {
@@ -808,7 +780,7 @@ func (*Client_APIKey) ProtoMessage() {}
 
 func (x *Client_APIKey) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -847,11 +819,9 @@ type Client_TLS struct {
 
 func (x *Client_TLS) Reset() {
 	*x = Client_TLS{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_clients_clients_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_clients_clients_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Client_TLS) String() string {
@@ -862,7 +832,7 @@ func (*Client_TLS) ProtoMessage() {}
 
 func (x *Client_TLS) ProtoReflect() protoreflect.Message {
 	mi := &file_clients_clients_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1080,188 +1050,6 @@ func file_clients_clients_proto_init() {
 	if File_clients_clients_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_clients_clients_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Client); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*GetByRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*GetByResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*ListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*ListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*EnableRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[12].Exporter = func(v any, i int) any {
-			switch v := v.(*Client_OAuth); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[13].Exporter = func(v any, i int) any {
-			switch v := v.(*Client_APIKey); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_clients_clients_proto_msgTypes[14].Exporter = func(v any, i int) any {
-			switch v := v.(*Client_TLS); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	file_clients_clients_proto_msgTypes[0].OneofWrappers = []any{}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
diff --git a/proto/clients/clients_grpc.pb.go b/proto/clients/clients_grpc.pb.go
index b2e006de..5f2ff34c 100644
--- a/proto/clients/clients_grpc.pb.go
+++ b/proto/clients/clients_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: clients/clients.proto
 
 package clients
diff --git a/proto/collaborators/collaborators.pb.go b/proto/collaborators/collaborators.pb.go
index bb3aad63..7b2ad608 100644
--- a/proto/collaborators/collaborators.pb.go
+++ b/proto/collaborators/collaborators.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: collaborators/collaborators.proto
 
 package collaborators
@@ -34,11 +34,9 @@ type SetRequest struct {
 
 func (x *SetRequest) Reset() {
 	*x = SetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_collaborators_collaborators_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_collaborators_collaborators_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetRequest) String() string {
@@ -49,7 +47,7 @@ func (*SetRequest) ProtoMessage() {}
 
 func (x *SetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_collaborators_collaborators_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -96,11 +94,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_collaborators_collaborators_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_collaborators_collaborators_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -111,7 +107,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_collaborators_collaborators_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -150,11 +146,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_collaborators_collaborators_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_collaborators_collaborators_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -165,7 +159,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_collaborators_collaborators_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -198,11 +192,9 @@ type RemoveRequest struct {
 
 func (x *RemoveRequest) Reset() {
 	*x = RemoveRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_collaborators_collaborators_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_collaborators_collaborators_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemoveRequest) String() string {
@@ -213,7 +205,7 @@ func (*RemoveRequest) ProtoMessage() {}
 
 func (x *RemoveRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_collaborators_collaborators_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -252,11 +244,9 @@ type ListCollaboratorsRequest struct {
 
 func (x *ListCollaboratorsRequest) Reset() {
 	*x = ListCollaboratorsRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_collaborators_collaborators_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_collaborators_collaborators_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListCollaboratorsRequest) String() string {
@@ -267,7 +257,7 @@ func (*ListCollaboratorsRequest) ProtoMessage() {}
 
 func (x *ListCollaboratorsRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_collaborators_collaborators_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -299,11 +289,9 @@ type ListCollaboratorsResponse struct {
 
 func (x *ListCollaboratorsResponse) Reset() {
 	*x = ListCollaboratorsResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_collaborators_collaborators_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_collaborators_collaborators_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListCollaboratorsResponse) String() string {
@@ -314,7 +302,7 @@ func (*ListCollaboratorsResponse) ProtoMessage() {}
 
 func (x *ListCollaboratorsResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_collaborators_collaborators_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -346,11 +334,9 @@ type ListSpacesRequest struct {
 
 func (x *ListSpacesRequest) Reset() {
 	*x = ListSpacesRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_collaborators_collaborators_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_collaborators_collaborators_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListSpacesRequest) String() string {
@@ -361,7 +347,7 @@ func (*ListSpacesRequest) ProtoMessage() {}
 
 func (x *ListSpacesRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_collaborators_collaborators_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -393,11 +379,9 @@ type ListSpacesResponse struct {
 
 func (x *ListSpacesResponse) Reset() {
 	*x = ListSpacesResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_collaborators_collaborators_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_collaborators_collaborators_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListSpacesResponse) String() string {
@@ -408,7 +392,7 @@ func (*ListSpacesResponse) ProtoMessage() {}
 
 func (x *ListSpacesResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_collaborators_collaborators_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -558,104 +542,6 @@ func file_collaborators_collaborators_proto_init() {
 	if File_collaborators_collaborators_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_collaborators_collaborators_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*SetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_collaborators_collaborators_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_collaborators_collaborators_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_collaborators_collaborators_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*RemoveRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_collaborators_collaborators_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*ListCollaboratorsRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_collaborators_collaborators_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*ListCollaboratorsResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_collaborators_collaborators_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*ListSpacesRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_collaborators_collaborators_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*ListSpacesResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/collaborators/collaborators_grpc.pb.go b/proto/collaborators/collaborators_grpc.pb.go
index 85262442..1e09f3a3 100644
--- a/proto/collaborators/collaborators_grpc.pb.go
+++ b/proto/collaborators/collaborators_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: collaborators/collaborators.proto
 
 package collaborators
diff --git a/proto/common/common.pb.go b/proto/common/common.pb.go
index 2facf786..3faea7d6 100644
--- a/proto/common/common.pb.go
+++ b/proto/common/common.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.31.0
-// 	protoc        v5.28.1
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: common/common.proto
 
 package common
@@ -140,11 +140,9 @@ type Filter struct {
 
 func (x *Filter) Reset() {
 	*x = Filter{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_common_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_common_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Filter) String() string {
@@ -155,7 +153,7 @@ func (*Filter) ProtoMessage() {}
 
 func (x *Filter) ProtoReflect() protoreflect.Message {
 	mi := &file_common_common_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -207,11 +205,9 @@ type FindOptions struct {
 
 func (x *FindOptions) Reset() {
 	*x = FindOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_common_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_common_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindOptions) String() string {
@@ -222,7 +218,7 @@ func (*FindOptions) ProtoMessage() {}
 
 func (x *FindOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_common_common_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -305,11 +301,9 @@ type Rule struct {
 
 func (x *Rule) Reset() {
 	*x = Rule{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_common_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_common_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Rule) String() string {
@@ -320,7 +314,7 @@ func (*Rule) ProtoMessage() {}
 
 func (x *Rule) ProtoReflect() protoreflect.Message {
 	mi := &file_common_common_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -410,11 +404,9 @@ type Collaborator struct {
 
 func (x *Collaborator) Reset() {
 	*x = Collaborator{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_common_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_common_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Collaborator) String() string {
@@ -425,7 +417,7 @@ func (*Collaborator) ProtoMessage() {}
 
 func (x *Collaborator) ProtoReflect() protoreflect.Message {
 	mi := &file_common_common_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -475,11 +467,9 @@ type Version struct {
 
 func (x *Version) Reset() {
 	*x = Version{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_common_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_common_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Version) String() string {
@@ -490,7 +480,7 @@ func (*Version) ProtoMessage() {}
 
 func (x *Version) ProtoReflect() protoreflect.Message {
 	mi := &file_common_common_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -630,7 +620,7 @@ func file_common_common_proto_rawDescGZIP() []byte {
 
 var file_common_common_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
 var file_common_common_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
-var file_common_common_proto_goTypes = []interface{}{
+var file_common_common_proto_goTypes = []any{
 	(Access)(0),            // 0: common.Access
 	(Action)(0),            // 1: common.Action
 	(*Filter)(nil),         // 2: common.Filter
@@ -656,68 +646,6 @@ func file_common_common_proto_init() {
 	if File_common_common_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_common_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Filter); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*FindOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Rule); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Collaborator); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Version); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/common/error.pb.go b/proto/common/error.pb.go
index 6eeb8c55..efe406c6 100644
--- a/proto/common/error.pb.go
+++ b/proto/common/error.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: common/error.proto
 
 package common
@@ -42,11 +42,9 @@ type Error struct {
 
 func (x *Error) Reset() {
 	*x = Error{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_error_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_error_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Error) String() string {
@@ -57,7 +55,7 @@ func (*Error) ProtoMessage() {}
 
 func (x *Error) ProtoReflect() protoreflect.Message {
 	mi := &file_common_error_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -166,11 +164,9 @@ type Error_BadRequest struct {
 
 func (x *Error_BadRequest) Reset() {
 	*x = Error_BadRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_error_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_error_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Error_BadRequest) String() string {
@@ -181,7 +177,7 @@ func (*Error_BadRequest) ProtoMessage() {}
 
 func (x *Error_BadRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_common_error_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -213,11 +209,9 @@ type Error_Help struct {
 
 func (x *Error_Help) Reset() {
 	*x = Error_Help{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_error_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_error_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Error_Help) String() string {
@@ -228,7 +222,7 @@ func (*Error_Help) ProtoMessage() {}
 
 func (x *Error_Help) ProtoReflect() protoreflect.Message {
 	mi := &file_common_error_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -261,11 +255,9 @@ type Error_DebugInfo struct {
 
 func (x *Error_DebugInfo) Reset() {
 	*x = Error_DebugInfo{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_error_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_error_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Error_DebugInfo) String() string {
@@ -276,7 +268,7 @@ func (*Error_DebugInfo) ProtoMessage() {}
 
 func (x *Error_DebugInfo) ProtoReflect() protoreflect.Message {
 	mi := &file_common_error_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -316,11 +308,9 @@ type Error_LocalizedMessage struct {
 
 func (x *Error_LocalizedMessage) Reset() {
 	*x = Error_LocalizedMessage{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_error_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_error_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Error_LocalizedMessage) String() string {
@@ -331,7 +321,7 @@ func (*Error_LocalizedMessage) ProtoMessage() {}
 
 func (x *Error_LocalizedMessage) ProtoReflect() protoreflect.Message {
 	mi := &file_common_error_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -371,11 +361,9 @@ type Error_BadRequest_FieldViolation struct {
 
 func (x *Error_BadRequest_FieldViolation) Reset() {
 	*x = Error_BadRequest_FieldViolation{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_error_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_error_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Error_BadRequest_FieldViolation) String() string {
@@ -386,7 +374,7 @@ func (*Error_BadRequest_FieldViolation) ProtoMessage() {}
 
 func (x *Error_BadRequest_FieldViolation) ProtoReflect() protoreflect.Message {
 	mi := &file_common_error_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -426,11 +414,9 @@ type Error_Help_Link struct {
 
 func (x *Error_Help_Link) Reset() {
 	*x = Error_Help_Link{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_error_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_error_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Error_Help_Link) String() string {
@@ -441,7 +427,7 @@ func (*Error_Help_Link) ProtoMessage() {}
 
 func (x *Error_Help_Link) ProtoReflect() protoreflect.Message {
 	mi := &file_common_error_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -587,92 +573,6 @@ func file_common_error_proto_init() {
 	if File_common_error_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_common_error_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Error); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_error_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*Error_BadRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_error_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*Error_Help); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_error_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*Error_DebugInfo); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_error_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*Error_LocalizedMessage); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_error_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*Error_BadRequest_FieldViolation); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_error_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*Error_Help_Link); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/common/operation.pb.go b/proto/common/operation.pb.go
index 3f72af24..2424026f 100644
--- a/proto/common/operation.pb.go
+++ b/proto/common/operation.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: common/operation.proto
 
 package common
@@ -53,11 +53,9 @@ type Operation struct {
 
 func (x *Operation) Reset() {
 	*x = Operation{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_operation_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_operation_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Operation) String() string {
@@ -68,7 +66,7 @@ func (*Operation) ProtoMessage() {}
 
 func (x *Operation) ProtoReflect() protoreflect.Message {
 	mi := &file_common_operation_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -249,20 +247,6 @@ func file_common_operation_proto_init() {
 		return
 	}
 	file_common_error_proto_init()
-	if !protoimpl.UnsafeEnabled {
-		file_common_operation_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Operation); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	file_common_operation_proto_msgTypes[0].OneofWrappers = []any{
 		(*Operation_Response)(nil),
 		(*Operation_Error)(nil),
diff --git a/proto/common/operation_service.pb.go b/proto/common/operation_service.pb.go
index d0bd8e57..8d349c3f 100644
--- a/proto/common/operation_service.pb.go
+++ b/proto/common/operation_service.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: common/operation_service.proto
 
 package common
@@ -30,11 +30,9 @@ type GetOperationRequest struct {
 
 func (x *GetOperationRequest) Reset() {
 	*x = GetOperationRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_operation_service_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_operation_service_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetOperationRequest) String() string {
@@ -45,7 +43,7 @@ func (*GetOperationRequest) ProtoMessage() {}
 
 func (x *GetOperationRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_common_operation_service_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -77,11 +75,9 @@ type CancelOperationRequest struct {
 
 func (x *CancelOperationRequest) Reset() {
 	*x = CancelOperationRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_operation_service_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_operation_service_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CancelOperationRequest) String() string {
@@ -92,7 +88,7 @@ func (*CancelOperationRequest) ProtoMessage() {}
 
 func (x *CancelOperationRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_common_operation_service_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -183,32 +179,6 @@ func file_common_operation_service_proto_init() {
 	}
 	file_common_operation_proto_init()
 	file_common_validation_proto_init()
-	if !protoimpl.UnsafeEnabled {
-		file_common_operation_service_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*GetOperationRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_common_operation_service_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*CancelOperationRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/common/operation_service_grpc.pb.go b/proto/common/operation_service_grpc.pb.go
index ff590c80..a8f7b5d4 100644
--- a/proto/common/operation_service_grpc.pb.go
+++ b/proto/common/operation_service_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: common/operation_service.proto
 
 package common
diff --git a/proto/common/validation.pb.go b/proto/common/validation.pb.go
index 8fe6a0c0..c902180b 100644
--- a/proto/common/validation.pb.go
+++ b/proto/common/validation.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: common/validation.proto
 
 package common
@@ -33,11 +33,9 @@ type MapKeySpec struct {
 
 func (x *MapKeySpec) Reset() {
 	*x = MapKeySpec{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_common_validation_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_common_validation_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *MapKeySpec) String() string {
@@ -48,7 +46,7 @@ func (*MapKeySpec) ProtoMessage() {}
 
 func (x *MapKeySpec) ProtoReflect() protoreflect.Message {
 	mi := &file_common_validation_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -279,20 +277,6 @@ func file_common_validation_proto_init() {
 	if File_common_validation_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_common_validation_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*MapKeySpec); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/delivery/delivery.pb.go b/proto/delivery/delivery.pb.go
index 81f70e66..adc4add4 100644
--- a/proto/delivery/delivery.pb.go
+++ b/proto/delivery/delivery.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: delivery/delivery.proto
 
 package delivery
@@ -35,11 +35,9 @@ type ListLocalesRequest struct {
 
 func (x *ListLocalesRequest) Reset() {
 	*x = ListLocalesRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListLocalesRequest) String() string {
@@ -50,7 +48,7 @@ func (*ListLocalesRequest) ProtoMessage() {}
 
 func (x *ListLocalesRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -82,11 +80,9 @@ type ListLocalesResponse struct {
 
 func (x *ListLocalesResponse) Reset() {
 	*x = ListLocalesResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListLocalesResponse) String() string {
@@ -97,7 +93,7 @@ func (*ListLocalesResponse) ProtoMessage() {}
 
 func (x *ListLocalesResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -130,11 +126,9 @@ type GetEnvironmentRequest struct {
 
 func (x *GetEnvironmentRequest) Reset() {
 	*x = GetEnvironmentRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetEnvironmentRequest) String() string {
@@ -145,7 +139,7 @@ func (*GetEnvironmentRequest) ProtoMessage() {}
 
 func (x *GetEnvironmentRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -184,11 +178,9 @@ type GetEnvironmentResponse struct {
 
 func (x *GetEnvironmentResponse) Reset() {
 	*x = GetEnvironmentResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetEnvironmentResponse) String() string {
@@ -199,7 +191,7 @@ func (*GetEnvironmentResponse) ProtoMessage() {}
 
 func (x *GetEnvironmentResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -231,11 +223,9 @@ type ListEnvironmentsRequest struct {
 
 func (x *ListEnvironmentsRequest) Reset() {
 	*x = ListEnvironmentsRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListEnvironmentsRequest) String() string {
@@ -246,7 +236,7 @@ func (*ListEnvironmentsRequest) ProtoMessage() {}
 
 func (x *ListEnvironmentsRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -278,11 +268,9 @@ type ListEnvironmentsResponse struct {
 
 func (x *ListEnvironmentsResponse) Reset() {
 	*x = ListEnvironmentsResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListEnvironmentsResponse) String() string {
@@ -293,7 +281,7 @@ func (*ListEnvironmentsResponse) ProtoMessage() {}
 
 func (x *ListEnvironmentsResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -327,11 +315,9 @@ type GetCollectionRequest struct {
 
 func (x *GetCollectionRequest) Reset() {
 	*x = GetCollectionRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetCollectionRequest) String() string {
@@ -342,7 +328,7 @@ func (*GetCollectionRequest) ProtoMessage() {}
 
 func (x *GetCollectionRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -388,11 +374,9 @@ type GetCollectionResponse struct {
 
 func (x *GetCollectionResponse) Reset() {
 	*x = GetCollectionResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetCollectionResponse) String() string {
@@ -403,7 +387,7 @@ func (*GetCollectionResponse) ProtoMessage() {}
 
 func (x *GetCollectionResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -436,11 +420,9 @@ type ListCollectionsRequest struct {
 
 func (x *ListCollectionsRequest) Reset() {
 	*x = ListCollectionsRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListCollectionsRequest) String() string {
@@ -451,7 +433,7 @@ func (*ListCollectionsRequest) ProtoMessage() {}
 
 func (x *ListCollectionsRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -490,11 +472,9 @@ type ListCollectionsResponse struct {
 
 func (x *ListCollectionsResponse) Reset() {
 	*x = ListCollectionsResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListCollectionsResponse) String() string {
@@ -505,7 +485,7 @@ func (*ListCollectionsResponse) ProtoMessage() {}
 
 func (x *ListCollectionsResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -541,11 +521,9 @@ type GetItemRequest struct {
 
 func (x *GetItemRequest) Reset() {
 	*x = GetItemRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetItemRequest) String() string {
@@ -556,7 +534,7 @@ func (*GetItemRequest) ProtoMessage() {}
 
 func (x *GetItemRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -616,11 +594,9 @@ type GetItemResponse struct {
 
 func (x *GetItemResponse) Reset() {
 	*x = GetItemResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetItemResponse) String() string {
@@ -631,7 +607,7 @@ func (*GetItemResponse) ProtoMessage() {}
 
 func (x *GetItemResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -667,11 +643,9 @@ type FindItemsRequest struct {
 
 func (x *FindItemsRequest) Reset() {
 	*x = FindItemsRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindItemsRequest) String() string {
@@ -682,7 +656,7 @@ func (*FindItemsRequest) ProtoMessage() {}
 
 func (x *FindItemsRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -743,11 +717,9 @@ type FindItemsResponse struct {
 
 func (x *FindItemsResponse) Reset() {
 	*x = FindItemsResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindItemsResponse) String() string {
@@ -758,7 +730,7 @@ func (*FindItemsResponse) ProtoMessage() {}
 
 func (x *FindItemsResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -797,11 +769,9 @@ type AggregateOptions struct {
 
 func (x *AggregateOptions) Reset() {
 	*x = AggregateOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AggregateOptions) String() string {
@@ -812,7 +782,7 @@ func (*AggregateOptions) ProtoMessage() {}
 
 func (x *AggregateOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -848,11 +818,9 @@ type AggregateRequest struct {
 
 func (x *AggregateRequest) Reset() {
 	*x = AggregateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AggregateRequest) String() string {
@@ -863,7 +831,7 @@ func (*AggregateRequest) ProtoMessage() {}
 
 func (x *AggregateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -923,11 +891,9 @@ type AggregateResponse struct {
 
 func (x *AggregateResponse) Reset() {
 	*x = AggregateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_delivery_delivery_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_delivery_delivery_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AggregateResponse) String() string {
@@ -938,7 +904,7 @@ func (*AggregateResponse) ProtoMessage() {}
 
 func (x *AggregateResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_delivery_delivery_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1215,212 +1181,6 @@ func file_delivery_delivery_proto_init() {
 	if File_delivery_delivery_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_delivery_delivery_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*ListLocalesRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*ListLocalesResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*GetEnvironmentRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*GetEnvironmentResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*ListEnvironmentsRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*ListEnvironmentsResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*GetCollectionRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*GetCollectionResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*ListCollectionsRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*ListCollectionsResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*GetItemRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*GetItemResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[12].Exporter = func(v any, i int) any {
-			switch v := v.(*FindItemsRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[13].Exporter = func(v any, i int) any {
-			switch v := v.(*FindItemsResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[14].Exporter = func(v any, i int) any {
-			switch v := v.(*AggregateOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[15].Exporter = func(v any, i int) any {
-			switch v := v.(*AggregateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_delivery_delivery_proto_msgTypes[16].Exporter = func(v any, i int) any {
-			switch v := v.(*AggregateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/delivery/delivery_grpc.pb.go b/proto/delivery/delivery_grpc.pb.go
index a0a14e9b..517af8c5 100644
--- a/proto/delivery/delivery_grpc.pb.go
+++ b/proto/delivery/delivery_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: delivery/delivery.proto
 
 package delivery
diff --git a/proto/environments/environments.pb.go b/proto/environments/environments.pb.go
index 9bff8500..cd217f5f 100644
--- a/proto/environments/environments.pb.go
+++ b/proto/environments/environments.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: environments/environments.proto
 
 package environments
@@ -92,11 +92,9 @@ type Environment struct {
 
 func (x *Environment) Reset() {
 	*x = Environment{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Environment) String() string {
@@ -107,7 +105,7 @@ func (*Environment) ProtoMessage() {}
 
 func (x *Environment) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -176,11 +174,9 @@ type StateInfo struct {
 
 func (x *StateInfo) Reset() {
 	*x = StateInfo{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StateInfo) String() string {
@@ -191,7 +187,7 @@ func (*StateInfo) ProtoMessage() {}
 
 func (x *StateInfo) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -239,11 +235,9 @@ type Config struct {
 
 func (x *Config) Reset() {
 	*x = Config{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Config) String() string {
@@ -254,7 +248,7 @@ func (*Config) ProtoMessage() {}
 
 func (x *Config) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -293,11 +287,9 @@ type CreateRequest struct {
 
 func (x *CreateRequest) Reset() {
 	*x = CreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateRequest) String() string {
@@ -308,7 +300,7 @@ func (*CreateRequest) ProtoMessage() {}
 
 func (x *CreateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -340,11 +332,9 @@ type CreateResponse struct {
 
 func (x *CreateResponse) Reset() {
 	*x = CreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateResponse) String() string {
@@ -355,7 +345,7 @@ func (*CreateResponse) ProtoMessage() {}
 
 func (x *CreateResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -387,11 +377,9 @@ type ListRequest struct {
 
 func (x *ListRequest) Reset() {
 	*x = ListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListRequest) String() string {
@@ -402,7 +390,7 @@ func (*ListRequest) ProtoMessage() {}
 
 func (x *ListRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -434,11 +422,9 @@ type ListResponse struct {
 
 func (x *ListResponse) Reset() {
 	*x = ListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListResponse) String() string {
@@ -449,7 +435,7 @@ func (*ListResponse) ProtoMessage() {}
 
 func (x *ListResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -482,11 +468,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -497,7 +481,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -536,11 +520,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -551,7 +533,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -583,11 +565,9 @@ type UpdateRequest struct {
 
 func (x *UpdateRequest) Reset() {
 	*x = UpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateRequest) String() string {
@@ -598,7 +578,7 @@ func (*UpdateRequest) ProtoMessage() {}
 
 func (x *UpdateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -632,11 +612,9 @@ type SetAliasRequest struct {
 
 func (x *SetAliasRequest) Reset() {
 	*x = SetAliasRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetAliasRequest) String() string {
@@ -647,7 +625,7 @@ func (*SetAliasRequest) ProtoMessage() {}
 
 func (x *SetAliasRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -695,11 +673,9 @@ type RemoveAliasRequest struct {
 
 func (x *RemoveAliasRequest) Reset() {
 	*x = RemoveAliasRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemoveAliasRequest) String() string {
@@ -710,7 +686,7 @@ func (*RemoveAliasRequest) ProtoMessage() {}
 
 func (x *RemoveAliasRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -757,11 +733,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -772,7 +746,7 @@ func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -813,11 +787,9 @@ type MigrateRequest struct {
 
 func (x *MigrateRequest) Reset() {
 	*x = MigrateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *MigrateRequest) String() string {
@@ -828,7 +800,7 @@ func (*MigrateRequest) ProtoMessage() {}
 
 func (x *MigrateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -877,11 +849,9 @@ type MigrateOptions struct {
 
 func (x *MigrateOptions) Reset() {
 	*x = MigrateOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_environments_environments_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_environments_environments_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *MigrateOptions) String() string {
@@ -892,7 +862,7 @@ func (*MigrateOptions) ProtoMessage() {}
 
 func (x *MigrateOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_environments_environments_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1141,188 +1111,6 @@ func file_environments_environments_proto_init() {
 	if File_environments_environments_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_environments_environments_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Environment); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*StateInfo); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*Config); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*ListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*ListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*SetAliasRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*RemoveAliasRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[12].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[13].Exporter = func(v any, i int) any {
-			switch v := v.(*MigrateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_environments_environments_proto_msgTypes[14].Exporter = func(v any, i int) any {
-			switch v := v.(*MigrateOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/environments/environments_grpc.pb.go b/proto/environments/environments_grpc.pb.go
index b0d65500..13d07e13 100644
--- a/proto/environments/environments_grpc.pb.go
+++ b/proto/environments/environments_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: environments/environments.proto
 
 package environments
diff --git a/proto/extensions/extension.pb.go b/proto/extensions/extension.pb.go
index 042f307b..49bd7845 100644
--- a/proto/extensions/extension.pb.go
+++ b/proto/extensions/extension.pb.go
@@ -10,8 +10,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: extensions/extension.proto
 
 package extensions
@@ -307,11 +307,9 @@ type Action struct {
 
 func (x *Action) Reset() {
 	*x = Action{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_extension_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_extension_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Action) String() string {
@@ -322,7 +320,7 @@ func (*Action) ProtoMessage() {}
 
 func (x *Action) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_extension_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -505,11 +503,9 @@ type ActionRequest struct {
 
 func (x *ActionRequest) Reset() {
 	*x = ActionRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_extension_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_extension_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ActionRequest) String() string {
@@ -520,7 +516,7 @@ func (*ActionRequest) ProtoMessage() {}
 
 func (x *ActionRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_extension_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -775,32 +771,6 @@ func file_extensions_extension_proto_init() {
 	if File_extensions_extension_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_extensions_extension_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Action); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_extension_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*ActionRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/extensions/extension_service.pb.go b/proto/extensions/extension_service.pb.go
index 39424e06..df5c74f3 100644
--- a/proto/extensions/extension_service.pb.go
+++ b/proto/extensions/extension_service.pb.go
@@ -10,8 +10,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: extensions/extension_service.proto
 
 package extensions
@@ -150,11 +150,9 @@ type InstallRequest struct {
 
 func (x *InstallRequest) Reset() {
 	*x = InstallRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_extension_service_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_extension_service_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *InstallRequest) String() string {
@@ -165,7 +163,7 @@ func (*InstallRequest) ProtoMessage() {}
 
 func (x *InstallRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_extension_service_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -223,11 +221,9 @@ type UninstallRequest struct {
 
 func (x *UninstallRequest) Reset() {
 	*x = UninstallRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_extension_service_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_extension_service_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UninstallRequest) String() string {
@@ -238,7 +234,7 @@ func (*UninstallRequest) ProtoMessage() {}
 
 func (x *UninstallRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_extension_service_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -301,11 +297,9 @@ type CheckRequest struct {
 
 func (x *CheckRequest) Reset() {
 	*x = CheckRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_extension_service_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_extension_service_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CheckRequest) String() string {
@@ -316,7 +310,7 @@ func (*CheckRequest) ProtoMessage() {}
 
 func (x *CheckRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_extension_service_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -371,11 +365,9 @@ type ActionResponse struct {
 
 func (x *ActionResponse) Reset() {
 	*x = ActionResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_extension_service_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_extension_service_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ActionResponse) String() string {
@@ -386,7 +378,7 @@ func (*ActionResponse) ProtoMessage() {}
 
 func (x *ActionResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_extension_service_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -624,56 +616,6 @@ func file_extensions_extension_service_proto_init() {
 		return
 	}
 	file_extensions_extension_proto_init()
-	if !protoimpl.UnsafeEnabled {
-		file_extensions_extension_service_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*InstallRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_extension_service_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*UninstallRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_extension_service_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*CheckRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_extension_service_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*ActionResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/extensions/extension_service_grpc.pb.go b/proto/extensions/extension_service_grpc.pb.go
index a5a1a981..4bbdf27f 100644
--- a/proto/extensions/extension_service_grpc.pb.go
+++ b/proto/extensions/extension_service_grpc.pb.go
@@ -11,7 +11,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: extensions/extension_service.proto
 
 package extensions
diff --git a/proto/extensions/manager_service.pb.go b/proto/extensions/manager_service.pb.go
index e0a1160e..830c9bc5 100644
--- a/proto/extensions/manager_service.pb.go
+++ b/proto/extensions/manager_service.pb.go
@@ -27,8 +27,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: extensions/manager_service.proto
 
 package extensions
@@ -123,11 +123,9 @@ type ListExtensionsRequest struct {
 
 func (x *ListExtensionsRequest) Reset() {
 	*x = ListExtensionsRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_manager_service_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_manager_service_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListExtensionsRequest) String() string {
@@ -138,7 +136,7 @@ func (*ListExtensionsRequest) ProtoMessage() {}
 
 func (x *ListExtensionsRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_manager_service_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -196,11 +194,9 @@ type ListExtensionsResponse struct {
 
 func (x *ListExtensionsResponse) Reset() {
 	*x = ListExtensionsResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_manager_service_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_manager_service_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListExtensionsResponse) String() string {
@@ -211,7 +207,7 @@ func (*ListExtensionsResponse) ProtoMessage() {}
 
 func (x *ListExtensionsResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_manager_service_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -251,11 +247,9 @@ type ExtensionDescriptor struct {
 
 func (x *ExtensionDescriptor) Reset() {
 	*x = ExtensionDescriptor{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_manager_service_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_manager_service_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ExtensionDescriptor) String() string {
@@ -266,7 +260,7 @@ func (*ExtensionDescriptor) ProtoMessage() {}
 
 func (x *ExtensionDescriptor) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_manager_service_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -347,11 +341,9 @@ type RegisterExtensionsRequest struct {
 
 func (x *RegisterExtensionsRequest) Reset() {
 	*x = RegisterExtensionsRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_manager_service_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_manager_service_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RegisterExtensionsRequest) String() string {
@@ -362,7 +354,7 @@ func (*RegisterExtensionsRequest) ProtoMessage() {}
 
 func (x *RegisterExtensionsRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_manager_service_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -392,11 +384,9 @@ type RegisterExtensionsResponse struct {
 
 func (x *RegisterExtensionsResponse) Reset() {
 	*x = RegisterExtensionsResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_manager_service_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_manager_service_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RegisterExtensionsResponse) String() string {
@@ -407,7 +397,7 @@ func (*RegisterExtensionsResponse) ProtoMessage() {}
 
 func (x *RegisterExtensionsResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_manager_service_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -432,11 +422,9 @@ type UnregisterExtensionsRequest struct {
 
 func (x *UnregisterExtensionsRequest) Reset() {
 	*x = UnregisterExtensionsRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_manager_service_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_manager_service_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UnregisterExtensionsRequest) String() string {
@@ -447,7 +435,7 @@ func (*UnregisterExtensionsRequest) ProtoMessage() {}
 
 func (x *UnregisterExtensionsRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_manager_service_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -477,11 +465,9 @@ type UnregisterExtensionsResponse struct {
 
 func (x *UnregisterExtensionsResponse) Reset() {
 	*x = UnregisterExtensionsResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_manager_service_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_manager_service_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UnregisterExtensionsResponse) String() string {
@@ -492,7 +478,7 @@ func (*UnregisterExtensionsResponse) ProtoMessage() {}
 
 func (x *UnregisterExtensionsResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_manager_service_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -517,11 +503,9 @@ type ListRegisteredExtensionsRequest struct {
 
 func (x *ListRegisteredExtensionsRequest) Reset() {
 	*x = ListRegisteredExtensionsRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_manager_service_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_manager_service_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListRegisteredExtensionsRequest) String() string {
@@ -532,7 +516,7 @@ func (*ListRegisteredExtensionsRequest) ProtoMessage() {}
 
 func (x *ListRegisteredExtensionsRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_manager_service_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -564,11 +548,9 @@ type ListRegisteredExtensionsResponse struct {
 
 func (x *ListRegisteredExtensionsResponse) Reset() {
 	*x = ListRegisteredExtensionsResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_manager_service_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_manager_service_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListRegisteredExtensionsResponse) String() string {
@@ -579,7 +561,7 @@ func (*ListRegisteredExtensionsResponse) ProtoMessage() {}
 
 func (x *ListRegisteredExtensionsResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_manager_service_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -617,11 +599,9 @@ type SpaceExtensions struct {
 
 func (x *SpaceExtensions) Reset() {
 	*x = SpaceExtensions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_manager_service_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_manager_service_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SpaceExtensions) String() string {
@@ -632,7 +612,7 @@ func (*SpaceExtensions) ProtoMessage() {}
 
 func (x *SpaceExtensions) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_manager_service_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -714,11 +694,9 @@ type ListExtensionsResponse_ExtensionInfo struct {
 
 func (x *ListExtensionsResponse_ExtensionInfo) Reset() {
 	*x = ListExtensionsResponse_ExtensionInfo{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_extensions_manager_service_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_extensions_manager_service_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListExtensionsResponse_ExtensionInfo) String() string {
@@ -729,7 +707,7 @@ func (*ListExtensionsResponse_ExtensionInfo) ProtoMessage() {}
 
 func (x *ListExtensionsResponse_ExtensionInfo) ProtoReflect() protoreflect.Message {
 	mi := &file_extensions_manager_service_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1011,140 +989,6 @@ func file_extensions_manager_service_proto_init() {
 	if File_extensions_manager_service_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_extensions_manager_service_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*ListExtensionsRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_manager_service_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*ListExtensionsResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_manager_service_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*ExtensionDescriptor); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_manager_service_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*RegisterExtensionsRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_manager_service_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*RegisterExtensionsResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_manager_service_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*UnregisterExtensionsRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_manager_service_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*UnregisterExtensionsResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_manager_service_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*ListRegisteredExtensionsRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_manager_service_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*ListRegisteredExtensionsResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_manager_service_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*SpaceExtensions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_extensions_manager_service_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*ListExtensionsResponse_ExtensionInfo); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/extensions/manager_service_grpc.pb.go b/proto/extensions/manager_service_grpc.pb.go
index 07ee35f5..138b95b7 100644
--- a/proto/extensions/manager_service_grpc.pb.go
+++ b/proto/extensions/manager_service_grpc.pb.go
@@ -28,7 +28,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: extensions/manager_service.proto
 
 package extensions
diff --git a/proto/files/files.pb.go b/proto/files/files.pb.go
index 84a25157..1a3d4512 100644
--- a/proto/files/files.pb.go
+++ b/proto/files/files.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: files/files.proto
 
 package files
@@ -36,11 +36,9 @@ type File struct {
 
 func (x *File) Reset() {
 	*x = File{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *File) String() string {
@@ -51,7 +49,7 @@ func (*File) ProtoMessage() {}
 
 func (x *File) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -122,11 +120,9 @@ type MultipartUpload struct {
 
 func (x *MultipartUpload) Reset() {
 	*x = MultipartUpload{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *MultipartUpload) String() string {
@@ -137,7 +133,7 @@ func (*MultipartUpload) ProtoMessage() {}
 
 func (x *MultipartUpload) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -198,11 +194,9 @@ type Upload struct {
 
 func (x *Upload) Reset() {
 	*x = Upload{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Upload) String() string {
@@ -213,7 +207,7 @@ func (*Upload) ProtoMessage() {}
 
 func (x *Upload) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -253,11 +247,9 @@ type CompletedPart struct {
 
 func (x *CompletedPart) Reset() {
 	*x = CompletedPart{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CompletedPart) String() string {
@@ -268,7 +260,7 @@ func (*CompletedPart) ProtoMessage() {}
 
 func (x *CompletedPart) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -307,11 +299,9 @@ type StartUploadRequest struct {
 
 func (x *StartUploadRequest) Reset() {
 	*x = StartUploadRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartUploadRequest) String() string {
@@ -322,7 +312,7 @@ func (*StartUploadRequest) ProtoMessage() {}
 
 func (x *StartUploadRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -354,11 +344,9 @@ type StartUploadResponse struct {
 
 func (x *StartUploadResponse) Reset() {
 	*x = StartUploadResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartUploadResponse) String() string {
@@ -369,7 +357,7 @@ func (*StartUploadResponse) ProtoMessage() {}
 
 func (x *StartUploadResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -401,11 +389,9 @@ type CompleteUploadRequest struct {
 
 func (x *CompleteUploadRequest) Reset() {
 	*x = CompleteUploadRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CompleteUploadRequest) String() string {
@@ -416,7 +402,7 @@ func (*CompleteUploadRequest) ProtoMessage() {}
 
 func (x *CompleteUploadRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -448,11 +434,9 @@ type CompleteUploadResponse struct {
 
 func (x *CompleteUploadResponse) Reset() {
 	*x = CompleteUploadResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CompleteUploadResponse) String() string {
@@ -463,7 +447,7 @@ func (*CompleteUploadResponse) ProtoMessage() {}
 
 func (x *CompleteUploadResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -495,11 +479,9 @@ type AbortUploadRequest struct {
 
 func (x *AbortUploadRequest) Reset() {
 	*x = AbortUploadRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AbortUploadRequest) String() string {
@@ -510,7 +492,7 @@ func (*AbortUploadRequest) ProtoMessage() {}
 
 func (x *AbortUploadRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -540,11 +522,9 @@ type AbortUploadResponse struct {
 
 func (x *AbortUploadResponse) Reset() {
 	*x = AbortUploadResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AbortUploadResponse) String() string {
@@ -555,7 +535,7 @@ func (*AbortUploadResponse) ProtoMessage() {}
 
 func (x *AbortUploadResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -580,11 +560,9 @@ type MoveUploadRequest struct {
 
 func (x *MoveUploadRequest) Reset() {
 	*x = MoveUploadRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *MoveUploadRequest) String() string {
@@ -595,7 +573,7 @@ func (*MoveUploadRequest) ProtoMessage() {}
 
 func (x *MoveUploadRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -627,11 +605,9 @@ type MoveUploadResponse struct {
 
 func (x *MoveUploadResponse) Reset() {
 	*x = MoveUploadResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *MoveUploadResponse) String() string {
@@ -642,7 +618,7 @@ func (*MoveUploadResponse) ProtoMessage() {}
 
 func (x *MoveUploadResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -674,11 +650,9 @@ type UploadRequest struct {
 
 func (x *UploadRequest) Reset() {
 	*x = UploadRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UploadRequest) String() string {
@@ -689,7 +663,7 @@ func (*UploadRequest) ProtoMessage() {}
 
 func (x *UploadRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -721,11 +695,9 @@ type UploadResponse struct {
 
 func (x *UploadResponse) Reset() {
 	*x = UploadResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UploadResponse) String() string {
@@ -736,7 +708,7 @@ func (*UploadResponse) ProtoMessage() {}
 
 func (x *UploadResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -768,11 +740,9 @@ type GetFileRequest struct {
 
 func (x *GetFileRequest) Reset() {
 	*x = GetFileRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetFileRequest) String() string {
@@ -783,7 +753,7 @@ func (*GetFileRequest) ProtoMessage() {}
 
 func (x *GetFileRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -815,11 +785,9 @@ type GetFileResponse struct {
 
 func (x *GetFileResponse) Reset() {
 	*x = GetFileResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetFileResponse) String() string {
@@ -830,7 +798,7 @@ func (*GetFileResponse) ProtoMessage() {}
 
 func (x *GetFileResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -862,11 +830,9 @@ type DeleteFileRequest struct {
 
 func (x *DeleteFileRequest) Reset() {
 	*x = DeleteFileRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteFileRequest) String() string {
@@ -877,7 +843,7 @@ func (*DeleteFileRequest) ProtoMessage() {}
 
 func (x *DeleteFileRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -907,11 +873,9 @@ type DeleteFileResponse struct {
 
 func (x *DeleteFileResponse) Reset() {
 	*x = DeleteFileResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_files_files_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_files_files_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteFileResponse) String() string {
@@ -922,7 +886,7 @@ func (*DeleteFileResponse) ProtoMessage() {}
 
 func (x *DeleteFileResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_files_files_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1132,224 +1096,6 @@ func file_files_files_proto_init() {
 	if File_files_files_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_files_files_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*File); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*MultipartUpload); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*Upload); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*CompletedPart); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*StartUploadRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*StartUploadResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*CompleteUploadRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*CompleteUploadResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*AbortUploadRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*AbortUploadResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*MoveUploadRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*MoveUploadResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[12].Exporter = func(v any, i int) any {
-			switch v := v.(*UploadRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[13].Exporter = func(v any, i int) any {
-			switch v := v.(*UploadResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[14].Exporter = func(v any, i int) any {
-			switch v := v.(*GetFileRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[15].Exporter = func(v any, i int) any {
-			switch v := v.(*GetFileResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[16].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteFileRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_files_files_proto_msgTypes[17].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteFileResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/files/files_grpc.pb.go b/proto/files/files_grpc.pb.go
index ae5d8c47..99f77f24 100644
--- a/proto/files/files_grpc.pb.go
+++ b/proto/files/files_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: files/files.proto
 
 package files
diff --git a/proto/images/images.pb.go b/proto/images/images.pb.go
index e84dae61..fad280fb 100644
--- a/proto/images/images.pb.go
+++ b/proto/images/images.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: images/images.proto
 
 package images
@@ -32,11 +32,9 @@ type Param struct {
 
 func (x *Param) Reset() {
 	*x = Param{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_images_images_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_images_images_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Param) String() string {
@@ -47,7 +45,7 @@ func (*Param) ProtoMessage() {}
 
 func (x *Param) ProtoReflect() protoreflect.Message {
 	mi := &file_images_images_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -87,11 +85,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_images_images_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_images_images_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -102,7 +98,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_images_images_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -141,11 +137,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_images_images_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_images_images_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -156,7 +150,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_images_images_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -188,11 +182,9 @@ type GetRequest_GetOptions struct {
 
 func (x *GetRequest_GetOptions) Reset() {
 	*x = GetRequest_GetOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_images_images_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_images_images_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest_GetOptions) String() string {
@@ -203,7 +195,7 @@ func (*GetRequest_GetOptions) ProtoMessage() {}
 
 func (x *GetRequest_GetOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_images_images_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -296,56 +288,6 @@ func file_images_images_proto_init() {
 	if File_images_images_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_images_images_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Param); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_images_images_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_images_images_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_images_images_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest_GetOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/images/images_grpc.pb.go b/proto/images/images_grpc.pb.go
index 669dcc8e..9e8d5dea 100644
--- a/proto/images/images_grpc.pb.go
+++ b/proto/images/images_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: images/images.proto
 
 package images
diff --git a/proto/invitations/invitations.pb.go b/proto/invitations/invitations.pb.go
index 5fd81d66..5d95c953 100644
--- a/proto/invitations/invitations.pb.go
+++ b/proto/invitations/invitations.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: invitations/invitations.proto
 
 package invitations
@@ -40,11 +40,9 @@ type Invitation struct {
 
 func (x *Invitation) Reset() {
 	*x = Invitation{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Invitation) String() string {
@@ -55,7 +53,7 @@ func (*Invitation) ProtoMessage() {}
 
 func (x *Invitation) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -141,11 +139,9 @@ type Filter struct {
 
 func (x *Filter) Reset() {
 	*x = Filter{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Filter) String() string {
@@ -156,7 +152,7 @@ func (*Filter) ProtoMessage() {}
 
 func (x *Filter) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -225,11 +221,9 @@ type FindOptions struct {
 
 func (x *FindOptions) Reset() {
 	*x = FindOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindOptions) String() string {
@@ -240,7 +234,7 @@ func (*FindOptions) ProtoMessage() {}
 
 func (x *FindOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -286,11 +280,9 @@ type CreateRequest struct {
 
 func (x *CreateRequest) Reset() {
 	*x = CreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateRequest) String() string {
@@ -301,7 +293,7 @@ func (*CreateRequest) ProtoMessage() {}
 
 func (x *CreateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -333,11 +325,9 @@ type CreateResponse struct {
 
 func (x *CreateResponse) Reset() {
 	*x = CreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateResponse) String() string {
@@ -348,7 +338,7 @@ func (*CreateResponse) ProtoMessage() {}
 
 func (x *CreateResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -380,11 +370,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -395,7 +383,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -427,11 +415,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -442,7 +428,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -478,11 +464,9 @@ type UpdateRequest struct {
 
 func (x *UpdateRequest) Reset() {
 	*x = UpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateRequest) String() string {
@@ -493,7 +477,7 @@ func (*UpdateRequest) ProtoMessage() {}
 
 func (x *UpdateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -551,11 +535,9 @@ type UpdateInvitationResponse struct {
 
 func (x *UpdateInvitationResponse) Reset() {
 	*x = UpdateInvitationResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateInvitationResponse) String() string {
@@ -566,7 +548,7 @@ func (*UpdateInvitationResponse) ProtoMessage() {}
 
 func (x *UpdateInvitationResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -592,11 +574,9 @@ type AcceptRequest struct {
 
 func (x *AcceptRequest) Reset() {
 	*x = AcceptRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AcceptRequest) String() string {
@@ -607,7 +587,7 @@ func (*AcceptRequest) ProtoMessage() {}
 
 func (x *AcceptRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -644,11 +624,9 @@ type AcceptInvitationResponse struct {
 
 func (x *AcceptInvitationResponse) Reset() {
 	*x = AcceptInvitationResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AcceptInvitationResponse) String() string {
@@ -659,7 +637,7 @@ func (*AcceptInvitationResponse) ProtoMessage() {}
 
 func (x *AcceptInvitationResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -685,11 +663,9 @@ type FindRequest struct {
 
 func (x *FindRequest) Reset() {
 	*x = FindRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindRequest) String() string {
@@ -700,7 +676,7 @@ func (*FindRequest) ProtoMessage() {}
 
 func (x *FindRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -740,11 +716,9 @@ type FindResponse struct {
 
 func (x *FindResponse) Reset() {
 	*x = FindResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindResponse) String() string {
@@ -755,7 +729,7 @@ func (*FindResponse) ProtoMessage() {}
 
 func (x *FindResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -794,11 +768,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -809,7 +781,7 @@ func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -839,11 +811,9 @@ type DeleteSpaceInvitationResponse struct {
 
 func (x *DeleteSpaceInvitationResponse) Reset() {
 	*x = DeleteSpaceInvitationResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_invitations_invitations_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_invitations_invitations_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteSpaceInvitationResponse) String() string {
@@ -854,7 +824,7 @@ func (*DeleteSpaceInvitationResponse) ProtoMessage() {}
 
 func (x *DeleteSpaceInvitationResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_invitations_invitations_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1076,188 +1046,6 @@ func file_invitations_invitations_proto_init() {
 	if File_invitations_invitations_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_invitations_invitations_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Invitation); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*Filter); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*FindOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateInvitationResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*AcceptRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*AcceptInvitationResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*FindRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[12].Exporter = func(v any, i int) any {
-			switch v := v.(*FindResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[13].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_invitations_invitations_proto_msgTypes[14].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteSpaceInvitationResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/invitations/invitations_grpc.pb.go b/proto/invitations/invitations_grpc.pb.go
index 767261cb..a2d39c52 100644
--- a/proto/invitations/invitations_grpc.pb.go
+++ b/proto/invitations/invitations_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: invitations/invitations.proto
 
 package invitations
diff --git a/proto/items/items.pb.go b/proto/items/items.pb.go
index a49876ec..69316fc2 100644
--- a/proto/items/items.pb.go
+++ b/proto/items/items.pb.go
@@ -8,8 +8,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: items/items.proto
 
 package items
@@ -95,11 +95,9 @@ type Error struct {
 
 func (x *Error) Reset() {
 	*x = Error{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Error) String() string {
@@ -110,7 +108,7 @@ func (*Error) ProtoMessage() {}
 
 func (x *Error) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -149,11 +147,9 @@ type DecodeError struct {
 
 func (x *DecodeError) Reset() {
 	*x = DecodeError{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DecodeError) String() string {
@@ -164,7 +160,7 @@ func (*DecodeError) ProtoMessage() {}
 
 func (x *DecodeError) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -196,11 +192,9 @@ type ValidationError struct {
 
 func (x *ValidationError) Reset() {
 	*x = ValidationError{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ValidationError) String() string {
@@ -211,7 +205,7 @@ func (*ValidationError) ProtoMessage() {}
 
 func (x *ValidationError) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -243,11 +237,9 @@ type ModificationError struct {
 
 func (x *ModificationError) Reset() {
 	*x = ModificationError{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ModificationError) String() string {
@@ -258,7 +250,7 @@ func (*ModificationError) ProtoMessage() {}
 
 func (x *ModificationError) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -294,11 +286,9 @@ type Permissions struct {
 
 func (x *Permissions) Reset() {
 	*x = Permissions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Permissions) String() string {
@@ -309,7 +299,7 @@ func (*Permissions) ProtoMessage() {}
 
 func (x *Permissions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -406,11 +396,9 @@ type Item struct {
 
 func (x *Item) Reset() {
 	*x = Item{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Item) String() string {
@@ -421,7 +409,7 @@ func (*Item) ProtoMessage() {}
 
 func (x *Item) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -596,11 +584,9 @@ type EventCreate struct {
 
 func (x *EventCreate) Reset() {
 	*x = EventCreate{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *EventCreate) String() string {
@@ -611,7 +597,7 @@ func (*EventCreate) ProtoMessage() {}
 
 func (x *EventCreate) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -667,11 +653,9 @@ type EventUpdate struct {
 
 func (x *EventUpdate) Reset() {
 	*x = EventUpdate{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *EventUpdate) String() string {
@@ -682,7 +666,7 @@ func (*EventUpdate) ProtoMessage() {}
 
 func (x *EventUpdate) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -738,11 +722,9 @@ type EventPublish struct {
 
 func (x *EventPublish) Reset() {
 	*x = EventPublish{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *EventPublish) String() string {
@@ -753,7 +735,7 @@ func (*EventPublish) ProtoMessage() {}
 
 func (x *EventPublish) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -809,11 +791,9 @@ type EventUnpublish struct {
 
 func (x *EventUnpublish) Reset() {
 	*x = EventUnpublish{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *EventUnpublish) String() string {
@@ -824,7 +804,7 @@ func (*EventUnpublish) ProtoMessage() {}
 
 func (x *EventUnpublish) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -880,11 +860,9 @@ type EventDelete struct {
 
 func (x *EventDelete) Reset() {
 	*x = EventDelete{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *EventDelete) String() string {
@@ -895,7 +873,7 @@ func (*EventDelete) ProtoMessage() {}
 
 func (x *EventDelete) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -950,11 +928,9 @@ type Filter struct {
 
 func (x *Filter) Reset() {
 	*x = Filter{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Filter) String() string {
@@ -965,7 +941,7 @@ func (*Filter) ProtoMessage() {}
 
 func (x *Filter) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1011,11 +987,9 @@ type CreateOptions struct {
 
 func (x *CreateOptions) Reset() {
 	*x = CreateOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateOptions) String() string {
@@ -1026,7 +1000,7 @@ func (*CreateOptions) ProtoMessage() {}
 
 func (x *CreateOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1066,11 +1040,9 @@ type FindOptions struct {
 
 func (x *FindOptions) Reset() {
 	*x = FindOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindOptions) String() string {
@@ -1081,7 +1053,7 @@ func (*FindOptions) ProtoMessage() {}
 
 func (x *FindOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1155,11 +1127,9 @@ type UpdateOptions struct {
 
 func (x *UpdateOptions) Reset() {
 	*x = UpdateOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateOptions) String() string {
@@ -1170,7 +1140,7 @@ func (*UpdateOptions) ProtoMessage() {}
 
 func (x *UpdateOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1205,11 +1175,9 @@ type GetPublishedOptions struct {
 
 func (x *GetPublishedOptions) Reset() {
 	*x = GetPublishedOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetPublishedOptions) String() string {
@@ -1220,7 +1188,7 @@ func (*GetPublishedOptions) ProtoMessage() {}
 
 func (x *GetPublishedOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1260,11 +1228,9 @@ type DeleteOptions struct {
 
 func (x *DeleteOptions) Reset() {
 	*x = DeleteOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteOptions) String() string {
@@ -1275,7 +1241,7 @@ func (*DeleteOptions) ProtoMessage() {}
 
 func (x *DeleteOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1314,11 +1280,9 @@ type UndeleteOptions struct {
 
 func (x *UndeleteOptions) Reset() {
 	*x = UndeleteOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UndeleteOptions) String() string {
@@ -1329,7 +1293,7 @@ func (*UndeleteOptions) ProtoMessage() {}
 
 func (x *UndeleteOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1361,11 +1325,9 @@ type PublishOptions struct {
 
 func (x *PublishOptions) Reset() {
 	*x = PublishOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[18]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PublishOptions) String() string {
@@ -1376,7 +1338,7 @@ func (*PublishOptions) ProtoMessage() {}
 
 func (x *PublishOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[18]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1408,11 +1370,9 @@ type UnpublishOptions struct {
 
 func (x *UnpublishOptions) Reset() {
 	*x = UnpublishOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[19]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UnpublishOptions) String() string {
@@ -1423,7 +1383,7 @@ func (*UnpublishOptions) ProtoMessage() {}
 
 func (x *UnpublishOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[19]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1463,11 +1423,9 @@ type FindPublishedOptions struct {
 
 func (x *FindPublishedOptions) Reset() {
 	*x = FindPublishedOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[20]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindPublishedOptions) String() string {
@@ -1478,7 +1436,7 @@ func (*FindPublishedOptions) ProtoMessage() {}
 
 func (x *FindPublishedOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[20]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1547,11 +1505,9 @@ type FindArchivedOptions struct {
 
 func (x *FindArchivedOptions) Reset() {
 	*x = FindArchivedOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[21]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[21]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindArchivedOptions) String() string {
@@ -1562,7 +1518,7 @@ func (*FindArchivedOptions) ProtoMessage() {}
 
 func (x *FindArchivedOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[21]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1610,11 +1566,9 @@ type ListRevisionsOptions struct {
 
 func (x *ListRevisionsOptions) Reset() {
 	*x = ListRevisionsOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[22]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[22]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListRevisionsOptions) String() string {
@@ -1625,7 +1579,7 @@ func (*ListRevisionsOptions) ProtoMessage() {}
 
 func (x *ListRevisionsOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[22]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1672,11 +1626,9 @@ type GetRevisionOptions struct {
 
 func (x *GetRevisionOptions) Reset() {
 	*x = GetRevisionOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[23]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[23]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRevisionOptions) String() string {
@@ -1687,7 +1639,7 @@ func (*GetRevisionOptions) ProtoMessage() {}
 
 func (x *GetRevisionOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[23]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1737,11 +1689,9 @@ type AggregateOptions struct {
 
 func (x *AggregateOptions) Reset() {
 	*x = AggregateOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[24]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[24]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AggregateOptions) String() string {
@@ -1752,7 +1702,7 @@ func (*AggregateOptions) ProtoMessage() {}
 
 func (x *AggregateOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[24]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1784,11 +1734,9 @@ type AggregatePublishedOptions struct {
 
 func (x *AggregatePublishedOptions) Reset() {
 	*x = AggregatePublishedOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[25]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[25]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AggregatePublishedOptions) String() string {
@@ -1799,7 +1747,7 @@ func (*AggregatePublishedOptions) ProtoMessage() {}
 
 func (x *AggregatePublishedOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[25]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1832,11 +1780,9 @@ type CreateRequest struct {
 
 func (x *CreateRequest) Reset() {
 	*x = CreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[26]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[26]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateRequest) String() string {
@@ -1847,7 +1793,7 @@ func (*CreateRequest) ProtoMessage() {}
 
 func (x *CreateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[26]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1886,11 +1832,9 @@ type CreateResponse struct {
 
 func (x *CreateResponse) Reset() {
 	*x = CreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[27]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[27]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateResponse) String() string {
@@ -1901,7 +1845,7 @@ func (*CreateResponse) ProtoMessage() {}
 
 func (x *CreateResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[27]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1933,11 +1877,9 @@ type IntrospectRequest struct {
 
 func (x *IntrospectRequest) Reset() {
 	*x = IntrospectRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[28]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[28]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *IntrospectRequest) String() string {
@@ -1948,7 +1890,7 @@ func (*IntrospectRequest) ProtoMessage() {}
 
 func (x *IntrospectRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[28]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1982,11 +1924,9 @@ type IntrospectResponse struct {
 
 func (x *IntrospectResponse) Reset() {
 	*x = IntrospectResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[29]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[29]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *IntrospectResponse) String() string {
@@ -1997,7 +1937,7 @@ func (*IntrospectResponse) ProtoMessage() {}
 
 func (x *IntrospectResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[29]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2044,11 +1984,9 @@ type GetOptions struct {
 
 func (x *GetOptions) Reset() {
 	*x = GetOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[30]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[30]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetOptions) String() string {
@@ -2059,7 +1997,7 @@ func (*GetOptions) ProtoMessage() {}
 
 func (x *GetOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[30]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2102,11 +2040,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[31]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[31]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -2117,7 +2053,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[31]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2177,11 +2113,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[32]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[32]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -2192,7 +2126,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[32]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2228,11 +2162,9 @@ type FindRequest struct {
 
 func (x *FindRequest) Reset() {
 	*x = FindRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[33]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[33]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindRequest) String() string {
@@ -2243,7 +2175,7 @@ func (*FindRequest) ProtoMessage() {}
 
 func (x *FindRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[33]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2304,11 +2236,9 @@ type FindResponse struct {
 
 func (x *FindResponse) Reset() {
 	*x = FindResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[34]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[34]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindResponse) String() string {
@@ -2319,7 +2249,7 @@ func (*FindResponse) ProtoMessage() {}
 
 func (x *FindResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[34]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2359,11 +2289,9 @@ type UpdateRequest struct {
 
 func (x *UpdateRequest) Reset() {
 	*x = UpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[35]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[35]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateRequest) String() string {
@@ -2374,7 +2302,7 @@ func (*UpdateRequest) ProtoMessage() {}
 
 func (x *UpdateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[35]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2414,11 +2342,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[36]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[36]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -2429,7 +2355,7 @@ func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[36]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2469,11 +2395,9 @@ type UndeleteRequest struct {
 
 func (x *UndeleteRequest) Reset() {
 	*x = UndeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[37]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[37]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UndeleteRequest) String() string {
@@ -2484,7 +2408,7 @@ func (*UndeleteRequest) ProtoMessage() {}
 
 func (x *UndeleteRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[37]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2524,11 +2448,9 @@ type PublishRequest struct {
 
 func (x *PublishRequest) Reset() {
 	*x = PublishRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[38]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[38]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PublishRequest) String() string {
@@ -2539,7 +2461,7 @@ func (*PublishRequest) ProtoMessage() {}
 
 func (x *PublishRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[38]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2579,11 +2501,9 @@ type UnpublishRequest struct {
 
 func (x *UnpublishRequest) Reset() {
 	*x = UnpublishRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[39]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[39]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UnpublishRequest) String() string {
@@ -2594,7 +2514,7 @@ func (*UnpublishRequest) ProtoMessage() {}
 
 func (x *UnpublishRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[39]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2637,11 +2557,9 @@ type GetPublishedRequest struct {
 
 func (x *GetPublishedRequest) Reset() {
 	*x = GetPublishedRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[40]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[40]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetPublishedRequest) String() string {
@@ -2652,7 +2570,7 @@ func (*GetPublishedRequest) ProtoMessage() {}
 
 func (x *GetPublishedRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[40]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2712,11 +2630,9 @@ type GetPublishedResponse struct {
 
 func (x *GetPublishedResponse) Reset() {
 	*x = GetPublishedResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[41]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[41]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetPublishedResponse) String() string {
@@ -2727,7 +2643,7 @@ func (*GetPublishedResponse) ProtoMessage() {}
 
 func (x *GetPublishedResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[41]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2763,11 +2679,9 @@ type FindPublishedRequest struct {
 
 func (x *FindPublishedRequest) Reset() {
 	*x = FindPublishedRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[42]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[42]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindPublishedRequest) String() string {
@@ -2778,7 +2692,7 @@ func (*FindPublishedRequest) ProtoMessage() {}
 
 func (x *FindPublishedRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[42]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2839,11 +2753,9 @@ type FindPublishedResponse struct {
 
 func (x *FindPublishedResponse) Reset() {
 	*x = FindPublishedResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[43]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[43]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindPublishedResponse) String() string {
@@ -2854,7 +2766,7 @@ func (*FindPublishedResponse) ProtoMessage() {}
 
 func (x *FindPublishedResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[43]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2897,11 +2809,9 @@ type AggregateRequest struct {
 
 func (x *AggregateRequest) Reset() {
 	*x = AggregateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[44]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[44]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AggregateRequest) String() string {
@@ -2912,7 +2822,7 @@ func (*AggregateRequest) ProtoMessage() {}
 
 func (x *AggregateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[44]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2974,11 +2884,9 @@ type AggregateResponse struct {
 
 func (x *AggregateResponse) Reset() {
 	*x = AggregateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[45]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[45]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AggregateResponse) String() string {
@@ -2989,7 +2897,7 @@ func (*AggregateResponse) ProtoMessage() {}
 
 func (x *AggregateResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[45]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3025,11 +2933,9 @@ type AggregatePublishedRequest struct {
 
 func (x *AggregatePublishedRequest) Reset() {
 	*x = AggregatePublishedRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[46]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[46]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AggregatePublishedRequest) String() string {
@@ -3040,7 +2946,7 @@ func (*AggregatePublishedRequest) ProtoMessage() {}
 
 func (x *AggregatePublishedRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[46]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3100,11 +3006,9 @@ type AggregatePublishedResponse struct {
 
 func (x *AggregatePublishedResponse) Reset() {
 	*x = AggregatePublishedResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[47]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[47]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AggregatePublishedResponse) String() string {
@@ -3115,7 +3019,7 @@ func (*AggregatePublishedResponse) ProtoMessage() {}
 
 func (x *AggregatePublishedResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[47]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3152,11 +3056,9 @@ type GetRevisionRequest struct {
 
 func (x *GetRevisionRequest) Reset() {
 	*x = GetRevisionRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[48]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[48]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRevisionRequest) String() string {
@@ -3167,7 +3069,7 @@ func (*GetRevisionRequest) ProtoMessage() {}
 
 func (x *GetRevisionRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[48]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3234,11 +3136,9 @@ type GetRevisionResponse struct {
 
 func (x *GetRevisionResponse) Reset() {
 	*x = GetRevisionResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[49]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[49]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRevisionResponse) String() string {
@@ -3249,7 +3149,7 @@ func (*GetRevisionResponse) ProtoMessage() {}
 
 func (x *GetRevisionResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[49]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3285,11 +3185,9 @@ type ListRevisionsRequest struct {
 
 func (x *ListRevisionsRequest) Reset() {
 	*x = ListRevisionsRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[50]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[50]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListRevisionsRequest) String() string {
@@ -3300,7 +3198,7 @@ func (*ListRevisionsRequest) ProtoMessage() {}
 
 func (x *ListRevisionsRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[50]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3360,11 +3258,9 @@ type ListRevisionsResponse struct {
 
 func (x *ListRevisionsResponse) Reset() {
 	*x = ListRevisionsResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[51]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[51]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListRevisionsResponse) String() string {
@@ -3375,7 +3271,7 @@ func (*ListRevisionsResponse) ProtoMessage() {}
 
 func (x *ListRevisionsResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[51]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3409,11 +3305,9 @@ type ArchiveRequest struct {
 
 func (x *ArchiveRequest) Reset() {
 	*x = ArchiveRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[52]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[52]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ArchiveRequest) String() string {
@@ -3424,7 +3318,7 @@ func (*ArchiveRequest) ProtoMessage() {}
 
 func (x *ArchiveRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[52]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3456,11 +3350,9 @@ type UnarchiveRequest struct {
 
 func (x *UnarchiveRequest) Reset() {
 	*x = UnarchiveRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[53]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[53]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UnarchiveRequest) String() string {
@@ -3471,7 +3363,7 @@ func (*UnarchiveRequest) ProtoMessage() {}
 
 func (x *UnarchiveRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[53]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3507,11 +3399,9 @@ type FindArchivedRequest struct {
 
 func (x *FindArchivedRequest) Reset() {
 	*x = FindArchivedRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[54]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[54]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindArchivedRequest) String() string {
@@ -3522,7 +3412,7 @@ func (*FindArchivedRequest) ProtoMessage() {}
 
 func (x *FindArchivedRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[54]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3583,11 +3473,9 @@ type FindArchivedResponse struct {
 
 func (x *FindArchivedResponse) Reset() {
 	*x = FindArchivedResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_items_items_proto_msgTypes[55]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_items_items_proto_msgTypes[55]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindArchivedResponse) String() string {
@@ -3598,7 +3486,7 @@ func (*FindArchivedResponse) ProtoMessage() {}
 
 func (x *FindArchivedResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_items_items_proto_msgTypes[55]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -4394,680 +4282,6 @@ func file_items_items_proto_init() {
 	if File_items_items_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_items_items_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Error); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*DecodeError); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*ValidationError); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*ModificationError); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*Permissions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*Item); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*EventCreate); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*EventUpdate); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*EventPublish); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*EventUnpublish); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*EventDelete); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*Filter); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[12].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[13].Exporter = func(v any, i int) any {
-			switch v := v.(*FindOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[14].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[15].Exporter = func(v any, i int) any {
-			switch v := v.(*GetPublishedOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[16].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[17].Exporter = func(v any, i int) any {
-			switch v := v.(*UndeleteOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[18].Exporter = func(v any, i int) any {
-			switch v := v.(*PublishOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[19].Exporter = func(v any, i int) any {
-			switch v := v.(*UnpublishOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[20].Exporter = func(v any, i int) any {
-			switch v := v.(*FindPublishedOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[21].Exporter = func(v any, i int) any {
-			switch v := v.(*FindArchivedOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[22].Exporter = func(v any, i int) any {
-			switch v := v.(*ListRevisionsOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[23].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRevisionOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[24].Exporter = func(v any, i int) any {
-			switch v := v.(*AggregateOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[25].Exporter = func(v any, i int) any {
-			switch v := v.(*AggregatePublishedOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[26].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[27].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[28].Exporter = func(v any, i int) any {
-			switch v := v.(*IntrospectRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[29].Exporter = func(v any, i int) any {
-			switch v := v.(*IntrospectResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[30].Exporter = func(v any, i int) any {
-			switch v := v.(*GetOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[31].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[32].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[33].Exporter = func(v any, i int) any {
-			switch v := v.(*FindRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[34].Exporter = func(v any, i int) any {
-			switch v := v.(*FindResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[35].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[36].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[37].Exporter = func(v any, i int) any {
-			switch v := v.(*UndeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[38].Exporter = func(v any, i int) any {
-			switch v := v.(*PublishRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[39].Exporter = func(v any, i int) any {
-			switch v := v.(*UnpublishRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[40].Exporter = func(v any, i int) any {
-			switch v := v.(*GetPublishedRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[41].Exporter = func(v any, i int) any {
-			switch v := v.(*GetPublishedResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[42].Exporter = func(v any, i int) any {
-			switch v := v.(*FindPublishedRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[43].Exporter = func(v any, i int) any {
-			switch v := v.(*FindPublishedResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[44].Exporter = func(v any, i int) any {
-			switch v := v.(*AggregateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[45].Exporter = func(v any, i int) any {
-			switch v := v.(*AggregateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[46].Exporter = func(v any, i int) any {
-			switch v := v.(*AggregatePublishedRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[47].Exporter = func(v any, i int) any {
-			switch v := v.(*AggregatePublishedResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[48].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRevisionRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[49].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRevisionResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[50].Exporter = func(v any, i int) any {
-			switch v := v.(*ListRevisionsRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[51].Exporter = func(v any, i int) any {
-			switch v := v.(*ListRevisionsResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[52].Exporter = func(v any, i int) any {
-			switch v := v.(*ArchiveRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[53].Exporter = func(v any, i int) any {
-			switch v := v.(*UnarchiveRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[54].Exporter = func(v any, i int) any {
-			switch v := v.(*FindArchivedRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_items_items_proto_msgTypes[55].Exporter = func(v any, i int) any {
-			switch v := v.(*FindArchivedResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/items/items_grpc.pb.go b/proto/items/items_grpc.pb.go
index 16b48642..1728ae10 100644
--- a/proto/items/items_grpc.pb.go
+++ b/proto/items/items_grpc.pb.go
@@ -9,7 +9,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: items/items.proto
 
 package items
diff --git a/proto/locales/locales.pb.go b/proto/locales/locales.pb.go
index a1a301ae..59c8fdc6 100644
--- a/proto/locales/locales.pb.go
+++ b/proto/locales/locales.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: locales/locales.proto
 
 package locales
@@ -40,11 +40,9 @@ type Locale struct {
 
 func (x *Locale) Reset() {
 	*x = Locale{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_locales_locales_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_locales_locales_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Locale) String() string {
@@ -55,7 +53,7 @@ func (*Locale) ProtoMessage() {}
 
 func (x *Locale) ProtoReflect() protoreflect.Message {
 	mi := &file_locales_locales_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -150,11 +148,9 @@ type CreateRequest struct {
 
 func (x *CreateRequest) Reset() {
 	*x = CreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_locales_locales_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_locales_locales_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateRequest) String() string {
@@ -165,7 +161,7 @@ func (*CreateRequest) ProtoMessage() {}
 
 func (x *CreateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_locales_locales_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -197,11 +193,9 @@ type CreateResponse struct {
 
 func (x *CreateResponse) Reset() {
 	*x = CreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_locales_locales_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_locales_locales_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateResponse) String() string {
@@ -212,7 +206,7 @@ func (*CreateResponse) ProtoMessage() {}
 
 func (x *CreateResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_locales_locales_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -244,11 +238,9 @@ type UpdateRequest struct {
 
 func (x *UpdateRequest) Reset() {
 	*x = UpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_locales_locales_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_locales_locales_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateRequest) String() string {
@@ -259,7 +251,7 @@ func (*UpdateRequest) ProtoMessage() {}
 
 func (x *UpdateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_locales_locales_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -291,11 +283,9 @@ type ListRequest struct {
 
 func (x *ListRequest) Reset() {
 	*x = ListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_locales_locales_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_locales_locales_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListRequest) String() string {
@@ -306,7 +296,7 @@ func (*ListRequest) ProtoMessage() {}
 
 func (x *ListRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_locales_locales_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -338,11 +328,9 @@ type ListResponse struct {
 
 func (x *ListResponse) Reset() {
 	*x = ListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_locales_locales_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_locales_locales_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListResponse) String() string {
@@ -353,7 +341,7 @@ func (*ListResponse) ProtoMessage() {}
 
 func (x *ListResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_locales_locales_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -386,11 +374,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_locales_locales_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_locales_locales_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -401,7 +387,7 @@ func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_locales_locales_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -550,92 +536,6 @@ func file_locales_locales_proto_init() {
 	if File_locales_locales_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_locales_locales_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Locale); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_locales_locales_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_locales_locales_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_locales_locales_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_locales_locales_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*ListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_locales_locales_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*ListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_locales_locales_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/locales/locales_grpc.pb.go b/proto/locales/locales_grpc.pb.go
index 1e6d289f..7a055085 100644
--- a/proto/locales/locales_grpc.pb.go
+++ b/proto/locales/locales_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: locales/locales.proto
 
 package locales
diff --git a/proto/logs/log.pb.go b/proto/logs/log.pb.go
index deb2d4fc..83525669 100644
--- a/proto/logs/log.pb.go
+++ b/proto/logs/log.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: logs/log.proto
 
 package logs
@@ -152,11 +152,9 @@ type LogEntry struct {
 
 func (x *LogEntry) Reset() {
 	*x = LogEntry{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logs_log_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_logs_log_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LogEntry) String() string {
@@ -167,7 +165,7 @@ func (*LogEntry) ProtoMessage() {}
 
 func (x *LogEntry) ProtoReflect() protoreflect.Message {
 	mi := &file_logs_log_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -346,20 +344,6 @@ func file_logs_log_proto_init() {
 	if File_logs_log_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_logs_log_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*LogEntry); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/logs/log_service.pb.go b/proto/logs/log_service.pb.go
index 114d5229..63dff2cb 100644
--- a/proto/logs/log_service.pb.go
+++ b/proto/logs/log_service.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: logs/log_service.proto
 
 package logs
@@ -34,11 +34,9 @@ type LogRequest struct {
 
 func (x *LogRequest) Reset() {
 	*x = LogRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logs_log_service_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_logs_log_service_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LogRequest) String() string {
@@ -49,7 +47,7 @@ func (*LogRequest) ProtoMessage() {}
 
 func (x *LogRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_logs_log_service_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -83,11 +81,9 @@ type LogResponse struct {
 
 func (x *LogResponse) Reset() {
 	*x = LogResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logs_log_service_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_logs_log_service_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LogResponse) String() string {
@@ -98,7 +94,7 @@ func (*LogResponse) ProtoMessage() {}
 
 func (x *LogResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_logs_log_service_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -136,11 +132,9 @@ type Filter struct {
 
 func (x *Filter) Reset() {
 	*x = Filter{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logs_log_service_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_logs_log_service_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Filter) String() string {
@@ -151,7 +145,7 @@ func (*Filter) ProtoMessage() {}
 
 func (x *Filter) ProtoReflect() protoreflect.Message {
 	mi := &file_logs_log_service_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -187,11 +181,9 @@ type FindRequest struct {
 
 func (x *FindRequest) Reset() {
 	*x = FindRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logs_log_service_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_logs_log_service_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindRequest) String() string {
@@ -202,7 +194,7 @@ func (*FindRequest) ProtoMessage() {}
 
 func (x *FindRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_logs_log_service_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -250,11 +242,9 @@ type FindResult struct {
 
 func (x *FindResult) Reset() {
 	*x = FindResult{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logs_log_service_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_logs_log_service_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindResult) String() string {
@@ -265,7 +255,7 @@ func (*FindResult) ProtoMessage() {}
 
 func (x *FindResult) ProtoReflect() protoreflect.Message {
 	mi := &file_logs_log_service_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -323,11 +313,9 @@ type FindResponse struct {
 
 func (x *FindResponse) Reset() {
 	*x = FindResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logs_log_service_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_logs_log_service_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindResponse) String() string {
@@ -338,7 +326,7 @@ func (*FindResponse) ProtoMessage() {}
 
 func (x *FindResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_logs_log_service_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -404,11 +392,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logs_log_service_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_logs_log_service_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -419,7 +405,7 @@ func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_logs_log_service_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -453,11 +439,9 @@ type DeleteResponse struct {
 
 func (x *DeleteResponse) Reset() {
 	*x = DeleteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_logs_log_service_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_logs_log_service_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteResponse) String() string {
@@ -468,7 +452,7 @@ func (*DeleteResponse) ProtoMessage() {}
 
 func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_logs_log_service_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -612,104 +596,6 @@ func file_logs_log_service_proto_init() {
 		return
 	}
 	file_logs_log_proto_init()
-	if !protoimpl.UnsafeEnabled {
-		file_logs_log_service_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*LogRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_logs_log_service_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*LogResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_logs_log_service_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*Filter); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_logs_log_service_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*FindRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_logs_log_service_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*FindResult); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_logs_log_service_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*FindResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_logs_log_service_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_logs_log_service_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	file_logs_log_service_proto_msgTypes[5].OneofWrappers = []any{
 		(*FindResponse_Result)(nil),
 		(*FindResponse_Error)(nil),
diff --git a/proto/logs/log_service_grpc.pb.go b/proto/logs/log_service_grpc.pb.go
index c8fd4bc4..4beb21d6 100644
--- a/proto/logs/log_service_grpc.pb.go
+++ b/proto/logs/log_service_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: logs/log_service.proto
 
 package logs
diff --git a/proto/members/members.pb.go b/proto/members/members.pb.go
index deb1ac55..8789a98e 100644
--- a/proto/members/members.pb.go
+++ b/proto/members/members.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: members/members.proto
 
 package members
@@ -87,11 +87,9 @@ type Member struct {
 
 func (x *Member) Reset() {
 	*x = Member{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_members_members_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_members_members_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Member) String() string {
@@ -102,7 +100,7 @@ func (*Member) ProtoMessage() {}
 
 func (x *Member) ProtoReflect() protoreflect.Message {
 	mi := &file_members_members_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -150,11 +148,9 @@ type SetRequest struct {
 
 func (x *SetRequest) Reset() {
 	*x = SetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_members_members_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_members_members_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetRequest) String() string {
@@ -165,7 +161,7 @@ func (*SetRequest) ProtoMessage() {}
 
 func (x *SetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_members_members_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -212,11 +208,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_members_members_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_members_members_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -227,7 +221,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_members_members_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -266,11 +260,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_members_members_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_members_members_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -281,7 +273,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_members_members_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -314,11 +306,9 @@ type RemoveRequest struct {
 
 func (x *RemoveRequest) Reset() {
 	*x = RemoveRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_members_members_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_members_members_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemoveRequest) String() string {
@@ -329,7 +319,7 @@ func (*RemoveRequest) ProtoMessage() {}
 
 func (x *RemoveRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_members_members_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -368,11 +358,9 @@ type ListMembersRequest struct {
 
 func (x *ListMembersRequest) Reset() {
 	*x = ListMembersRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_members_members_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_members_members_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListMembersRequest) String() string {
@@ -383,7 +371,7 @@ func (*ListMembersRequest) ProtoMessage() {}
 
 func (x *ListMembersRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_members_members_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -415,11 +403,9 @@ type ListMembersResponse struct {
 
 func (x *ListMembersResponse) Reset() {
 	*x = ListMembersResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_members_members_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_members_members_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListMembersResponse) String() string {
@@ -430,7 +416,7 @@ func (*ListMembersResponse) ProtoMessage() {}
 
 func (x *ListMembersResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_members_members_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -462,11 +448,9 @@ type ListOrganizationsRequest struct {
 
 func (x *ListOrganizationsRequest) Reset() {
 	*x = ListOrganizationsRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_members_members_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_members_members_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListOrganizationsRequest) String() string {
@@ -477,7 +461,7 @@ func (*ListOrganizationsRequest) ProtoMessage() {}
 
 func (x *ListOrganizationsRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_members_members_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -509,11 +493,9 @@ type ListOrganizationsResponse struct {
 
 func (x *ListOrganizationsResponse) Reset() {
 	*x = ListOrganizationsResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_members_members_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_members_members_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListOrganizationsResponse) String() string {
@@ -524,7 +506,7 @@ func (*ListOrganizationsResponse) ProtoMessage() {}
 
 func (x *ListOrganizationsResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_members_members_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -558,11 +540,9 @@ type OnCollaboratorSetRequest struct {
 
 func (x *OnCollaboratorSetRequest) Reset() {
 	*x = OnCollaboratorSetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_members_members_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_members_members_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *OnCollaboratorSetRequest) String() string {
@@ -573,7 +553,7 @@ func (*OnCollaboratorSetRequest) ProtoMessage() {}
 
 func (x *OnCollaboratorSetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_members_members_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -605,11 +585,9 @@ type OnCollaboratorSetResponse struct {
 
 func (x *OnCollaboratorSetResponse) Reset() {
 	*x = OnCollaboratorSetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_members_members_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_members_members_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *OnCollaboratorSetResponse) String() string {
@@ -620,7 +598,7 @@ func (*OnCollaboratorSetResponse) ProtoMessage() {}
 
 func (x *OnCollaboratorSetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_members_members_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -806,140 +784,6 @@ func file_members_members_proto_init() {
 	if File_members_members_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_members_members_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Member); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_members_members_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*SetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_members_members_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_members_members_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_members_members_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*RemoveRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_members_members_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*ListMembersRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_members_members_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*ListMembersResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_members_members_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*ListOrganizationsRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_members_members_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*ListOrganizationsResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_members_members_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*OnCollaboratorSetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_members_members_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*OnCollaboratorSetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/members/members_grpc.pb.go b/proto/members/members_grpc.pb.go
index 8b6677f4..c7f9fd54 100644
--- a/proto/members/members_grpc.pb.go
+++ b/proto/members/members_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: members/members.proto
 
 package members
diff --git a/proto/mocks/ClientsClient.go b/proto/mocks/ClientsClient.go
index 3234e724..37c16b6f 100644
--- a/proto/mocks/ClientsClient.go
+++ b/proto/mocks/ClientsClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -30,6 +30,10 @@ func (_m *ClientsClient) Create(ctx context.Context, in *clients.CreateRequest,
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *clients.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.CreateRequest, ...grpc.CallOption) (*clients.CreateResponse, error)); ok {
@@ -63,6 +67,10 @@ func (_m *ClientsClient) Delete(ctx context.Context, in *clients.DeleteRequest,
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.DeleteRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -96,6 +104,10 @@ func (_m *ClientsClient) Enable(ctx context.Context, in *clients.EnableRequest,
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Enable")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.EnableRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -129,6 +141,10 @@ func (_m *ClientsClient) Get(ctx context.Context, in *clients.GetRequest, opts .
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *clients.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.GetRequest, ...grpc.CallOption) (*clients.GetResponse, error)); ok {
@@ -162,6 +178,10 @@ func (_m *ClientsClient) GetBy(ctx context.Context, in *clients.GetByRequest, op
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetBy")
+	}
+
 	var r0 *clients.GetByResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.GetByRequest, ...grpc.CallOption) (*clients.GetByResponse, error)); ok {
@@ -195,6 +215,10 @@ func (_m *ClientsClient) List(ctx context.Context, in *clients.ListRequest, opts
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for List")
+	}
+
 	var r0 *clients.ListResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.ListRequest, ...grpc.CallOption) (*clients.ListResponse, error)); ok {
@@ -228,6 +252,10 @@ func (_m *ClientsClient) Update(ctx context.Context, in *clients.UpdateRequest,
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.UpdateRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/ClientsServer.go b/proto/mocks/ClientsServer.go
index 75d6e4f1..f9b63e0f 100644
--- a/proto/mocks/ClientsServer.go
+++ b/proto/mocks/ClientsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -21,6 +21,10 @@ type ClientsServer struct {
 func (_m *ClientsServer) Create(_a0 context.Context, _a1 *clients.CreateRequest) (*clients.CreateResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *clients.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.CreateRequest) (*clients.CreateResponse, error)); ok {
@@ -47,6 +51,10 @@ func (_m *ClientsServer) Create(_a0 context.Context, _a1 *clients.CreateRequest)
 func (_m *ClientsServer) Delete(_a0 context.Context, _a1 *clients.DeleteRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.DeleteRequest) (*emptypb.Empty, error)); ok {
@@ -73,6 +81,10 @@ func (_m *ClientsServer) Delete(_a0 context.Context, _a1 *clients.DeleteRequest)
 func (_m *ClientsServer) Enable(_a0 context.Context, _a1 *clients.EnableRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Enable")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.EnableRequest) (*emptypb.Empty, error)); ok {
@@ -99,6 +111,10 @@ func (_m *ClientsServer) Enable(_a0 context.Context, _a1 *clients.EnableRequest)
 func (_m *ClientsServer) Get(_a0 context.Context, _a1 *clients.GetRequest) (*clients.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *clients.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.GetRequest) (*clients.GetResponse, error)); ok {
@@ -125,6 +141,10 @@ func (_m *ClientsServer) Get(_a0 context.Context, _a1 *clients.GetRequest) (*cli
 func (_m *ClientsServer) GetBy(_a0 context.Context, _a1 *clients.GetByRequest) (*clients.GetByResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetBy")
+	}
+
 	var r0 *clients.GetByResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.GetByRequest) (*clients.GetByResponse, error)); ok {
@@ -151,6 +171,10 @@ func (_m *ClientsServer) GetBy(_a0 context.Context, _a1 *clients.GetByRequest) (
 func (_m *ClientsServer) List(_a0 context.Context, _a1 *clients.ListRequest) (*clients.ListResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for List")
+	}
+
 	var r0 *clients.ListResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.ListRequest) (*clients.ListResponse, error)); ok {
@@ -177,6 +201,10 @@ func (_m *ClientsServer) List(_a0 context.Context, _a1 *clients.ListRequest) (*c
 func (_m *ClientsServer) Update(_a0 context.Context, _a1 *clients.UpdateRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *clients.UpdateRequest) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/CollaboratorsClient.go b/proto/mocks/CollaboratorsClient.go
index 8d9cb07f..b3e86164 100644
--- a/proto/mocks/CollaboratorsClient.go
+++ b/proto/mocks/CollaboratorsClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -30,6 +30,10 @@ func (_m *CollaboratorsClient) Get(ctx context.Context, in *collaborators.GetReq
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *collaborators.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collaborators.GetRequest, ...grpc.CallOption) (*collaborators.GetResponse, error)); ok {
@@ -63,6 +67,10 @@ func (_m *CollaboratorsClient) ListCollaborators(ctx context.Context, in *collab
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListCollaborators")
+	}
+
 	var r0 *collaborators.ListCollaboratorsResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collaborators.ListCollaboratorsRequest, ...grpc.CallOption) (*collaborators.ListCollaboratorsResponse, error)); ok {
@@ -96,6 +104,10 @@ func (_m *CollaboratorsClient) ListSpaces(ctx context.Context, in *collaborators
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListSpaces")
+	}
+
 	var r0 *collaborators.ListSpacesResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collaborators.ListSpacesRequest, ...grpc.CallOption) (*collaborators.ListSpacesResponse, error)); ok {
@@ -129,6 +141,10 @@ func (_m *CollaboratorsClient) Remove(ctx context.Context, in *collaborators.Rem
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Remove")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collaborators.RemoveRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -162,6 +178,10 @@ func (_m *CollaboratorsClient) Set(ctx context.Context, in *collaborators.SetReq
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Set")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collaborators.SetRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/CollaboratorsServer.go b/proto/mocks/CollaboratorsServer.go
index 4e2fe0e0..bf232365 100644
--- a/proto/mocks/CollaboratorsServer.go
+++ b/proto/mocks/CollaboratorsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -21,6 +21,10 @@ type CollaboratorsServer struct {
 func (_m *CollaboratorsServer) Get(_a0 context.Context, _a1 *collaborators.GetRequest) (*collaborators.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *collaborators.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collaborators.GetRequest) (*collaborators.GetResponse, error)); ok {
@@ -47,6 +51,10 @@ func (_m *CollaboratorsServer) Get(_a0 context.Context, _a1 *collaborators.GetRe
 func (_m *CollaboratorsServer) ListCollaborators(_a0 context.Context, _a1 *collaborators.ListCollaboratorsRequest) (*collaborators.ListCollaboratorsResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListCollaborators")
+	}
+
 	var r0 *collaborators.ListCollaboratorsResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collaborators.ListCollaboratorsRequest) (*collaborators.ListCollaboratorsResponse, error)); ok {
@@ -73,6 +81,10 @@ func (_m *CollaboratorsServer) ListCollaborators(_a0 context.Context, _a1 *colla
 func (_m *CollaboratorsServer) ListSpaces(_a0 context.Context, _a1 *collaborators.ListSpacesRequest) (*collaborators.ListSpacesResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListSpaces")
+	}
+
 	var r0 *collaborators.ListSpacesResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collaborators.ListSpacesRequest) (*collaborators.ListSpacesResponse, error)); ok {
@@ -99,6 +111,10 @@ func (_m *CollaboratorsServer) ListSpaces(_a0 context.Context, _a1 *collaborator
 func (_m *CollaboratorsServer) Remove(_a0 context.Context, _a1 *collaborators.RemoveRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Remove")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collaborators.RemoveRequest) (*emptypb.Empty, error)); ok {
@@ -125,6 +141,10 @@ func (_m *CollaboratorsServer) Remove(_a0 context.Context, _a1 *collaborators.Re
 func (_m *CollaboratorsServer) Set(_a0 context.Context, _a1 *collaborators.SetRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Set")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collaborators.SetRequest) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/CollectionsClient.go b/proto/mocks/CollectionsClient.go
index 9c8ae28c..f30691e2 100644
--- a/proto/mocks/CollectionsClient.go
+++ b/proto/mocks/CollectionsClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -30,6 +30,10 @@ func (_m *CollectionsClient) Create(ctx context.Context, in *collections.CreateR
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *collections.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collections.CreateRequest, ...grpc.CallOption) (*collections.CreateResponse, error)); ok {
@@ -63,6 +67,10 @@ func (_m *CollectionsClient) Delete(ctx context.Context, in *collections.DeleteR
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collections.DeleteRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -96,6 +104,10 @@ func (_m *CollectionsClient) Get(ctx context.Context, in *collections.GetRequest
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *collections.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collections.GetRequest, ...grpc.CallOption) (*collections.GetResponse, error)); ok {
@@ -129,6 +141,10 @@ func (_m *CollectionsClient) List(ctx context.Context, in *collections.ListReque
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for List")
+	}
+
 	var r0 *collections.ListResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collections.ListRequest, ...grpc.CallOption) (*collections.ListResponse, error)); ok {
@@ -162,6 +178,10 @@ func (_m *CollectionsClient) SetSchema(ctx context.Context, in *collections.SetS
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for SetSchema")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collections.SetSchemaRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -195,6 +215,10 @@ func (_m *CollectionsClient) Update(ctx context.Context, in *collections.UpdateR
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collections.UpdateRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/CollectionsServer.go b/proto/mocks/CollectionsServer.go
index 5e49e0c9..2ac4a701 100644
--- a/proto/mocks/CollectionsServer.go
+++ b/proto/mocks/CollectionsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -21,6 +21,10 @@ type CollectionsServer struct {
 func (_m *CollectionsServer) Create(_a0 context.Context, _a1 *collections.CreateRequest) (*collections.CreateResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *collections.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collections.CreateRequest) (*collections.CreateResponse, error)); ok {
@@ -47,6 +51,10 @@ func (_m *CollectionsServer) Create(_a0 context.Context, _a1 *collections.Create
 func (_m *CollectionsServer) Delete(_a0 context.Context, _a1 *collections.DeleteRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collections.DeleteRequest) (*emptypb.Empty, error)); ok {
@@ -73,6 +81,10 @@ func (_m *CollectionsServer) Delete(_a0 context.Context, _a1 *collections.Delete
 func (_m *CollectionsServer) Get(_a0 context.Context, _a1 *collections.GetRequest) (*collections.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *collections.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collections.GetRequest) (*collections.GetResponse, error)); ok {
@@ -99,6 +111,10 @@ func (_m *CollectionsServer) Get(_a0 context.Context, _a1 *collections.GetReques
 func (_m *CollectionsServer) List(_a0 context.Context, _a1 *collections.ListRequest) (*collections.ListResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for List")
+	}
+
 	var r0 *collections.ListResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collections.ListRequest) (*collections.ListResponse, error)); ok {
@@ -125,6 +141,10 @@ func (_m *CollectionsServer) List(_a0 context.Context, _a1 *collections.ListRequ
 func (_m *CollectionsServer) SetSchema(_a0 context.Context, _a1 *collections.SetSchemaRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for SetSchema")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collections.SetSchemaRequest) (*emptypb.Empty, error)); ok {
@@ -151,6 +171,10 @@ func (_m *CollectionsServer) SetSchema(_a0 context.Context, _a1 *collections.Set
 func (_m *CollectionsServer) Update(_a0 context.Context, _a1 *collections.UpdateRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *collections.UpdateRequest) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/DeliveryClient.go b/proto/mocks/DeliveryClient.go
index 21327821..780e5b9d 100644
--- a/proto/mocks/DeliveryClient.go
+++ b/proto/mocks/DeliveryClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -27,6 +27,10 @@ func (_m *DeliveryClient) Aggregate(ctx context.Context, in *delivery.AggregateR
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Aggregate")
+	}
+
 	var r0 *delivery.AggregateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.AggregateRequest, ...grpc.CallOption) (*delivery.AggregateResponse, error)); ok {
@@ -60,6 +64,10 @@ func (_m *DeliveryClient) FindItems(ctx context.Context, in *delivery.FindItemsR
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for FindItems")
+	}
+
 	var r0 *delivery.FindItemsResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.FindItemsRequest, ...grpc.CallOption) (*delivery.FindItemsResponse, error)); ok {
@@ -93,6 +101,10 @@ func (_m *DeliveryClient) GetCollection(ctx context.Context, in *delivery.GetCol
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetCollection")
+	}
+
 	var r0 *delivery.GetCollectionResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.GetCollectionRequest, ...grpc.CallOption) (*delivery.GetCollectionResponse, error)); ok {
@@ -126,6 +138,10 @@ func (_m *DeliveryClient) GetEnvironment(ctx context.Context, in *delivery.GetEn
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetEnvironment")
+	}
+
 	var r0 *delivery.GetEnvironmentResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.GetEnvironmentRequest, ...grpc.CallOption) (*delivery.GetEnvironmentResponse, error)); ok {
@@ -159,6 +175,10 @@ func (_m *DeliveryClient) GetItem(ctx context.Context, in *delivery.GetItemReque
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetItem")
+	}
+
 	var r0 *delivery.GetItemResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.GetItemRequest, ...grpc.CallOption) (*delivery.GetItemResponse, error)); ok {
@@ -192,6 +212,10 @@ func (_m *DeliveryClient) ListCollections(ctx context.Context, in *delivery.List
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListCollections")
+	}
+
 	var r0 *delivery.ListCollectionsResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.ListCollectionsRequest, ...grpc.CallOption) (*delivery.ListCollectionsResponse, error)); ok {
@@ -225,6 +249,10 @@ func (_m *DeliveryClient) ListEnvironments(ctx context.Context, in *delivery.Lis
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListEnvironments")
+	}
+
 	var r0 *delivery.ListEnvironmentsResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.ListEnvironmentsRequest, ...grpc.CallOption) (*delivery.ListEnvironmentsResponse, error)); ok {
@@ -258,6 +286,10 @@ func (_m *DeliveryClient) ListLocales(ctx context.Context, in *delivery.ListLoca
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListLocales")
+	}
+
 	var r0 *delivery.ListLocalesResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.ListLocalesRequest, ...grpc.CallOption) (*delivery.ListLocalesResponse, error)); ok {
diff --git a/proto/mocks/DeliveryServer.go b/proto/mocks/DeliveryServer.go
index 2b42c466..582c80b6 100644
--- a/proto/mocks/DeliveryServer.go
+++ b/proto/mocks/DeliveryServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -18,6 +18,10 @@ type DeliveryServer struct {
 func (_m *DeliveryServer) Aggregate(_a0 context.Context, _a1 *delivery.AggregateRequest) (*delivery.AggregateResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Aggregate")
+	}
+
 	var r0 *delivery.AggregateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.AggregateRequest) (*delivery.AggregateResponse, error)); ok {
@@ -44,6 +48,10 @@ func (_m *DeliveryServer) Aggregate(_a0 context.Context, _a1 *delivery.Aggregate
 func (_m *DeliveryServer) FindItems(_a0 context.Context, _a1 *delivery.FindItemsRequest) (*delivery.FindItemsResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for FindItems")
+	}
+
 	var r0 *delivery.FindItemsResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.FindItemsRequest) (*delivery.FindItemsResponse, error)); ok {
@@ -70,6 +78,10 @@ func (_m *DeliveryServer) FindItems(_a0 context.Context, _a1 *delivery.FindItems
 func (_m *DeliveryServer) GetCollection(_a0 context.Context, _a1 *delivery.GetCollectionRequest) (*delivery.GetCollectionResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetCollection")
+	}
+
 	var r0 *delivery.GetCollectionResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.GetCollectionRequest) (*delivery.GetCollectionResponse, error)); ok {
@@ -96,6 +108,10 @@ func (_m *DeliveryServer) GetCollection(_a0 context.Context, _a1 *delivery.GetCo
 func (_m *DeliveryServer) GetEnvironment(_a0 context.Context, _a1 *delivery.GetEnvironmentRequest) (*delivery.GetEnvironmentResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetEnvironment")
+	}
+
 	var r0 *delivery.GetEnvironmentResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.GetEnvironmentRequest) (*delivery.GetEnvironmentResponse, error)); ok {
@@ -122,6 +138,10 @@ func (_m *DeliveryServer) GetEnvironment(_a0 context.Context, _a1 *delivery.GetE
 func (_m *DeliveryServer) GetItem(_a0 context.Context, _a1 *delivery.GetItemRequest) (*delivery.GetItemResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetItem")
+	}
+
 	var r0 *delivery.GetItemResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.GetItemRequest) (*delivery.GetItemResponse, error)); ok {
@@ -148,6 +168,10 @@ func (_m *DeliveryServer) GetItem(_a0 context.Context, _a1 *delivery.GetItemRequ
 func (_m *DeliveryServer) ListCollections(_a0 context.Context, _a1 *delivery.ListCollectionsRequest) (*delivery.ListCollectionsResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListCollections")
+	}
+
 	var r0 *delivery.ListCollectionsResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.ListCollectionsRequest) (*delivery.ListCollectionsResponse, error)); ok {
@@ -174,6 +198,10 @@ func (_m *DeliveryServer) ListCollections(_a0 context.Context, _a1 *delivery.Lis
 func (_m *DeliveryServer) ListEnvironments(_a0 context.Context, _a1 *delivery.ListEnvironmentsRequest) (*delivery.ListEnvironmentsResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListEnvironments")
+	}
+
 	var r0 *delivery.ListEnvironmentsResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.ListEnvironmentsRequest) (*delivery.ListEnvironmentsResponse, error)); ok {
@@ -200,6 +228,10 @@ func (_m *DeliveryServer) ListEnvironments(_a0 context.Context, _a1 *delivery.Li
 func (_m *DeliveryServer) ListLocales(_a0 context.Context, _a1 *delivery.ListLocalesRequest) (*delivery.ListLocalesResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListLocales")
+	}
+
 	var r0 *delivery.ListLocalesResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *delivery.ListLocalesRequest) (*delivery.ListLocalesResponse, error)); ok {
diff --git a/proto/mocks/EnvironmentsClient.go b/proto/mocks/EnvironmentsClient.go
index 9dfa1905..8e9ebc2e 100644
--- a/proto/mocks/EnvironmentsClient.go
+++ b/proto/mocks/EnvironmentsClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -29,6 +29,10 @@ func (_m *EnvironmentsClient) Create(ctx context.Context, in *environments.Creat
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *environments.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.CreateRequest, ...grpc.CallOption) (*environments.CreateResponse, error)); ok {
@@ -62,6 +66,10 @@ func (_m *EnvironmentsClient) Delete(ctx context.Context, in *environments.Delet
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.DeleteRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -95,6 +103,10 @@ func (_m *EnvironmentsClient) Get(ctx context.Context, in *environments.GetReque
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *environments.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.GetRequest, ...grpc.CallOption) (*environments.GetResponse, error)); ok {
@@ -128,6 +140,10 @@ func (_m *EnvironmentsClient) List(ctx context.Context, in *environments.ListReq
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for List")
+	}
+
 	var r0 *environments.ListResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.ListRequest, ...grpc.CallOption) (*environments.ListResponse, error)); ok {
@@ -161,6 +177,10 @@ func (_m *EnvironmentsClient) Migrate(ctx context.Context, in *environments.Migr
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Migrate")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.MigrateRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -194,6 +214,10 @@ func (_m *EnvironmentsClient) RemoveAlias(ctx context.Context, in *environments.
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for RemoveAlias")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.RemoveAliasRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -227,6 +251,10 @@ func (_m *EnvironmentsClient) SetAlias(ctx context.Context, in *environments.Set
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for SetAlias")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.SetAliasRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -260,6 +288,10 @@ func (_m *EnvironmentsClient) Update(ctx context.Context, in *environments.Updat
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.UpdateRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/EnvironmentsServer.go b/proto/mocks/EnvironmentsServer.go
index e62b612e..32720c8d 100644
--- a/proto/mocks/EnvironmentsServer.go
+++ b/proto/mocks/EnvironmentsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -20,6 +20,10 @@ type EnvironmentsServer struct {
 func (_m *EnvironmentsServer) Create(_a0 context.Context, _a1 *environments.CreateRequest) (*environments.CreateResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *environments.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.CreateRequest) (*environments.CreateResponse, error)); ok {
@@ -46,6 +50,10 @@ func (_m *EnvironmentsServer) Create(_a0 context.Context, _a1 *environments.Crea
 func (_m *EnvironmentsServer) Delete(_a0 context.Context, _a1 *environments.DeleteRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.DeleteRequest) (*emptypb.Empty, error)); ok {
@@ -72,6 +80,10 @@ func (_m *EnvironmentsServer) Delete(_a0 context.Context, _a1 *environments.Dele
 func (_m *EnvironmentsServer) Get(_a0 context.Context, _a1 *environments.GetRequest) (*environments.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *environments.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.GetRequest) (*environments.GetResponse, error)); ok {
@@ -98,6 +110,10 @@ func (_m *EnvironmentsServer) Get(_a0 context.Context, _a1 *environments.GetRequ
 func (_m *EnvironmentsServer) List(_a0 context.Context, _a1 *environments.ListRequest) (*environments.ListResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for List")
+	}
+
 	var r0 *environments.ListResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.ListRequest) (*environments.ListResponse, error)); ok {
@@ -124,6 +140,10 @@ func (_m *EnvironmentsServer) List(_a0 context.Context, _a1 *environments.ListRe
 func (_m *EnvironmentsServer) Migrate(_a0 context.Context, _a1 *environments.MigrateRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Migrate")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.MigrateRequest) (*emptypb.Empty, error)); ok {
@@ -150,6 +170,10 @@ func (_m *EnvironmentsServer) Migrate(_a0 context.Context, _a1 *environments.Mig
 func (_m *EnvironmentsServer) RemoveAlias(_a0 context.Context, _a1 *environments.RemoveAliasRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for RemoveAlias")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.RemoveAliasRequest) (*emptypb.Empty, error)); ok {
@@ -176,6 +200,10 @@ func (_m *EnvironmentsServer) RemoveAlias(_a0 context.Context, _a1 *environments
 func (_m *EnvironmentsServer) SetAlias(_a0 context.Context, _a1 *environments.SetAliasRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for SetAlias")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.SetAliasRequest) (*emptypb.Empty, error)); ok {
@@ -202,6 +230,10 @@ func (_m *EnvironmentsServer) SetAlias(_a0 context.Context, _a1 *environments.Se
 func (_m *EnvironmentsServer) Update(_a0 context.Context, _a1 *environments.UpdateRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *environments.UpdateRequest) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/ExtensionManagerServiceClient.go b/proto/mocks/ExtensionManagerServiceClient.go
new file mode 100644
index 00000000..dc809260
--- /dev/null
+++ b/proto/mocks/ExtensionManagerServiceClient.go
@@ -0,0 +1,179 @@
+// Code generated by mockery v2.46.3. DO NOT EDIT.
+
+package mocks
+
+import (
+	context "context"
+
+	extensions "git.perx.ru/perxis/perxis-go/proto/extensions"
+	grpc "google.golang.org/grpc"
+
+	mock "github.com/stretchr/testify/mock"
+)
+
+// ExtensionManagerServiceClient is an autogenerated mock type for the ExtensionManagerServiceClient type
+type ExtensionManagerServiceClient struct {
+	mock.Mock
+}
+
+// ListExtensions provides a mock function with given fields: ctx, in, opts
+func (_m *ExtensionManagerServiceClient) ListExtensions(ctx context.Context, in *extensions.ListExtensionsRequest, opts ...grpc.CallOption) (*extensions.ListExtensionsResponse, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for ListExtensions")
+	}
+
+	var r0 *extensions.ListExtensionsResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.ListExtensionsRequest, ...grpc.CallOption) (*extensions.ListExtensionsResponse, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.ListExtensionsRequest, ...grpc.CallOption) *extensions.ListExtensionsResponse); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*extensions.ListExtensionsResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.ListExtensionsRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// ListRegisteredExtensions provides a mock function with given fields: ctx, in, opts
+func (_m *ExtensionManagerServiceClient) ListRegisteredExtensions(ctx context.Context, in *extensions.ListRegisteredExtensionsRequest, opts ...grpc.CallOption) (*extensions.ListRegisteredExtensionsResponse, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for ListRegisteredExtensions")
+	}
+
+	var r0 *extensions.ListRegisteredExtensionsResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.ListRegisteredExtensionsRequest, ...grpc.CallOption) (*extensions.ListRegisteredExtensionsResponse, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.ListRegisteredExtensionsRequest, ...grpc.CallOption) *extensions.ListRegisteredExtensionsResponse); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*extensions.ListRegisteredExtensionsResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.ListRegisteredExtensionsRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// RegisterExtensions provides a mock function with given fields: ctx, in, opts
+func (_m *ExtensionManagerServiceClient) RegisterExtensions(ctx context.Context, in *extensions.RegisterExtensionsRequest, opts ...grpc.CallOption) (*extensions.RegisterExtensionsResponse, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for RegisterExtensions")
+	}
+
+	var r0 *extensions.RegisterExtensionsResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.RegisterExtensionsRequest, ...grpc.CallOption) (*extensions.RegisterExtensionsResponse, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.RegisterExtensionsRequest, ...grpc.CallOption) *extensions.RegisterExtensionsResponse); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*extensions.RegisterExtensionsResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.RegisterExtensionsRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// UnregisterExtensions provides a mock function with given fields: ctx, in, opts
+func (_m *ExtensionManagerServiceClient) UnregisterExtensions(ctx context.Context, in *extensions.UnregisterExtensionsRequest, opts ...grpc.CallOption) (*extensions.UnregisterExtensionsResponse, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for UnregisterExtensions")
+	}
+
+	var r0 *extensions.UnregisterExtensionsResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.UnregisterExtensionsRequest, ...grpc.CallOption) (*extensions.UnregisterExtensionsResponse, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.UnregisterExtensionsRequest, ...grpc.CallOption) *extensions.UnregisterExtensionsResponse); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*extensions.UnregisterExtensionsResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.UnregisterExtensionsRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// NewExtensionManagerServiceClient creates a new instance of ExtensionManagerServiceClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewExtensionManagerServiceClient(t interface {
+	mock.TestingT
+	Cleanup(func())
+}) *ExtensionManagerServiceClient {
+	mock := &ExtensionManagerServiceClient{}
+	mock.Mock.Test(t)
+
+	t.Cleanup(func() { mock.AssertExpectations(t) })
+
+	return mock
+}
diff --git a/proto/mocks/ExtensionManagerServiceServer.go b/proto/mocks/ExtensionManagerServiceServer.go
new file mode 100644
index 00000000..076608a0
--- /dev/null
+++ b/proto/mocks/ExtensionManagerServiceServer.go
@@ -0,0 +1,154 @@
+// Code generated by mockery v2.46.3. DO NOT EDIT.
+
+package mocks
+
+import (
+	context "context"
+
+	extensions "git.perx.ru/perxis/perxis-go/proto/extensions"
+	mock "github.com/stretchr/testify/mock"
+)
+
+// ExtensionManagerServiceServer is an autogenerated mock type for the ExtensionManagerServiceServer type
+type ExtensionManagerServiceServer struct {
+	mock.Mock
+}
+
+// ListExtensions provides a mock function with given fields: _a0, _a1
+func (_m *ExtensionManagerServiceServer) ListExtensions(_a0 context.Context, _a1 *extensions.ListExtensionsRequest) (*extensions.ListExtensionsResponse, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for ListExtensions")
+	}
+
+	var r0 *extensions.ListExtensionsResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.ListExtensionsRequest) (*extensions.ListExtensionsResponse, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.ListExtensionsRequest) *extensions.ListExtensionsResponse); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*extensions.ListExtensionsResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.ListExtensionsRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// ListRegisteredExtensions provides a mock function with given fields: _a0, _a1
+func (_m *ExtensionManagerServiceServer) ListRegisteredExtensions(_a0 context.Context, _a1 *extensions.ListRegisteredExtensionsRequest) (*extensions.ListRegisteredExtensionsResponse, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for ListRegisteredExtensions")
+	}
+
+	var r0 *extensions.ListRegisteredExtensionsResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.ListRegisteredExtensionsRequest) (*extensions.ListRegisteredExtensionsResponse, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.ListRegisteredExtensionsRequest) *extensions.ListRegisteredExtensionsResponse); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*extensions.ListRegisteredExtensionsResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.ListRegisteredExtensionsRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// RegisterExtensions provides a mock function with given fields: _a0, _a1
+func (_m *ExtensionManagerServiceServer) RegisterExtensions(_a0 context.Context, _a1 *extensions.RegisterExtensionsRequest) (*extensions.RegisterExtensionsResponse, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for RegisterExtensions")
+	}
+
+	var r0 *extensions.RegisterExtensionsResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.RegisterExtensionsRequest) (*extensions.RegisterExtensionsResponse, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.RegisterExtensionsRequest) *extensions.RegisterExtensionsResponse); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*extensions.RegisterExtensionsResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.RegisterExtensionsRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// UnregisterExtensions provides a mock function with given fields: _a0, _a1
+func (_m *ExtensionManagerServiceServer) UnregisterExtensions(_a0 context.Context, _a1 *extensions.UnregisterExtensionsRequest) (*extensions.UnregisterExtensionsResponse, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for UnregisterExtensions")
+	}
+
+	var r0 *extensions.UnregisterExtensionsResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.UnregisterExtensionsRequest) (*extensions.UnregisterExtensionsResponse, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.UnregisterExtensionsRequest) *extensions.UnregisterExtensionsResponse); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*extensions.UnregisterExtensionsResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.UnregisterExtensionsRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// mustEmbedUnimplementedExtensionManagerServiceServer provides a mock function with given fields:
+func (_m *ExtensionManagerServiceServer) mustEmbedUnimplementedExtensionManagerServiceServer() {
+	_m.Called()
+}
+
+// NewExtensionManagerServiceServer creates a new instance of ExtensionManagerServiceServer. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewExtensionManagerServiceServer(t interface {
+	mock.TestingT
+	Cleanup(func())
+}) *ExtensionManagerServiceServer {
+	mock := &ExtensionManagerServiceServer{}
+	mock.Mock.Test(t)
+
+	t.Cleanup(func() { mock.AssertExpectations(t) })
+
+	return mock
+}
diff --git a/proto/mocks/ExtensionServiceClient.go b/proto/mocks/ExtensionServiceClient.go
new file mode 100644
index 00000000..ee6fd433
--- /dev/null
+++ b/proto/mocks/ExtensionServiceClient.go
@@ -0,0 +1,182 @@
+// Code generated by mockery v2.46.3. DO NOT EDIT.
+
+package mocks
+
+import (
+	context "context"
+
+	common "git.perx.ru/perxis/perxis-go/proto/common"
+
+	extensions "git.perx.ru/perxis/perxis-go/proto/extensions"
+
+	grpc "google.golang.org/grpc"
+
+	mock "github.com/stretchr/testify/mock"
+)
+
+// ExtensionServiceClient is an autogenerated mock type for the ExtensionServiceClient type
+type ExtensionServiceClient struct {
+	mock.Mock
+}
+
+// Action provides a mock function with given fields: ctx, in, opts
+func (_m *ExtensionServiceClient) Action(ctx context.Context, in *extensions.ActionRequest, opts ...grpc.CallOption) (*extensions.ActionResponse, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Action")
+	}
+
+	var r0 *extensions.ActionResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.ActionRequest, ...grpc.CallOption) (*extensions.ActionResponse, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.ActionRequest, ...grpc.CallOption) *extensions.ActionResponse); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*extensions.ActionResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.ActionRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// Check provides a mock function with given fields: ctx, in, opts
+func (_m *ExtensionServiceClient) Check(ctx context.Context, in *extensions.CheckRequest, opts ...grpc.CallOption) (*common.Operation, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Check")
+	}
+
+	var r0 *common.Operation
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.CheckRequest, ...grpc.CallOption) (*common.Operation, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.CheckRequest, ...grpc.CallOption) *common.Operation); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*common.Operation)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.CheckRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// Install provides a mock function with given fields: ctx, in, opts
+func (_m *ExtensionServiceClient) Install(ctx context.Context, in *extensions.InstallRequest, opts ...grpc.CallOption) (*common.Operation, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Install")
+	}
+
+	var r0 *common.Operation
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.InstallRequest, ...grpc.CallOption) (*common.Operation, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.InstallRequest, ...grpc.CallOption) *common.Operation); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*common.Operation)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.InstallRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// Uninstall provides a mock function with given fields: ctx, in, opts
+func (_m *ExtensionServiceClient) Uninstall(ctx context.Context, in *extensions.UninstallRequest, opts ...grpc.CallOption) (*common.Operation, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Uninstall")
+	}
+
+	var r0 *common.Operation
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.UninstallRequest, ...grpc.CallOption) (*common.Operation, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.UninstallRequest, ...grpc.CallOption) *common.Operation); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*common.Operation)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.UninstallRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// NewExtensionServiceClient creates a new instance of ExtensionServiceClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewExtensionServiceClient(t interface {
+	mock.TestingT
+	Cleanup(func())
+}) *ExtensionServiceClient {
+	mock := &ExtensionServiceClient{}
+	mock.Mock.Test(t)
+
+	t.Cleanup(func() { mock.AssertExpectations(t) })
+
+	return mock
+}
diff --git a/proto/mocks/ExtensionServiceServer.go b/proto/mocks/ExtensionServiceServer.go
new file mode 100644
index 00000000..8012afb7
--- /dev/null
+++ b/proto/mocks/ExtensionServiceServer.go
@@ -0,0 +1,157 @@
+// Code generated by mockery v2.46.3. DO NOT EDIT.
+
+package mocks
+
+import (
+	context "context"
+
+	common "git.perx.ru/perxis/perxis-go/proto/common"
+
+	extensions "git.perx.ru/perxis/perxis-go/proto/extensions"
+
+	mock "github.com/stretchr/testify/mock"
+)
+
+// ExtensionServiceServer is an autogenerated mock type for the ExtensionServiceServer type
+type ExtensionServiceServer struct {
+	mock.Mock
+}
+
+// Action provides a mock function with given fields: _a0, _a1
+func (_m *ExtensionServiceServer) Action(_a0 context.Context, _a1 *extensions.ActionRequest) (*extensions.ActionResponse, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Action")
+	}
+
+	var r0 *extensions.ActionResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.ActionRequest) (*extensions.ActionResponse, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.ActionRequest) *extensions.ActionResponse); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*extensions.ActionResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.ActionRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// Check provides a mock function with given fields: _a0, _a1
+func (_m *ExtensionServiceServer) Check(_a0 context.Context, _a1 *extensions.CheckRequest) (*common.Operation, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Check")
+	}
+
+	var r0 *common.Operation
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.CheckRequest) (*common.Operation, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.CheckRequest) *common.Operation); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*common.Operation)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.CheckRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// Install provides a mock function with given fields: _a0, _a1
+func (_m *ExtensionServiceServer) Install(_a0 context.Context, _a1 *extensions.InstallRequest) (*common.Operation, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Install")
+	}
+
+	var r0 *common.Operation
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.InstallRequest) (*common.Operation, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.InstallRequest) *common.Operation); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*common.Operation)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.InstallRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// Uninstall provides a mock function with given fields: _a0, _a1
+func (_m *ExtensionServiceServer) Uninstall(_a0 context.Context, _a1 *extensions.UninstallRequest) (*common.Operation, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Uninstall")
+	}
+
+	var r0 *common.Operation
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.UninstallRequest) (*common.Operation, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *extensions.UninstallRequest) *common.Operation); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*common.Operation)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *extensions.UninstallRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// mustEmbedUnimplementedExtensionServiceServer provides a mock function with given fields:
+func (_m *ExtensionServiceServer) mustEmbedUnimplementedExtensionServiceServer() {
+	_m.Called()
+}
+
+// NewExtensionServiceServer creates a new instance of ExtensionServiceServer. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewExtensionServiceServer(t interface {
+	mock.TestingT
+	Cleanup(func())
+}) *ExtensionServiceServer {
+	mock := &ExtensionServiceServer{}
+	mock.Mock.Test(t)
+
+	t.Cleanup(func() { mock.AssertExpectations(t) })
+
+	return mock
+}
diff --git a/proto/mocks/FilesClient.go b/proto/mocks/FilesClient.go
index b935c558..2fb5c130 100644
--- a/proto/mocks/FilesClient.go
+++ b/proto/mocks/FilesClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -29,6 +29,10 @@ func (_m *FilesClient) AbortUpload(ctx context.Context, in *files.AbortUploadReq
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for AbortUpload")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.AbortUploadRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -62,6 +66,10 @@ func (_m *FilesClient) CompleteUpload(ctx context.Context, in *files.CompleteUpl
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for CompleteUpload")
+	}
+
 	var r0 *files.CompleteUploadResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.CompleteUploadRequest, ...grpc.CallOption) (*files.CompleteUploadResponse, error)); ok {
@@ -95,6 +103,10 @@ func (_m *FilesClient) DeleteFile(ctx context.Context, in *files.DeleteFileReque
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for DeleteFile")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.DeleteFileRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -128,6 +140,10 @@ func (_m *FilesClient) GetFile(ctx context.Context, in *files.GetFileRequest, op
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetFile")
+	}
+
 	var r0 *files.GetFileResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.GetFileRequest, ...grpc.CallOption) (*files.GetFileResponse, error)); ok {
@@ -161,6 +177,10 @@ func (_m *FilesClient) MoveUpload(ctx context.Context, in *files.MoveUploadReque
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for MoveUpload")
+	}
+
 	var r0 *files.MoveUploadResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.MoveUploadRequest, ...grpc.CallOption) (*files.MoveUploadResponse, error)); ok {
@@ -194,6 +214,10 @@ func (_m *FilesClient) StartUpload(ctx context.Context, in *files.StartUploadReq
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for StartUpload")
+	}
+
 	var r0 *files.StartUploadResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.StartUploadRequest, ...grpc.CallOption) (*files.StartUploadResponse, error)); ok {
@@ -227,6 +251,10 @@ func (_m *FilesClient) Upload(ctx context.Context, in *files.UploadRequest, opts
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Upload")
+	}
+
 	var r0 *files.UploadResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.UploadRequest, ...grpc.CallOption) (*files.UploadResponse, error)); ok {
diff --git a/proto/mocks/FilesServer.go b/proto/mocks/FilesServer.go
index 3040249d..eb497a0b 100644
--- a/proto/mocks/FilesServer.go
+++ b/proto/mocks/FilesServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -20,6 +20,10 @@ type FilesServer struct {
 func (_m *FilesServer) AbortUpload(_a0 context.Context, _a1 *files.AbortUploadRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for AbortUpload")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.AbortUploadRequest) (*emptypb.Empty, error)); ok {
@@ -46,6 +50,10 @@ func (_m *FilesServer) AbortUpload(_a0 context.Context, _a1 *files.AbortUploadRe
 func (_m *FilesServer) CompleteUpload(_a0 context.Context, _a1 *files.CompleteUploadRequest) (*files.CompleteUploadResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for CompleteUpload")
+	}
+
 	var r0 *files.CompleteUploadResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.CompleteUploadRequest) (*files.CompleteUploadResponse, error)); ok {
@@ -72,6 +80,10 @@ func (_m *FilesServer) CompleteUpload(_a0 context.Context, _a1 *files.CompleteUp
 func (_m *FilesServer) DeleteFile(_a0 context.Context, _a1 *files.DeleteFileRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for DeleteFile")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.DeleteFileRequest) (*emptypb.Empty, error)); ok {
@@ -98,6 +110,10 @@ func (_m *FilesServer) DeleteFile(_a0 context.Context, _a1 *files.DeleteFileRequ
 func (_m *FilesServer) GetFile(_a0 context.Context, _a1 *files.GetFileRequest) (*files.GetFileResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetFile")
+	}
+
 	var r0 *files.GetFileResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.GetFileRequest) (*files.GetFileResponse, error)); ok {
@@ -124,6 +140,10 @@ func (_m *FilesServer) GetFile(_a0 context.Context, _a1 *files.GetFileRequest) (
 func (_m *FilesServer) MoveUpload(_a0 context.Context, _a1 *files.MoveUploadRequest) (*files.MoveUploadResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for MoveUpload")
+	}
+
 	var r0 *files.MoveUploadResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.MoveUploadRequest) (*files.MoveUploadResponse, error)); ok {
@@ -150,6 +170,10 @@ func (_m *FilesServer) MoveUpload(_a0 context.Context, _a1 *files.MoveUploadRequ
 func (_m *FilesServer) StartUpload(_a0 context.Context, _a1 *files.StartUploadRequest) (*files.StartUploadResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for StartUpload")
+	}
+
 	var r0 *files.StartUploadResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.StartUploadRequest) (*files.StartUploadResponse, error)); ok {
@@ -176,6 +200,10 @@ func (_m *FilesServer) StartUpload(_a0 context.Context, _a1 *files.StartUploadRe
 func (_m *FilesServer) Upload(_a0 context.Context, _a1 *files.UploadRequest) (*files.UploadResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Upload")
+	}
+
 	var r0 *files.UploadResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *files.UploadRequest) (*files.UploadResponse, error)); ok {
diff --git a/proto/mocks/ImagesClient.go b/proto/mocks/ImagesClient.go
index f0d517b5..29b32fff 100644
--- a/proto/mocks/ImagesClient.go
+++ b/proto/mocks/ImagesClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -28,6 +28,10 @@ func (_m *ImagesClient) Get(ctx context.Context, in *images.GetRequest, opts ...
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *images.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *images.GetRequest, ...grpc.CallOption) (*images.GetResponse, error)); ok {
diff --git a/proto/mocks/ImagesServer.go b/proto/mocks/ImagesServer.go
index 48dc9e47..f27082d3 100644
--- a/proto/mocks/ImagesServer.go
+++ b/proto/mocks/ImagesServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -18,6 +18,10 @@ type ImagesServer struct {
 func (_m *ImagesServer) Get(_a0 context.Context, _a1 *images.GetRequest) (*images.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *images.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *images.GetRequest) (*images.GetResponse, error)); ok {
diff --git a/proto/mocks/InvitationsClient.go b/proto/mocks/InvitationsClient.go
index 442560a7..2e454fcd 100644
--- a/proto/mocks/InvitationsClient.go
+++ b/proto/mocks/InvitationsClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -29,6 +29,10 @@ func (_m *InvitationsClient) Accept(ctx context.Context, in *invitations.AcceptR
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Accept")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *invitations.AcceptRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -62,6 +66,10 @@ func (_m *InvitationsClient) Create(ctx context.Context, in *invitations.CreateR
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *invitations.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *invitations.CreateRequest, ...grpc.CallOption) (*invitations.CreateResponse, error)); ok {
@@ -95,6 +103,10 @@ func (_m *InvitationsClient) Delete(ctx context.Context, in *invitations.DeleteR
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *invitations.DeleteRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -128,6 +140,10 @@ func (_m *InvitationsClient) Find(ctx context.Context, in *invitations.FindReque
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Find")
+	}
+
 	var r0 *invitations.FindResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *invitations.FindRequest, ...grpc.CallOption) (*invitations.FindResponse, error)); ok {
@@ -161,6 +177,10 @@ func (_m *InvitationsClient) Get(ctx context.Context, in *invitations.GetRequest
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *invitations.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *invitations.GetRequest, ...grpc.CallOption) (*invitations.GetResponse, error)); ok {
diff --git a/proto/mocks/InvitationsServer.go b/proto/mocks/InvitationsServer.go
index d48c99cd..022113bf 100644
--- a/proto/mocks/InvitationsServer.go
+++ b/proto/mocks/InvitationsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -20,6 +20,10 @@ type InvitationsServer struct {
 func (_m *InvitationsServer) Accept(_a0 context.Context, _a1 *invitations.AcceptRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Accept")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *invitations.AcceptRequest) (*emptypb.Empty, error)); ok {
@@ -46,6 +50,10 @@ func (_m *InvitationsServer) Accept(_a0 context.Context, _a1 *invitations.Accept
 func (_m *InvitationsServer) Create(_a0 context.Context, _a1 *invitations.CreateRequest) (*invitations.CreateResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *invitations.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *invitations.CreateRequest) (*invitations.CreateResponse, error)); ok {
@@ -72,6 +80,10 @@ func (_m *InvitationsServer) Create(_a0 context.Context, _a1 *invitations.Create
 func (_m *InvitationsServer) Delete(_a0 context.Context, _a1 *invitations.DeleteRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *invitations.DeleteRequest) (*emptypb.Empty, error)); ok {
@@ -98,6 +110,10 @@ func (_m *InvitationsServer) Delete(_a0 context.Context, _a1 *invitations.Delete
 func (_m *InvitationsServer) Find(_a0 context.Context, _a1 *invitations.FindRequest) (*invitations.FindResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Find")
+	}
+
 	var r0 *invitations.FindResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *invitations.FindRequest) (*invitations.FindResponse, error)); ok {
@@ -124,6 +140,10 @@ func (_m *InvitationsServer) Find(_a0 context.Context, _a1 *invitations.FindRequ
 func (_m *InvitationsServer) Get(_a0 context.Context, _a1 *invitations.GetRequest) (*invitations.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *invitations.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *invitations.GetRequest) (*invitations.GetResponse, error)); ok {
diff --git a/proto/mocks/ItemsClient.go b/proto/mocks/ItemsClient.go
index bf9494d9..0bbd76f1 100644
--- a/proto/mocks/ItemsClient.go
+++ b/proto/mocks/ItemsClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -29,6 +29,10 @@ func (_m *ItemsClient) Aggregate(ctx context.Context, in *items.AggregateRequest
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Aggregate")
+	}
+
 	var r0 *items.AggregateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.AggregateRequest, ...grpc.CallOption) (*items.AggregateResponse, error)); ok {
@@ -62,6 +66,10 @@ func (_m *ItemsClient) AggregatePublished(ctx context.Context, in *items.Aggrega
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for AggregatePublished")
+	}
+
 	var r0 *items.AggregatePublishedResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.AggregatePublishedRequest, ...grpc.CallOption) (*items.AggregatePublishedResponse, error)); ok {
@@ -95,6 +103,10 @@ func (_m *ItemsClient) Archive(ctx context.Context, in *items.ArchiveRequest, op
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Archive")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.ArchiveRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -128,6 +140,10 @@ func (_m *ItemsClient) Create(ctx context.Context, in *items.CreateRequest, opts
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *items.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.CreateRequest, ...grpc.CallOption) (*items.CreateResponse, error)); ok {
@@ -161,6 +177,10 @@ func (_m *ItemsClient) Delete(ctx context.Context, in *items.DeleteRequest, opts
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.DeleteRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -194,6 +214,10 @@ func (_m *ItemsClient) Find(ctx context.Context, in *items.FindRequest, opts ...
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Find")
+	}
+
 	var r0 *items.FindResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.FindRequest, ...grpc.CallOption) (*items.FindResponse, error)); ok {
@@ -227,6 +251,10 @@ func (_m *ItemsClient) FindArchived(ctx context.Context, in *items.FindArchivedR
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for FindArchived")
+	}
+
 	var r0 *items.FindArchivedResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.FindArchivedRequest, ...grpc.CallOption) (*items.FindArchivedResponse, error)); ok {
@@ -260,6 +288,10 @@ func (_m *ItemsClient) FindPublished(ctx context.Context, in *items.FindPublishe
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for FindPublished")
+	}
+
 	var r0 *items.FindPublishedResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.FindPublishedRequest, ...grpc.CallOption) (*items.FindPublishedResponse, error)); ok {
@@ -293,6 +325,10 @@ func (_m *ItemsClient) Get(ctx context.Context, in *items.GetRequest, opts ...gr
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *items.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.GetRequest, ...grpc.CallOption) (*items.GetResponse, error)); ok {
@@ -326,6 +362,10 @@ func (_m *ItemsClient) GetPublished(ctx context.Context, in *items.GetPublishedR
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetPublished")
+	}
+
 	var r0 *items.GetPublishedResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.GetPublishedRequest, ...grpc.CallOption) (*items.GetPublishedResponse, error)); ok {
@@ -359,6 +399,10 @@ func (_m *ItemsClient) GetRevision(ctx context.Context, in *items.GetRevisionReq
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetRevision")
+	}
+
 	var r0 *items.GetRevisionResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.GetRevisionRequest, ...grpc.CallOption) (*items.GetRevisionResponse, error)); ok {
@@ -392,6 +436,10 @@ func (_m *ItemsClient) Introspect(ctx context.Context, in *items.IntrospectReque
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Introspect")
+	}
+
 	var r0 *items.IntrospectResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.IntrospectRequest, ...grpc.CallOption) (*items.IntrospectResponse, error)); ok {
@@ -425,6 +473,10 @@ func (_m *ItemsClient) ListRevisions(ctx context.Context, in *items.ListRevision
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListRevisions")
+	}
+
 	var r0 *items.ListRevisionsResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.ListRevisionsRequest, ...grpc.CallOption) (*items.ListRevisionsResponse, error)); ok {
@@ -458,6 +510,10 @@ func (_m *ItemsClient) Publish(ctx context.Context, in *items.PublishRequest, op
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Publish")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.PublishRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -491,6 +547,10 @@ func (_m *ItemsClient) Unarchive(ctx context.Context, in *items.UnarchiveRequest
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Unarchive")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.UnarchiveRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -524,6 +584,10 @@ func (_m *ItemsClient) Undelete(ctx context.Context, in *items.UndeleteRequest,
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Undelete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.UndeleteRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -557,6 +621,10 @@ func (_m *ItemsClient) Unpublish(ctx context.Context, in *items.UnpublishRequest
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Unpublish")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.UnpublishRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -590,6 +658,10 @@ func (_m *ItemsClient) Update(ctx context.Context, in *items.UpdateRequest, opts
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.UpdateRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/ItemsServer.go b/proto/mocks/ItemsServer.go
index 89cb4de5..84e55b69 100644
--- a/proto/mocks/ItemsServer.go
+++ b/proto/mocks/ItemsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -20,6 +20,10 @@ type ItemsServer struct {
 func (_m *ItemsServer) Aggregate(_a0 context.Context, _a1 *items.AggregateRequest) (*items.AggregateResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Aggregate")
+	}
+
 	var r0 *items.AggregateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.AggregateRequest) (*items.AggregateResponse, error)); ok {
@@ -46,6 +50,10 @@ func (_m *ItemsServer) Aggregate(_a0 context.Context, _a1 *items.AggregateReques
 func (_m *ItemsServer) AggregatePublished(_a0 context.Context, _a1 *items.AggregatePublishedRequest) (*items.AggregatePublishedResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for AggregatePublished")
+	}
+
 	var r0 *items.AggregatePublishedResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.AggregatePublishedRequest) (*items.AggregatePublishedResponse, error)); ok {
@@ -72,6 +80,10 @@ func (_m *ItemsServer) AggregatePublished(_a0 context.Context, _a1 *items.Aggreg
 func (_m *ItemsServer) Archive(_a0 context.Context, _a1 *items.ArchiveRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Archive")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.ArchiveRequest) (*emptypb.Empty, error)); ok {
@@ -98,6 +110,10 @@ func (_m *ItemsServer) Archive(_a0 context.Context, _a1 *items.ArchiveRequest) (
 func (_m *ItemsServer) Create(_a0 context.Context, _a1 *items.CreateRequest) (*items.CreateResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *items.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.CreateRequest) (*items.CreateResponse, error)); ok {
@@ -124,6 +140,10 @@ func (_m *ItemsServer) Create(_a0 context.Context, _a1 *items.CreateRequest) (*i
 func (_m *ItemsServer) Delete(_a0 context.Context, _a1 *items.DeleteRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.DeleteRequest) (*emptypb.Empty, error)); ok {
@@ -150,6 +170,10 @@ func (_m *ItemsServer) Delete(_a0 context.Context, _a1 *items.DeleteRequest) (*e
 func (_m *ItemsServer) Find(_a0 context.Context, _a1 *items.FindRequest) (*items.FindResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Find")
+	}
+
 	var r0 *items.FindResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.FindRequest) (*items.FindResponse, error)); ok {
@@ -176,6 +200,10 @@ func (_m *ItemsServer) Find(_a0 context.Context, _a1 *items.FindRequest) (*items
 func (_m *ItemsServer) FindArchived(_a0 context.Context, _a1 *items.FindArchivedRequest) (*items.FindArchivedResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for FindArchived")
+	}
+
 	var r0 *items.FindArchivedResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.FindArchivedRequest) (*items.FindArchivedResponse, error)); ok {
@@ -202,6 +230,10 @@ func (_m *ItemsServer) FindArchived(_a0 context.Context, _a1 *items.FindArchived
 func (_m *ItemsServer) FindPublished(_a0 context.Context, _a1 *items.FindPublishedRequest) (*items.FindPublishedResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for FindPublished")
+	}
+
 	var r0 *items.FindPublishedResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.FindPublishedRequest) (*items.FindPublishedResponse, error)); ok {
@@ -228,6 +260,10 @@ func (_m *ItemsServer) FindPublished(_a0 context.Context, _a1 *items.FindPublish
 func (_m *ItemsServer) Get(_a0 context.Context, _a1 *items.GetRequest) (*items.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *items.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.GetRequest) (*items.GetResponse, error)); ok {
@@ -254,6 +290,10 @@ func (_m *ItemsServer) Get(_a0 context.Context, _a1 *items.GetRequest) (*items.G
 func (_m *ItemsServer) GetPublished(_a0 context.Context, _a1 *items.GetPublishedRequest) (*items.GetPublishedResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetPublished")
+	}
+
 	var r0 *items.GetPublishedResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.GetPublishedRequest) (*items.GetPublishedResponse, error)); ok {
@@ -280,6 +320,10 @@ func (_m *ItemsServer) GetPublished(_a0 context.Context, _a1 *items.GetPublished
 func (_m *ItemsServer) GetRevision(_a0 context.Context, _a1 *items.GetRevisionRequest) (*items.GetRevisionResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetRevision")
+	}
+
 	var r0 *items.GetRevisionResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.GetRevisionRequest) (*items.GetRevisionResponse, error)); ok {
@@ -306,6 +350,10 @@ func (_m *ItemsServer) GetRevision(_a0 context.Context, _a1 *items.GetRevisionRe
 func (_m *ItemsServer) Introspect(_a0 context.Context, _a1 *items.IntrospectRequest) (*items.IntrospectResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Introspect")
+	}
+
 	var r0 *items.IntrospectResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.IntrospectRequest) (*items.IntrospectResponse, error)); ok {
@@ -332,6 +380,10 @@ func (_m *ItemsServer) Introspect(_a0 context.Context, _a1 *items.IntrospectRequ
 func (_m *ItemsServer) ListRevisions(_a0 context.Context, _a1 *items.ListRevisionsRequest) (*items.ListRevisionsResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListRevisions")
+	}
+
 	var r0 *items.ListRevisionsResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.ListRevisionsRequest) (*items.ListRevisionsResponse, error)); ok {
@@ -358,6 +410,10 @@ func (_m *ItemsServer) ListRevisions(_a0 context.Context, _a1 *items.ListRevisio
 func (_m *ItemsServer) Publish(_a0 context.Context, _a1 *items.PublishRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Publish")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.PublishRequest) (*emptypb.Empty, error)); ok {
@@ -384,6 +440,10 @@ func (_m *ItemsServer) Publish(_a0 context.Context, _a1 *items.PublishRequest) (
 func (_m *ItemsServer) Unarchive(_a0 context.Context, _a1 *items.UnarchiveRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Unarchive")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.UnarchiveRequest) (*emptypb.Empty, error)); ok {
@@ -410,6 +470,10 @@ func (_m *ItemsServer) Unarchive(_a0 context.Context, _a1 *items.UnarchiveReques
 func (_m *ItemsServer) Undelete(_a0 context.Context, _a1 *items.UndeleteRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Undelete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.UndeleteRequest) (*emptypb.Empty, error)); ok {
@@ -436,6 +500,10 @@ func (_m *ItemsServer) Undelete(_a0 context.Context, _a1 *items.UndeleteRequest)
 func (_m *ItemsServer) Unpublish(_a0 context.Context, _a1 *items.UnpublishRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Unpublish")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.UnpublishRequest) (*emptypb.Empty, error)); ok {
@@ -462,6 +530,10 @@ func (_m *ItemsServer) Unpublish(_a0 context.Context, _a1 *items.UnpublishReques
 func (_m *ItemsServer) Update(_a0 context.Context, _a1 *items.UpdateRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *items.UpdateRequest) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/LocalesClient.go b/proto/mocks/LocalesClient.go
index 8ed98fd0..80939c54 100644
--- a/proto/mocks/LocalesClient.go
+++ b/proto/mocks/LocalesClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -29,6 +29,10 @@ func (_m *LocalesClient) Create(ctx context.Context, in *locales.CreateRequest,
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *locales.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *locales.CreateRequest, ...grpc.CallOption) (*locales.CreateResponse, error)); ok {
@@ -62,6 +66,10 @@ func (_m *LocalesClient) Delete(ctx context.Context, in *locales.DeleteRequest,
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *locales.DeleteRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -95,6 +103,10 @@ func (_m *LocalesClient) List(ctx context.Context, in *locales.ListRequest, opts
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for List")
+	}
+
 	var r0 *locales.ListResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *locales.ListRequest, ...grpc.CallOption) (*locales.ListResponse, error)); ok {
@@ -117,6 +129,43 @@ func (_m *LocalesClient) List(ctx context.Context, in *locales.ListRequest, opts
 	return r0, r1
 }
 
+// Update provides a mock function with given fields: ctx, in, opts
+func (_m *LocalesClient) Update(ctx context.Context, in *locales.UpdateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
+	var r0 *emptypb.Empty
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *locales.UpdateRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *locales.UpdateRequest, ...grpc.CallOption) *emptypb.Empty); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*emptypb.Empty)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *locales.UpdateRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
 // NewLocalesClient creates a new instance of LocalesClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
 // The first argument is typically a *testing.T value.
 func NewLocalesClient(t interface {
diff --git a/proto/mocks/LocalesServer.go b/proto/mocks/LocalesServer.go
index 8afc56d2..e17d580f 100644
--- a/proto/mocks/LocalesServer.go
+++ b/proto/mocks/LocalesServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -20,6 +20,10 @@ type LocalesServer struct {
 func (_m *LocalesServer) Create(_a0 context.Context, _a1 *locales.CreateRequest) (*locales.CreateResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *locales.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *locales.CreateRequest) (*locales.CreateResponse, error)); ok {
@@ -46,6 +50,10 @@ func (_m *LocalesServer) Create(_a0 context.Context, _a1 *locales.CreateRequest)
 func (_m *LocalesServer) Delete(_a0 context.Context, _a1 *locales.DeleteRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *locales.DeleteRequest) (*emptypb.Empty, error)); ok {
@@ -72,6 +80,10 @@ func (_m *LocalesServer) Delete(_a0 context.Context, _a1 *locales.DeleteRequest)
 func (_m *LocalesServer) List(_a0 context.Context, _a1 *locales.ListRequest) (*locales.ListResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for List")
+	}
+
 	var r0 *locales.ListResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *locales.ListRequest) (*locales.ListResponse, error)); ok {
@@ -94,6 +106,36 @@ func (_m *LocalesServer) List(_a0 context.Context, _a1 *locales.ListRequest) (*l
 	return r0, r1
 }
 
+// Update provides a mock function with given fields: _a0, _a1
+func (_m *LocalesServer) Update(_a0 context.Context, _a1 *locales.UpdateRequest) (*emptypb.Empty, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
+	var r0 *emptypb.Empty
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *locales.UpdateRequest) (*emptypb.Empty, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *locales.UpdateRequest) *emptypb.Empty); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*emptypb.Empty)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *locales.UpdateRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
 // mustEmbedUnimplementedLocalesServer provides a mock function with given fields:
 func (_m *LocalesServer) mustEmbedUnimplementedLocalesServer() {
 	_m.Called()
diff --git a/proto/mocks/LogsServiceClient.go b/proto/mocks/LogsServiceClient.go
new file mode 100644
index 00000000..9c8f0b17
--- /dev/null
+++ b/proto/mocks/LogsServiceClient.go
@@ -0,0 +1,143 @@
+// Code generated by mockery v2.46.3. DO NOT EDIT.
+
+package mocks
+
+import (
+	context "context"
+
+	grpc "google.golang.org/grpc"
+
+	logs "git.perx.ru/perxis/perxis-go/proto/logs"
+
+	mock "github.com/stretchr/testify/mock"
+)
+
+// LogsServiceClient is an autogenerated mock type for the LogsServiceClient type
+type LogsServiceClient struct {
+	mock.Mock
+}
+
+// Delete provides a mock function with given fields: ctx, in, opts
+func (_m *LogsServiceClient) Delete(ctx context.Context, in *logs.DeleteRequest, opts ...grpc.CallOption) (*logs.DeleteResponse, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
+	var r0 *logs.DeleteResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *logs.DeleteRequest, ...grpc.CallOption) (*logs.DeleteResponse, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *logs.DeleteRequest, ...grpc.CallOption) *logs.DeleteResponse); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*logs.DeleteResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *logs.DeleteRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// Find provides a mock function with given fields: ctx, in, opts
+func (_m *LogsServiceClient) Find(ctx context.Context, in *logs.FindRequest, opts ...grpc.CallOption) (*logs.FindResponse, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Find")
+	}
+
+	var r0 *logs.FindResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *logs.FindRequest, ...grpc.CallOption) (*logs.FindResponse, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *logs.FindRequest, ...grpc.CallOption) *logs.FindResponse); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*logs.FindResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *logs.FindRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// Log provides a mock function with given fields: ctx, in, opts
+func (_m *LogsServiceClient) Log(ctx context.Context, in *logs.LogRequest, opts ...grpc.CallOption) (*logs.LogResponse, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Log")
+	}
+
+	var r0 *logs.LogResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *logs.LogRequest, ...grpc.CallOption) (*logs.LogResponse, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *logs.LogRequest, ...grpc.CallOption) *logs.LogResponse); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*logs.LogResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *logs.LogRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// NewLogsServiceClient creates a new instance of LogsServiceClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewLogsServiceClient(t interface {
+	mock.TestingT
+	Cleanup(func())
+}) *LogsServiceClient {
+	mock := &LogsServiceClient{}
+	mock.Mock.Test(t)
+
+	t.Cleanup(func() { mock.AssertExpectations(t) })
+
+	return mock
+}
diff --git a/proto/mocks/LogsServiceServer.go b/proto/mocks/LogsServiceServer.go
new file mode 100644
index 00000000..ccdc028f
--- /dev/null
+++ b/proto/mocks/LogsServiceServer.go
@@ -0,0 +1,124 @@
+// Code generated by mockery v2.46.3. DO NOT EDIT.
+
+package mocks
+
+import (
+	context "context"
+
+	logs "git.perx.ru/perxis/perxis-go/proto/logs"
+	mock "github.com/stretchr/testify/mock"
+)
+
+// LogsServiceServer is an autogenerated mock type for the LogsServiceServer type
+type LogsServiceServer struct {
+	mock.Mock
+}
+
+// Delete provides a mock function with given fields: _a0, _a1
+func (_m *LogsServiceServer) Delete(_a0 context.Context, _a1 *logs.DeleteRequest) (*logs.DeleteResponse, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
+	var r0 *logs.DeleteResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *logs.DeleteRequest) (*logs.DeleteResponse, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *logs.DeleteRequest) *logs.DeleteResponse); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*logs.DeleteResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *logs.DeleteRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// Find provides a mock function with given fields: _a0, _a1
+func (_m *LogsServiceServer) Find(_a0 context.Context, _a1 *logs.FindRequest) (*logs.FindResponse, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Find")
+	}
+
+	var r0 *logs.FindResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *logs.FindRequest) (*logs.FindResponse, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *logs.FindRequest) *logs.FindResponse); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*logs.FindResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *logs.FindRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// Log provides a mock function with given fields: _a0, _a1
+func (_m *LogsServiceServer) Log(_a0 context.Context, _a1 *logs.LogRequest) (*logs.LogResponse, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Log")
+	}
+
+	var r0 *logs.LogResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *logs.LogRequest) (*logs.LogResponse, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *logs.LogRequest) *logs.LogResponse); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*logs.LogResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *logs.LogRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
+// mustEmbedUnimplementedLogsServiceServer provides a mock function with given fields:
+func (_m *LogsServiceServer) mustEmbedUnimplementedLogsServiceServer() {
+	_m.Called()
+}
+
+// NewLogsServiceServer creates a new instance of LogsServiceServer. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewLogsServiceServer(t interface {
+	mock.TestingT
+	Cleanup(func())
+}) *LogsServiceServer {
+	mock := &LogsServiceServer{}
+	mock.Mock.Test(t)
+
+	t.Cleanup(func() { mock.AssertExpectations(t) })
+
+	return mock
+}
diff --git a/proto/mocks/MembersClient.go b/proto/mocks/MembersClient.go
index 0e24c1c4..598d4a36 100644
--- a/proto/mocks/MembersClient.go
+++ b/proto/mocks/MembersClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -29,6 +29,10 @@ func (_m *MembersClient) Get(ctx context.Context, in *members.GetRequest, opts .
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *members.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *members.GetRequest, ...grpc.CallOption) (*members.GetResponse, error)); ok {
@@ -62,6 +66,10 @@ func (_m *MembersClient) ListMembers(ctx context.Context, in *members.ListMember
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListMembers")
+	}
+
 	var r0 *members.ListMembersResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *members.ListMembersRequest, ...grpc.CallOption) (*members.ListMembersResponse, error)); ok {
@@ -95,6 +103,10 @@ func (_m *MembersClient) ListOrganizations(ctx context.Context, in *members.List
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListOrganizations")
+	}
+
 	var r0 *members.ListOrganizationsResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *members.ListOrganizationsRequest, ...grpc.CallOption) (*members.ListOrganizationsResponse, error)); ok {
@@ -128,6 +140,10 @@ func (_m *MembersClient) Remove(ctx context.Context, in *members.RemoveRequest,
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Remove")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *members.RemoveRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -161,6 +177,10 @@ func (_m *MembersClient) Set(ctx context.Context, in *members.SetRequest, opts .
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Set")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *members.SetRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/MembersServer.go b/proto/mocks/MembersServer.go
index 6adaf990..4147c6eb 100644
--- a/proto/mocks/MembersServer.go
+++ b/proto/mocks/MembersServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -20,6 +20,10 @@ type MembersServer struct {
 func (_m *MembersServer) Get(_a0 context.Context, _a1 *members.GetRequest) (*members.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *members.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *members.GetRequest) (*members.GetResponse, error)); ok {
@@ -46,6 +50,10 @@ func (_m *MembersServer) Get(_a0 context.Context, _a1 *members.GetRequest) (*mem
 func (_m *MembersServer) ListMembers(_a0 context.Context, _a1 *members.ListMembersRequest) (*members.ListMembersResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListMembers")
+	}
+
 	var r0 *members.ListMembersResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *members.ListMembersRequest) (*members.ListMembersResponse, error)); ok {
@@ -72,6 +80,10 @@ func (_m *MembersServer) ListMembers(_a0 context.Context, _a1 *members.ListMembe
 func (_m *MembersServer) ListOrganizations(_a0 context.Context, _a1 *members.ListOrganizationsRequest) (*members.ListOrganizationsResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListOrganizations")
+	}
+
 	var r0 *members.ListOrganizationsResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *members.ListOrganizationsRequest) (*members.ListOrganizationsResponse, error)); ok {
@@ -98,6 +110,10 @@ func (_m *MembersServer) ListOrganizations(_a0 context.Context, _a1 *members.Lis
 func (_m *MembersServer) Remove(_a0 context.Context, _a1 *members.RemoveRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Remove")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *members.RemoveRequest) (*emptypb.Empty, error)); ok {
@@ -124,6 +140,10 @@ func (_m *MembersServer) Remove(_a0 context.Context, _a1 *members.RemoveRequest)
 func (_m *MembersServer) Set(_a0 context.Context, _a1 *members.SetRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Set")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *members.SetRequest) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/ObserverClient.go b/proto/mocks/ObserverClient.go
index 7e546351..b49dff3a 100644
--- a/proto/mocks/ObserverClient.go
+++ b/proto/mocks/ObserverClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -28,6 +28,10 @@ func (_m *ObserverClient) OnCollaboratorSet(ctx context.Context, in *members.OnC
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for OnCollaboratorSet")
+	}
+
 	var r0 *members.OnCollaboratorSetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *members.OnCollaboratorSetRequest, ...grpc.CallOption) (*members.OnCollaboratorSetResponse, error)); ok {
diff --git a/proto/mocks/ObserverServer.go b/proto/mocks/ObserverServer.go
index 87cba94c..dc06e09f 100644
--- a/proto/mocks/ObserverServer.go
+++ b/proto/mocks/ObserverServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -18,6 +18,10 @@ type ObserverServer struct {
 func (_m *ObserverServer) OnCollaboratorSet(_a0 context.Context, _a1 *members.OnCollaboratorSetRequest) (*members.OnCollaboratorSetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for OnCollaboratorSet")
+	}
+
 	var r0 *members.OnCollaboratorSetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *members.OnCollaboratorSetRequest) (*members.OnCollaboratorSetResponse, error)); ok {
diff --git a/proto/mocks/OperationServiceClient.go b/proto/mocks/OperationServiceClient.go
index 41182370..111b7a57 100644
--- a/proto/mocks/OperationServiceClient.go
+++ b/proto/mocks/OperationServiceClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -28,6 +28,10 @@ func (_m *OperationServiceClient) Cancel(ctx context.Context, in *common.CancelO
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Cancel")
+	}
+
 	var r0 *common.Operation
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *common.CancelOperationRequest, ...grpc.CallOption) (*common.Operation, error)); ok {
@@ -61,6 +65,10 @@ func (_m *OperationServiceClient) Get(ctx context.Context, in *common.GetOperati
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *common.Operation
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *common.GetOperationRequest, ...grpc.CallOption) (*common.Operation, error)); ok {
diff --git a/proto/mocks/OperationServiceServer.go b/proto/mocks/OperationServiceServer.go
index 661a205e..0eddf943 100644
--- a/proto/mocks/OperationServiceServer.go
+++ b/proto/mocks/OperationServiceServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -19,6 +19,10 @@ type OperationServiceServer struct {
 func (_m *OperationServiceServer) Cancel(_a0 context.Context, _a1 *common.CancelOperationRequest) (*common.Operation, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Cancel")
+	}
+
 	var r0 *common.Operation
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *common.CancelOperationRequest) (*common.Operation, error)); ok {
@@ -45,6 +49,10 @@ func (_m *OperationServiceServer) Cancel(_a0 context.Context, _a1 *common.Cancel
 func (_m *OperationServiceServer) Get(_a0 context.Context, _a1 *common.GetOperationRequest) (*common.Operation, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *common.Operation
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *common.GetOperationRequest) (*common.Operation, error)); ok {
diff --git a/proto/mocks/OrganizationsClient.go b/proto/mocks/OrganizationsClient.go
index 972d316d..5dd6070c 100644
--- a/proto/mocks/OrganizationsClient.go
+++ b/proto/mocks/OrganizationsClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -29,6 +29,10 @@ func (_m *OrganizationsClient) Create(ctx context.Context, in *organizations.Cre
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *organizations.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *organizations.CreateRequest, ...grpc.CallOption) (*organizations.CreateResponse, error)); ok {
@@ -62,6 +66,10 @@ func (_m *OrganizationsClient) Delete(ctx context.Context, in *organizations.Del
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *organizations.DeleteRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -95,6 +103,10 @@ func (_m *OrganizationsClient) Find(ctx context.Context, in *organizations.FindR
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Find")
+	}
+
 	var r0 *organizations.FindResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *organizations.FindRequest, ...grpc.CallOption) (*organizations.FindResponse, error)); ok {
@@ -128,6 +140,10 @@ func (_m *OrganizationsClient) Get(ctx context.Context, in *organizations.GetReq
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *organizations.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *organizations.GetRequest, ...grpc.CallOption) (*organizations.GetResponse, error)); ok {
@@ -161,6 +177,10 @@ func (_m *OrganizationsClient) Update(ctx context.Context, in *organizations.Upd
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *organizations.UpdateRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/OrganizationsServer.go b/proto/mocks/OrganizationsServer.go
index aa3ef3ad..9945287a 100644
--- a/proto/mocks/OrganizationsServer.go
+++ b/proto/mocks/OrganizationsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -20,6 +20,10 @@ type OrganizationsServer struct {
 func (_m *OrganizationsServer) Create(_a0 context.Context, _a1 *organizations.CreateRequest) (*organizations.CreateResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *organizations.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *organizations.CreateRequest) (*organizations.CreateResponse, error)); ok {
@@ -46,6 +50,10 @@ func (_m *OrganizationsServer) Create(_a0 context.Context, _a1 *organizations.Cr
 func (_m *OrganizationsServer) Delete(_a0 context.Context, _a1 *organizations.DeleteRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *organizations.DeleteRequest) (*emptypb.Empty, error)); ok {
@@ -72,6 +80,10 @@ func (_m *OrganizationsServer) Delete(_a0 context.Context, _a1 *organizations.De
 func (_m *OrganizationsServer) Find(_a0 context.Context, _a1 *organizations.FindRequest) (*organizations.FindResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Find")
+	}
+
 	var r0 *organizations.FindResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *organizations.FindRequest) (*organizations.FindResponse, error)); ok {
@@ -98,6 +110,10 @@ func (_m *OrganizationsServer) Find(_a0 context.Context, _a1 *organizations.Find
 func (_m *OrganizationsServer) Get(_a0 context.Context, _a1 *organizations.GetRequest) (*organizations.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *organizations.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *organizations.GetRequest) (*organizations.GetResponse, error)); ok {
@@ -124,6 +140,10 @@ func (_m *OrganizationsServer) Get(_a0 context.Context, _a1 *organizations.GetRe
 func (_m *OrganizationsServer) Update(_a0 context.Context, _a1 *organizations.UpdateRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *organizations.UpdateRequest) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/ReferencesClient.go b/proto/mocks/ReferencesClient.go
index cc9a4344..40a7484a 100644
--- a/proto/mocks/ReferencesClient.go
+++ b/proto/mocks/ReferencesClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -28,6 +28,10 @@ func (_m *ReferencesClient) Get(ctx context.Context, in *references.GetRequest,
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *references.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *references.GetRequest, ...grpc.CallOption) (*references.GetResponse, error)); ok {
@@ -61,6 +65,10 @@ func (_m *ReferencesClient) Publish(ctx context.Context, in *references.PublishR
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Publish")
+	}
+
 	var r0 *references.PublishResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *references.PublishRequest, ...grpc.CallOption) (*references.PublishResponse, error)); ok {
diff --git a/proto/mocks/ReferencesServer.go b/proto/mocks/ReferencesServer.go
index 14555790..bd62d563 100644
--- a/proto/mocks/ReferencesServer.go
+++ b/proto/mocks/ReferencesServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -18,6 +18,10 @@ type ReferencesServer struct {
 func (_m *ReferencesServer) Get(_a0 context.Context, _a1 *references.GetRequest) (*references.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *references.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *references.GetRequest) (*references.GetResponse, error)); ok {
@@ -44,6 +48,10 @@ func (_m *ReferencesServer) Get(_a0 context.Context, _a1 *references.GetRequest)
 func (_m *ReferencesServer) Publish(_a0 context.Context, _a1 *references.PublishRequest) (*references.PublishResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Publish")
+	}
+
 	var r0 *references.PublishResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *references.PublishRequest) (*references.PublishResponse, error)); ok {
diff --git a/proto/mocks/RolesClient.go b/proto/mocks/RolesClient.go
index a70da148..12baf298 100644
--- a/proto/mocks/RolesClient.go
+++ b/proto/mocks/RolesClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -29,6 +29,10 @@ func (_m *RolesClient) Create(ctx context.Context, in *roles.CreateRequest, opts
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *roles.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *roles.CreateRequest, ...grpc.CallOption) (*roles.CreateResponse, error)); ok {
@@ -62,6 +66,10 @@ func (_m *RolesClient) Delete(ctx context.Context, in *roles.DeleteRequest, opts
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *roles.DeleteRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -95,6 +103,10 @@ func (_m *RolesClient) Get(ctx context.Context, in *roles.GetRequest, opts ...gr
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *roles.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *roles.GetRequest, ...grpc.CallOption) (*roles.GetResponse, error)); ok {
@@ -128,6 +140,10 @@ func (_m *RolesClient) List(ctx context.Context, in *roles.ListRequest, opts ...
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for List")
+	}
+
 	var r0 *roles.ListResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *roles.ListRequest, ...grpc.CallOption) (*roles.ListResponse, error)); ok {
@@ -161,6 +177,10 @@ func (_m *RolesClient) Update(ctx context.Context, in *roles.UpdateRequest, opts
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *roles.UpdateRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/RolesServer.go b/proto/mocks/RolesServer.go
index 7a911986..b850b3ca 100644
--- a/proto/mocks/RolesServer.go
+++ b/proto/mocks/RolesServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -20,6 +20,10 @@ type RolesServer struct {
 func (_m *RolesServer) Create(_a0 context.Context, _a1 *roles.CreateRequest) (*roles.CreateResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *roles.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *roles.CreateRequest) (*roles.CreateResponse, error)); ok {
@@ -46,6 +50,10 @@ func (_m *RolesServer) Create(_a0 context.Context, _a1 *roles.CreateRequest) (*r
 func (_m *RolesServer) Delete(_a0 context.Context, _a1 *roles.DeleteRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *roles.DeleteRequest) (*emptypb.Empty, error)); ok {
@@ -72,6 +80,10 @@ func (_m *RolesServer) Delete(_a0 context.Context, _a1 *roles.DeleteRequest) (*e
 func (_m *RolesServer) Get(_a0 context.Context, _a1 *roles.GetRequest) (*roles.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *roles.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *roles.GetRequest) (*roles.GetResponse, error)); ok {
@@ -98,6 +110,10 @@ func (_m *RolesServer) Get(_a0 context.Context, _a1 *roles.GetRequest) (*roles.G
 func (_m *RolesServer) List(_a0 context.Context, _a1 *roles.ListRequest) (*roles.ListResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for List")
+	}
+
 	var r0 *roles.ListResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *roles.ListRequest) (*roles.ListResponse, error)); ok {
@@ -124,6 +140,10 @@ func (_m *RolesServer) List(_a0 context.Context, _a1 *roles.ListRequest) (*roles
 func (_m *RolesServer) Update(_a0 context.Context, _a1 *roles.UpdateRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *roles.UpdateRequest) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/SpacesClient.go b/proto/mocks/SpacesClient.go
index c73344df..3f173e52 100644
--- a/proto/mocks/SpacesClient.go
+++ b/proto/mocks/SpacesClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -29,6 +29,10 @@ func (_m *SpacesClient) AbortTransfer(ctx context.Context, in *spaces.AbortTrans
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for AbortTransfer")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.AbortTransferRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -62,6 +66,10 @@ func (_m *SpacesClient) Create(ctx context.Context, in *spaces.CreateRequest, op
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *spaces.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.CreateRequest, ...grpc.CallOption) (*spaces.CreateResponse, error)); ok {
@@ -95,6 +103,10 @@ func (_m *SpacesClient) Delete(ctx context.Context, in *spaces.DeleteRequest, op
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.DeleteRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -117,6 +129,43 @@ func (_m *SpacesClient) Delete(ctx context.Context, in *spaces.DeleteRequest, op
 	return r0, r1
 }
 
+// Find provides a mock function with given fields: ctx, in, opts
+func (_m *SpacesClient) Find(ctx context.Context, in *spaces.FindRequest, opts ...grpc.CallOption) (*spaces.FindResponse, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Find")
+	}
+
+	var r0 *spaces.FindResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *spaces.FindRequest, ...grpc.CallOption) (*spaces.FindResponse, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *spaces.FindRequest, ...grpc.CallOption) *spaces.FindResponse); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*spaces.FindResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *spaces.FindRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
 // Get provides a mock function with given fields: ctx, in, opts
 func (_m *SpacesClient) Get(ctx context.Context, in *spaces.GetRequest, opts ...grpc.CallOption) (*spaces.GetResponse, error) {
 	_va := make([]interface{}, len(opts))
@@ -128,6 +177,10 @@ func (_m *SpacesClient) Get(ctx context.Context, in *spaces.GetRequest, opts ...
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *spaces.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.GetRequest, ...grpc.CallOption) (*spaces.GetResponse, error)); ok {
@@ -161,6 +214,10 @@ func (_m *SpacesClient) List(ctx context.Context, in *spaces.ListRequest, opts .
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for List")
+	}
+
 	var r0 *spaces.ListResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.ListRequest, ...grpc.CallOption) (*spaces.ListResponse, error)); ok {
@@ -194,6 +251,10 @@ func (_m *SpacesClient) ListTransfers(ctx context.Context, in *spaces.ListTransf
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListTransfers")
+	}
+
 	var r0 *spaces.ListTransfersResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.ListTransfersRequest, ...grpc.CallOption) (*spaces.ListTransfersResponse, error)); ok {
@@ -227,6 +288,10 @@ func (_m *SpacesClient) Move(ctx context.Context, in *spaces.MoveRequest, opts .
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Move")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.MoveRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -260,6 +325,10 @@ func (_m *SpacesClient) Transfer(ctx context.Context, in *spaces.TransferRequest
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Transfer")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.TransferRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -293,6 +362,10 @@ func (_m *SpacesClient) Update(ctx context.Context, in *spaces.UpdateRequest, op
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.UpdateRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -326,6 +399,10 @@ func (_m *SpacesClient) UpdateConfig(ctx context.Context, in *spaces.UpdateConfi
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for UpdateConfig")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.UpdateConfigRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/SpacesServer.go b/proto/mocks/SpacesServer.go
index 410c1651..7385092b 100644
--- a/proto/mocks/SpacesServer.go
+++ b/proto/mocks/SpacesServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -20,6 +20,10 @@ type SpacesServer struct {
 func (_m *SpacesServer) AbortTransfer(_a0 context.Context, _a1 *spaces.AbortTransferRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for AbortTransfer")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.AbortTransferRequest) (*emptypb.Empty, error)); ok {
@@ -46,6 +50,10 @@ func (_m *SpacesServer) AbortTransfer(_a0 context.Context, _a1 *spaces.AbortTran
 func (_m *SpacesServer) Create(_a0 context.Context, _a1 *spaces.CreateRequest) (*spaces.CreateResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *spaces.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.CreateRequest) (*spaces.CreateResponse, error)); ok {
@@ -72,6 +80,10 @@ func (_m *SpacesServer) Create(_a0 context.Context, _a1 *spaces.CreateRequest) (
 func (_m *SpacesServer) Delete(_a0 context.Context, _a1 *spaces.DeleteRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.DeleteRequest) (*emptypb.Empty, error)); ok {
@@ -94,10 +106,44 @@ func (_m *SpacesServer) Delete(_a0 context.Context, _a1 *spaces.DeleteRequest) (
 	return r0, r1
 }
 
+// Find provides a mock function with given fields: _a0, _a1
+func (_m *SpacesServer) Find(_a0 context.Context, _a1 *spaces.FindRequest) (*spaces.FindResponse, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Find")
+	}
+
+	var r0 *spaces.FindResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *spaces.FindRequest) (*spaces.FindResponse, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *spaces.FindRequest) *spaces.FindResponse); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*spaces.FindResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *spaces.FindRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
 // Get provides a mock function with given fields: _a0, _a1
 func (_m *SpacesServer) Get(_a0 context.Context, _a1 *spaces.GetRequest) (*spaces.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *spaces.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.GetRequest) (*spaces.GetResponse, error)); ok {
@@ -124,6 +170,10 @@ func (_m *SpacesServer) Get(_a0 context.Context, _a1 *spaces.GetRequest) (*space
 func (_m *SpacesServer) List(_a0 context.Context, _a1 *spaces.ListRequest) (*spaces.ListResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for List")
+	}
+
 	var r0 *spaces.ListResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.ListRequest) (*spaces.ListResponse, error)); ok {
@@ -150,6 +200,10 @@ func (_m *SpacesServer) List(_a0 context.Context, _a1 *spaces.ListRequest) (*spa
 func (_m *SpacesServer) ListTransfers(_a0 context.Context, _a1 *spaces.ListTransfersRequest) (*spaces.ListTransfersResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for ListTransfers")
+	}
+
 	var r0 *spaces.ListTransfersResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.ListTransfersRequest) (*spaces.ListTransfersResponse, error)); ok {
@@ -176,6 +230,10 @@ func (_m *SpacesServer) ListTransfers(_a0 context.Context, _a1 *spaces.ListTrans
 func (_m *SpacesServer) Move(_a0 context.Context, _a1 *spaces.MoveRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Move")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.MoveRequest) (*emptypb.Empty, error)); ok {
@@ -202,6 +260,10 @@ func (_m *SpacesServer) Move(_a0 context.Context, _a1 *spaces.MoveRequest) (*emp
 func (_m *SpacesServer) Transfer(_a0 context.Context, _a1 *spaces.TransferRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Transfer")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.TransferRequest) (*emptypb.Empty, error)); ok {
@@ -228,6 +290,10 @@ func (_m *SpacesServer) Transfer(_a0 context.Context, _a1 *spaces.TransferReques
 func (_m *SpacesServer) Update(_a0 context.Context, _a1 *spaces.UpdateRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.UpdateRequest) (*emptypb.Empty, error)); ok {
@@ -254,6 +320,10 @@ func (_m *SpacesServer) Update(_a0 context.Context, _a1 *spaces.UpdateRequest) (
 func (_m *SpacesServer) UpdateConfig(_a0 context.Context, _a1 *spaces.UpdateConfigRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for UpdateConfig")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *spaces.UpdateConfigRequest) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/UnsafeClientsServer.go b/proto/mocks/UnsafeClientsServer.go
index edaae9de..9a2c14b6 100644
--- a/proto/mocks/UnsafeClientsServer.go
+++ b/proto/mocks/UnsafeClientsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeCollaboratorsServer.go b/proto/mocks/UnsafeCollaboratorsServer.go
index 032a8659..87f96a68 100644
--- a/proto/mocks/UnsafeCollaboratorsServer.go
+++ b/proto/mocks/UnsafeCollaboratorsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeCollectionsServer.go b/proto/mocks/UnsafeCollectionsServer.go
index f827fa42..7ef9d88b 100644
--- a/proto/mocks/UnsafeCollectionsServer.go
+++ b/proto/mocks/UnsafeCollectionsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeDeliveryServer.go b/proto/mocks/UnsafeDeliveryServer.go
index ad857a41..d1e47f89 100644
--- a/proto/mocks/UnsafeDeliveryServer.go
+++ b/proto/mocks/UnsafeDeliveryServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeEnvironmentsServer.go b/proto/mocks/UnsafeEnvironmentsServer.go
index c6499e68..657a88f0 100644
--- a/proto/mocks/UnsafeEnvironmentsServer.go
+++ b/proto/mocks/UnsafeEnvironmentsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeExtensionManagerServiceServer.go b/proto/mocks/UnsafeExtensionManagerServiceServer.go
new file mode 100644
index 00000000..6ff47d5c
--- /dev/null
+++ b/proto/mocks/UnsafeExtensionManagerServiceServer.go
@@ -0,0 +1,29 @@
+// Code generated by mockery v2.46.3. DO NOT EDIT.
+
+package mocks
+
+import mock "github.com/stretchr/testify/mock"
+
+// UnsafeExtensionManagerServiceServer is an autogenerated mock type for the UnsafeExtensionManagerServiceServer type
+type UnsafeExtensionManagerServiceServer struct {
+	mock.Mock
+}
+
+// mustEmbedUnimplementedExtensionManagerServiceServer provides a mock function with given fields:
+func (_m *UnsafeExtensionManagerServiceServer) mustEmbedUnimplementedExtensionManagerServiceServer() {
+	_m.Called()
+}
+
+// NewUnsafeExtensionManagerServiceServer creates a new instance of UnsafeExtensionManagerServiceServer. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewUnsafeExtensionManagerServiceServer(t interface {
+	mock.TestingT
+	Cleanup(func())
+}) *UnsafeExtensionManagerServiceServer {
+	mock := &UnsafeExtensionManagerServiceServer{}
+	mock.Mock.Test(t)
+
+	t.Cleanup(func() { mock.AssertExpectations(t) })
+
+	return mock
+}
diff --git a/proto/mocks/UnsafeExtensionServiceServer.go b/proto/mocks/UnsafeExtensionServiceServer.go
new file mode 100644
index 00000000..4d48459b
--- /dev/null
+++ b/proto/mocks/UnsafeExtensionServiceServer.go
@@ -0,0 +1,29 @@
+// Code generated by mockery v2.46.3. DO NOT EDIT.
+
+package mocks
+
+import mock "github.com/stretchr/testify/mock"
+
+// UnsafeExtensionServiceServer is an autogenerated mock type for the UnsafeExtensionServiceServer type
+type UnsafeExtensionServiceServer struct {
+	mock.Mock
+}
+
+// mustEmbedUnimplementedExtensionServiceServer provides a mock function with given fields:
+func (_m *UnsafeExtensionServiceServer) mustEmbedUnimplementedExtensionServiceServer() {
+	_m.Called()
+}
+
+// NewUnsafeExtensionServiceServer creates a new instance of UnsafeExtensionServiceServer. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewUnsafeExtensionServiceServer(t interface {
+	mock.TestingT
+	Cleanup(func())
+}) *UnsafeExtensionServiceServer {
+	mock := &UnsafeExtensionServiceServer{}
+	mock.Mock.Test(t)
+
+	t.Cleanup(func() { mock.AssertExpectations(t) })
+
+	return mock
+}
diff --git a/proto/mocks/UnsafeFilesServer.go b/proto/mocks/UnsafeFilesServer.go
index 4b952359..b33b9f01 100644
--- a/proto/mocks/UnsafeFilesServer.go
+++ b/proto/mocks/UnsafeFilesServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeImagesServer.go b/proto/mocks/UnsafeImagesServer.go
index b99df04a..742b71f0 100644
--- a/proto/mocks/UnsafeImagesServer.go
+++ b/proto/mocks/UnsafeImagesServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeInvitationsServer.go b/proto/mocks/UnsafeInvitationsServer.go
index f7cfa355..0a4f7a7f 100644
--- a/proto/mocks/UnsafeInvitationsServer.go
+++ b/proto/mocks/UnsafeInvitationsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeItemsServer.go b/proto/mocks/UnsafeItemsServer.go
index a261bf4a..5db884b3 100644
--- a/proto/mocks/UnsafeItemsServer.go
+++ b/proto/mocks/UnsafeItemsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeLocalesServer.go b/proto/mocks/UnsafeLocalesServer.go
index e66f9ac5..858efdd4 100644
--- a/proto/mocks/UnsafeLocalesServer.go
+++ b/proto/mocks/UnsafeLocalesServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeLogsServiceServer.go b/proto/mocks/UnsafeLogsServiceServer.go
new file mode 100644
index 00000000..4936a1b8
--- /dev/null
+++ b/proto/mocks/UnsafeLogsServiceServer.go
@@ -0,0 +1,29 @@
+// Code generated by mockery v2.46.3. DO NOT EDIT.
+
+package mocks
+
+import mock "github.com/stretchr/testify/mock"
+
+// UnsafeLogsServiceServer is an autogenerated mock type for the UnsafeLogsServiceServer type
+type UnsafeLogsServiceServer struct {
+	mock.Mock
+}
+
+// mustEmbedUnimplementedLogsServiceServer provides a mock function with given fields:
+func (_m *UnsafeLogsServiceServer) mustEmbedUnimplementedLogsServiceServer() {
+	_m.Called()
+}
+
+// NewUnsafeLogsServiceServer creates a new instance of UnsafeLogsServiceServer. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewUnsafeLogsServiceServer(t interface {
+	mock.TestingT
+	Cleanup(func())
+}) *UnsafeLogsServiceServer {
+	mock := &UnsafeLogsServiceServer{}
+	mock.Mock.Test(t)
+
+	t.Cleanup(func() { mock.AssertExpectations(t) })
+
+	return mock
+}
diff --git a/proto/mocks/UnsafeMembersServer.go b/proto/mocks/UnsafeMembersServer.go
index 14df5465..d2de5927 100644
--- a/proto/mocks/UnsafeMembersServer.go
+++ b/proto/mocks/UnsafeMembersServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeObserverServer.go b/proto/mocks/UnsafeObserverServer.go
index 8c68681a..fb5d5b28 100644
--- a/proto/mocks/UnsafeObserverServer.go
+++ b/proto/mocks/UnsafeObserverServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeOperationServiceServer.go b/proto/mocks/UnsafeOperationServiceServer.go
index 46d3cdaa..fb356db9 100644
--- a/proto/mocks/UnsafeOperationServiceServer.go
+++ b/proto/mocks/UnsafeOperationServiceServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeOrganizationsServer.go b/proto/mocks/UnsafeOrganizationsServer.go
index 378edd0e..e7ec74ab 100644
--- a/proto/mocks/UnsafeOrganizationsServer.go
+++ b/proto/mocks/UnsafeOrganizationsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeReferencesServer.go b/proto/mocks/UnsafeReferencesServer.go
index f0ba11eb..214848d4 100644
--- a/proto/mocks/UnsafeReferencesServer.go
+++ b/proto/mocks/UnsafeReferencesServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeRolesServer.go b/proto/mocks/UnsafeRolesServer.go
index 5ac0028d..a7704a52 100644
--- a/proto/mocks/UnsafeRolesServer.go
+++ b/proto/mocks/UnsafeRolesServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeSpacesServer.go b/proto/mocks/UnsafeSpacesServer.go
index 3985b213..f22a0950 100644
--- a/proto/mocks/UnsafeSpacesServer.go
+++ b/proto/mocks/UnsafeSpacesServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeUsersServer.go b/proto/mocks/UnsafeUsersServer.go
index 6fb87834..e8f43675 100644
--- a/proto/mocks/UnsafeUsersServer.go
+++ b/proto/mocks/UnsafeUsersServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UnsafeVersionsServer.go b/proto/mocks/UnsafeVersionsServer.go
index 55162316..a8e92db7 100644
--- a/proto/mocks/UnsafeVersionsServer.go
+++ b/proto/mocks/UnsafeVersionsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/mocks/UsersClient.go b/proto/mocks/UsersClient.go
index 3bc77075..b17a9839 100644
--- a/proto/mocks/UsersClient.go
+++ b/proto/mocks/UsersClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -29,6 +29,10 @@ func (_m *UsersClient) Create(ctx context.Context, in *users.CreateRequest, opts
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *users.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *users.CreateRequest, ...grpc.CallOption) (*users.CreateResponse, error)); ok {
@@ -62,6 +66,10 @@ func (_m *UsersClient) Delete(ctx context.Context, in *users.DeleteRequest, opts
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *users.DeleteRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
@@ -95,6 +103,10 @@ func (_m *UsersClient) Find(ctx context.Context, in *users.FindRequest, opts ...
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Find")
+	}
+
 	var r0 *users.FindResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *users.FindRequest, ...grpc.CallOption) (*users.FindResponse, error)); ok {
@@ -128,6 +140,10 @@ func (_m *UsersClient) Get(ctx context.Context, in *users.GetRequest, opts ...gr
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *users.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *users.GetRequest, ...grpc.CallOption) (*users.GetResponse, error)); ok {
@@ -161,6 +177,10 @@ func (_m *UsersClient) GetByIdentity(ctx context.Context, in *users.GetByIdentit
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetByIdentity")
+	}
+
 	var r0 *users.GetByIdentityResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *users.GetByIdentityRequest, ...grpc.CallOption) (*users.GetByIdentityResponse, error)); ok {
@@ -183,6 +203,43 @@ func (_m *UsersClient) GetByIdentity(ctx context.Context, in *users.GetByIdentit
 	return r0, r1
 }
 
+// Login provides a mock function with given fields: ctx, in, opts
+func (_m *UsersClient) Login(ctx context.Context, in *users.LoginRequest, opts ...grpc.CallOption) (*users.LoginResponse, error) {
+	_va := make([]interface{}, len(opts))
+	for _i := range opts {
+		_va[_i] = opts[_i]
+	}
+	var _ca []interface{}
+	_ca = append(_ca, ctx, in)
+	_ca = append(_ca, _va...)
+	ret := _m.Called(_ca...)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Login")
+	}
+
+	var r0 *users.LoginResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *users.LoginRequest, ...grpc.CallOption) (*users.LoginResponse, error)); ok {
+		return rf(ctx, in, opts...)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *users.LoginRequest, ...grpc.CallOption) *users.LoginResponse); ok {
+		r0 = rf(ctx, in, opts...)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*users.LoginResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *users.LoginRequest, ...grpc.CallOption) error); ok {
+		r1 = rf(ctx, in, opts...)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
 // Update provides a mock function with given fields: ctx, in, opts
 func (_m *UsersClient) Update(ctx context.Context, in *users.UpdateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 	_va := make([]interface{}, len(opts))
@@ -194,6 +251,10 @@ func (_m *UsersClient) Update(ctx context.Context, in *users.UpdateRequest, opts
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *users.UpdateRequest, ...grpc.CallOption) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/UsersServer.go b/proto/mocks/UsersServer.go
index 837d1645..c8913926 100644
--- a/proto/mocks/UsersServer.go
+++ b/proto/mocks/UsersServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -20,6 +20,10 @@ type UsersServer struct {
 func (_m *UsersServer) Create(_a0 context.Context, _a1 *users.CreateRequest) (*users.CreateResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Create")
+	}
+
 	var r0 *users.CreateResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *users.CreateRequest) (*users.CreateResponse, error)); ok {
@@ -46,6 +50,10 @@ func (_m *UsersServer) Create(_a0 context.Context, _a1 *users.CreateRequest) (*u
 func (_m *UsersServer) Delete(_a0 context.Context, _a1 *users.DeleteRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Delete")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *users.DeleteRequest) (*emptypb.Empty, error)); ok {
@@ -72,6 +80,10 @@ func (_m *UsersServer) Delete(_a0 context.Context, _a1 *users.DeleteRequest) (*e
 func (_m *UsersServer) Find(_a0 context.Context, _a1 *users.FindRequest) (*users.FindResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Find")
+	}
+
 	var r0 *users.FindResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *users.FindRequest) (*users.FindResponse, error)); ok {
@@ -98,6 +110,10 @@ func (_m *UsersServer) Find(_a0 context.Context, _a1 *users.FindRequest) (*users
 func (_m *UsersServer) Get(_a0 context.Context, _a1 *users.GetRequest) (*users.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *users.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *users.GetRequest) (*users.GetResponse, error)); ok {
@@ -124,6 +140,10 @@ func (_m *UsersServer) Get(_a0 context.Context, _a1 *users.GetRequest) (*users.G
 func (_m *UsersServer) GetByIdentity(_a0 context.Context, _a1 *users.GetByIdentityRequest) (*users.GetByIdentityResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for GetByIdentity")
+	}
+
 	var r0 *users.GetByIdentityResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *users.GetByIdentityRequest) (*users.GetByIdentityResponse, error)); ok {
@@ -146,10 +166,44 @@ func (_m *UsersServer) GetByIdentity(_a0 context.Context, _a1 *users.GetByIdenti
 	return r0, r1
 }
 
+// Login provides a mock function with given fields: _a0, _a1
+func (_m *UsersServer) Login(_a0 context.Context, _a1 *users.LoginRequest) (*users.LoginResponse, error) {
+	ret := _m.Called(_a0, _a1)
+
+	if len(ret) == 0 {
+		panic("no return value specified for Login")
+	}
+
+	var r0 *users.LoginResponse
+	var r1 error
+	if rf, ok := ret.Get(0).(func(context.Context, *users.LoginRequest) (*users.LoginResponse, error)); ok {
+		return rf(_a0, _a1)
+	}
+	if rf, ok := ret.Get(0).(func(context.Context, *users.LoginRequest) *users.LoginResponse); ok {
+		r0 = rf(_a0, _a1)
+	} else {
+		if ret.Get(0) != nil {
+			r0 = ret.Get(0).(*users.LoginResponse)
+		}
+	}
+
+	if rf, ok := ret.Get(1).(func(context.Context, *users.LoginRequest) error); ok {
+		r1 = rf(_a0, _a1)
+	} else {
+		r1 = ret.Error(1)
+	}
+
+	return r0, r1
+}
+
 // Update provides a mock function with given fields: _a0, _a1
 func (_m *UsersServer) Update(_a0 context.Context, _a1 *users.UpdateRequest) (*emptypb.Empty, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Update")
+	}
+
 	var r0 *emptypb.Empty
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *users.UpdateRequest) (*emptypb.Empty, error)); ok {
diff --git a/proto/mocks/VersionsClient.go b/proto/mocks/VersionsClient.go
index 587b1cf8..8e9a59c3 100644
--- a/proto/mocks/VersionsClient.go
+++ b/proto/mocks/VersionsClient.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -30,6 +30,10 @@ func (_m *VersionsClient) Get(ctx context.Context, in *emptypb.Empty, opts ...gr
 	_ca = append(_ca, _va...)
 	ret := _m.Called(_ca...)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *content.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *emptypb.Empty, ...grpc.CallOption) (*content.GetResponse, error)); ok {
diff --git a/proto/mocks/VersionsServer.go b/proto/mocks/VersionsServer.go
index 4509e2c4..70d79386 100644
--- a/proto/mocks/VersionsServer.go
+++ b/proto/mocks/VersionsServer.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
@@ -21,6 +21,10 @@ type VersionsServer struct {
 func (_m *VersionsServer) Get(_a0 context.Context, _a1 *emptypb.Empty) (*content.GetResponse, error) {
 	ret := _m.Called(_a0, _a1)
 
+	if len(ret) == 0 {
+		panic("no return value specified for Get")
+	}
+
 	var r0 *content.GetResponse
 	var r1 error
 	if rf, ok := ret.Get(0).(func(context.Context, *emptypb.Empty) (*content.GetResponse, error)); ok {
diff --git a/proto/mocks/isFindResponse_Response.go b/proto/mocks/isFindResponse_Response.go
new file mode 100644
index 00000000..5240fb2d
--- /dev/null
+++ b/proto/mocks/isFindResponse_Response.go
@@ -0,0 +1,29 @@
+// Code generated by mockery v2.46.3. DO NOT EDIT.
+
+package mocks
+
+import mock "github.com/stretchr/testify/mock"
+
+// isFindResponse_Response is an autogenerated mock type for the isFindResponse_Response type
+type isFindResponse_Response struct {
+	mock.Mock
+}
+
+// isFindResponse_Response provides a mock function with given fields:
+func (_m *isFindResponse_Response) isFindResponse_Response() {
+	_m.Called()
+}
+
+// newIsFindResponse_Response creates a new instance of isFindResponse_Response. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func newIsFindResponse_Response(t interface {
+	mock.TestingT
+	Cleanup(func())
+}) *isFindResponse_Response {
+	mock := &isFindResponse_Response{}
+	mock.Mock.Test(t)
+
+	t.Cleanup(func() { mock.AssertExpectations(t) })
+
+	return mock
+}
diff --git a/proto/mocks/isOperation_Result.go b/proto/mocks/isOperation_Result.go
index cc9c1717..75965c3c 100644
--- a/proto/mocks/isOperation_Result.go
+++ b/proto/mocks/isOperation_Result.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.33.3. DO NOT EDIT.
+// Code generated by mockery v2.46.3. DO NOT EDIT.
 
 package mocks
 
diff --git a/proto/organizations/organizations.pb.go b/proto/organizations/organizations.pb.go
index d2a220a1..cc52bcad 100644
--- a/proto/organizations/organizations.pb.go
+++ b/proto/organizations/organizations.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: organizations/organizations.proto
 
 package organizations
@@ -37,11 +37,9 @@ type Organization struct {
 
 func (x *Organization) Reset() {
 	*x = Organization{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_organizations_organizations_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_organizations_organizations_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Organization) String() string {
@@ -52,7 +50,7 @@ func (*Organization) ProtoMessage() {}
 
 func (x *Organization) ProtoReflect() protoreflect.Message {
 	mi := &file_organizations_organizations_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -112,11 +110,9 @@ type CreateRequest struct {
 
 func (x *CreateRequest) Reset() {
 	*x = CreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_organizations_organizations_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_organizations_organizations_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateRequest) String() string {
@@ -127,7 +123,7 @@ func (*CreateRequest) ProtoMessage() {}
 
 func (x *CreateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_organizations_organizations_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -159,11 +155,9 @@ type CreateResponse struct {
 
 func (x *CreateResponse) Reset() {
 	*x = CreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_organizations_organizations_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_organizations_organizations_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateResponse) String() string {
@@ -174,7 +168,7 @@ func (*CreateResponse) ProtoMessage() {}
 
 func (x *CreateResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_organizations_organizations_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -206,11 +200,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_organizations_organizations_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_organizations_organizations_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -221,7 +213,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_organizations_organizations_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -253,11 +245,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_organizations_organizations_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_organizations_organizations_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -268,7 +258,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_organizations_organizations_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -300,11 +290,9 @@ type UpdateRequest struct {
 
 func (x *UpdateRequest) Reset() {
 	*x = UpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_organizations_organizations_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_organizations_organizations_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateRequest) String() string {
@@ -315,7 +303,7 @@ func (*UpdateRequest) ProtoMessage() {}
 
 func (x *UpdateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_organizations_organizations_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -347,11 +335,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_organizations_organizations_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_organizations_organizations_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -362,7 +348,7 @@ func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_organizations_organizations_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -395,11 +381,9 @@ type Filter struct {
 
 func (x *Filter) Reset() {
 	*x = Filter{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_organizations_organizations_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_organizations_organizations_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Filter) String() string {
@@ -410,7 +394,7 @@ func (*Filter) ProtoMessage() {}
 
 func (x *Filter) ProtoReflect() protoreflect.Message {
 	mi := &file_organizations_organizations_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -450,11 +434,9 @@ type FindRequest struct {
 
 func (x *FindRequest) Reset() {
 	*x = FindRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_organizations_organizations_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_organizations_organizations_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindRequest) String() string {
@@ -465,7 +447,7 @@ func (*FindRequest) ProtoMessage() {}
 
 func (x *FindRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_organizations_organizations_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -505,11 +487,9 @@ type FindResponse struct {
 
 func (x *FindResponse) Reset() {
 	*x = FindResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_organizations_organizations_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_organizations_organizations_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindResponse) String() string {
@@ -520,7 +500,7 @@ func (*FindResponse) ProtoMessage() {}
 
 func (x *FindResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_organizations_organizations_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -698,128 +678,6 @@ func file_organizations_organizations_proto_init() {
 	if File_organizations_organizations_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_organizations_organizations_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Organization); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_organizations_organizations_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_organizations_organizations_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_organizations_organizations_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_organizations_organizations_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_organizations_organizations_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_organizations_organizations_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_organizations_organizations_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*Filter); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_organizations_organizations_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*FindRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_organizations_organizations_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*FindResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	file_organizations_organizations_proto_msgTypes[0].OneofWrappers = []any{}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
diff --git a/proto/organizations/organizations_grpc.pb.go b/proto/organizations/organizations_grpc.pb.go
index 09aa7525..872587be 100644
--- a/proto/organizations/organizations_grpc.pb.go
+++ b/proto/organizations/organizations_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: organizations/organizations.proto
 
 package organizations
diff --git a/proto/references/references.pb.go b/proto/references/references.pb.go
index 235312d9..159a7a67 100644
--- a/proto/references/references.pb.go
+++ b/proto/references/references.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: references/references.proto
 
 package references
@@ -33,11 +33,9 @@ type Reference struct {
 
 func (x *Reference) Reset() {
 	*x = Reference{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_references_references_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_references_references_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Reference) String() string {
@@ -48,7 +46,7 @@ func (*Reference) ProtoMessage() {}
 
 func (x *Reference) ProtoReflect() protoreflect.Message {
 	mi := &file_references_references_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -97,11 +95,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_references_references_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_references_references_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -112,7 +108,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_references_references_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -166,11 +162,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_references_references_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_references_references_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -181,7 +175,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_references_references_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -225,11 +219,9 @@ type PublishRequest struct {
 
 func (x *PublishRequest) Reset() {
 	*x = PublishRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_references_references_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_references_references_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PublishRequest) String() string {
@@ -240,7 +232,7 @@ func (*PublishRequest) ProtoMessage() {}
 
 func (x *PublishRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_references_references_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -303,11 +295,9 @@ type PublishResponse struct {
 
 func (x *PublishResponse) Reset() {
 	*x = PublishResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_references_references_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_references_references_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PublishResponse) String() string {
@@ -318,7 +308,7 @@ func (*PublishResponse) ProtoMessage() {}
 
 func (x *PublishResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_references_references_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -365,11 +355,9 @@ type GetOptions struct {
 
 func (x *GetOptions) Reset() {
 	*x = GetOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_references_references_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_references_references_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetOptions) String() string {
@@ -380,7 +368,7 @@ func (*GetOptions) ProtoMessage() {}
 
 func (x *GetOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_references_references_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -535,80 +523,6 @@ func file_references_references_proto_init() {
 	if File_references_references_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_references_references_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Reference); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_references_references_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_references_references_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_references_references_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*PublishRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_references_references_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*PublishResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_references_references_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*GetOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/references/references_grpc.pb.go b/proto/references/references_grpc.pb.go
index f6b37c16..ce5adebf 100644
--- a/proto/references/references_grpc.pb.go
+++ b/proto/references/references_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: references/references.proto
 
 package references
diff --git a/proto/roles/roles.pb.go b/proto/roles/roles.pb.go
index 380ce70f..6e5fccb3 100644
--- a/proto/roles/roles.pb.go
+++ b/proto/roles/roles.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: roles/roles.proto
 
 package roles
@@ -50,11 +50,9 @@ type Role struct {
 
 func (x *Role) Reset() {
 	*x = Role{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_roles_roles_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_roles_roles_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Role) String() string {
@@ -65,7 +63,7 @@ func (*Role) ProtoMessage() {}
 
 func (x *Role) ProtoReflect() protoreflect.Message {
 	mi := &file_roles_roles_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -132,11 +130,9 @@ type CreateRequest struct {
 
 func (x *CreateRequest) Reset() {
 	*x = CreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_roles_roles_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_roles_roles_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateRequest) String() string {
@@ -147,7 +143,7 @@ func (*CreateRequest) ProtoMessage() {}
 
 func (x *CreateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_roles_roles_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -179,11 +175,9 @@ type CreateResponse struct {
 
 func (x *CreateResponse) Reset() {
 	*x = CreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_roles_roles_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_roles_roles_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateResponse) String() string {
@@ -194,7 +188,7 @@ func (*CreateResponse) ProtoMessage() {}
 
 func (x *CreateResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_roles_roles_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -227,11 +221,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_roles_roles_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_roles_roles_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -242,7 +234,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_roles_roles_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -281,11 +273,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_roles_roles_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_roles_roles_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -296,7 +286,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_roles_roles_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -328,11 +318,9 @@ type UpdateRequest struct {
 
 func (x *UpdateRequest) Reset() {
 	*x = UpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_roles_roles_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_roles_roles_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateRequest) String() string {
@@ -343,7 +331,7 @@ func (*UpdateRequest) ProtoMessage() {}
 
 func (x *UpdateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_roles_roles_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -375,11 +363,9 @@ type ListRequest struct {
 
 func (x *ListRequest) Reset() {
 	*x = ListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_roles_roles_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_roles_roles_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListRequest) String() string {
@@ -390,7 +376,7 @@ func (*ListRequest) ProtoMessage() {}
 
 func (x *ListRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_roles_roles_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -422,11 +408,9 @@ type ListResponse struct {
 
 func (x *ListResponse) Reset() {
 	*x = ListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_roles_roles_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_roles_roles_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListResponse) String() string {
@@ -437,7 +421,7 @@ func (*ListResponse) ProtoMessage() {}
 
 func (x *ListResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_roles_roles_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -470,11 +454,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_roles_roles_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_roles_roles_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -485,7 +467,7 @@ func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_roles_roles_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -647,116 +629,6 @@ func file_roles_roles_proto_init() {
 	if File_roles_roles_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_roles_roles_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Role); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_roles_roles_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_roles_roles_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_roles_roles_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_roles_roles_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_roles_roles_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_roles_roles_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*ListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_roles_roles_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*ListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_roles_roles_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/roles/roles_grpc.pb.go b/proto/roles/roles_grpc.pb.go
index e8228433..3f8041f9 100644
--- a/proto/roles/roles_grpc.pb.go
+++ b/proto/roles/roles_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: roles/roles.proto
 
 package roles
diff --git a/proto/spaces/spaces.pb.go b/proto/spaces/spaces.pb.go
index 32a78ef8..b493cd82 100644
--- a/proto/spaces/spaces.pb.go
+++ b/proto/spaces/spaces.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: spaces/spaces.proto
 
 package spaces
@@ -105,11 +105,9 @@ type Space struct {
 
 func (x *Space) Reset() {
 	*x = Space{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Space) String() string {
@@ -120,7 +118,7 @@ func (*Space) ProtoMessage() {}
 
 func (x *Space) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -204,11 +202,9 @@ type StateInfo struct {
 
 func (x *StateInfo) Reset() {
 	*x = StateInfo{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StateInfo) String() string {
@@ -219,7 +215,7 @@ func (*StateInfo) ProtoMessage() {}
 
 func (x *StateInfo) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -273,11 +269,9 @@ type Config struct {
 
 func (x *Config) Reset() {
 	*x = Config{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Config) String() string {
@@ -288,7 +282,7 @@ func (*Config) ProtoMessage() {}
 
 func (x *Config) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -320,11 +314,9 @@ type CreateRequest struct {
 
 func (x *CreateRequest) Reset() {
 	*x = CreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateRequest) String() string {
@@ -335,7 +327,7 @@ func (*CreateRequest) ProtoMessage() {}
 
 func (x *CreateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -367,11 +359,9 @@ type CreateResponse struct {
 
 func (x *CreateResponse) Reset() {
 	*x = CreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateResponse) String() string {
@@ -382,7 +372,7 @@ func (*CreateResponse) ProtoMessage() {}
 
 func (x *CreateResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -414,11 +404,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -429,7 +417,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -461,11 +449,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -476,7 +462,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -508,11 +494,9 @@ type ListRequest struct {
 
 func (x *ListRequest) Reset() {
 	*x = ListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListRequest) String() string {
@@ -523,7 +507,7 @@ func (*ListRequest) ProtoMessage() {}
 
 func (x *ListRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -555,11 +539,9 @@ type ListResponse struct {
 
 func (x *ListResponse) Reset() {
 	*x = ListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListResponse) String() string {
@@ -570,7 +552,7 @@ func (*ListResponse) ProtoMessage() {}
 
 func (x *ListResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -602,11 +584,9 @@ type UpdateRequest struct {
 
 func (x *UpdateRequest) Reset() {
 	*x = UpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateRequest) String() string {
@@ -617,7 +597,7 @@ func (*UpdateRequest) ProtoMessage() {}
 
 func (x *UpdateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -650,11 +630,9 @@ type UpdateConfigRequest struct {
 
 func (x *UpdateConfigRequest) Reset() {
 	*x = UpdateConfigRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateConfigRequest) String() string {
@@ -665,7 +643,7 @@ func (*UpdateConfigRequest) ProtoMessage() {}
 
 func (x *UpdateConfigRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -704,11 +682,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -719,7 +695,7 @@ func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -752,11 +728,9 @@ type TransferRequest struct {
 
 func (x *TransferRequest) Reset() {
 	*x = TransferRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TransferRequest) String() string {
@@ -767,7 +741,7 @@ func (*TransferRequest) ProtoMessage() {}
 
 func (x *TransferRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -806,11 +780,9 @@ type AbortTransferRequest struct {
 
 func (x *AbortTransferRequest) Reset() {
 	*x = AbortTransferRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AbortTransferRequest) String() string {
@@ -821,7 +793,7 @@ func (*AbortTransferRequest) ProtoMessage() {}
 
 func (x *AbortTransferRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -853,11 +825,9 @@ type ListTransfersRequest struct {
 
 func (x *ListTransfersRequest) Reset() {
 	*x = ListTransfersRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListTransfersRequest) String() string {
@@ -868,7 +838,7 @@ func (*ListTransfersRequest) ProtoMessage() {}
 
 func (x *ListTransfersRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -900,11 +870,9 @@ type ListTransfersResponse struct {
 
 func (x *ListTransfersResponse) Reset() {
 	*x = ListTransfersResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListTransfersResponse) String() string {
@@ -915,7 +883,7 @@ func (*ListTransfersResponse) ProtoMessage() {}
 
 func (x *ListTransfersResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -948,11 +916,9 @@ type MoveRequest struct {
 
 func (x *MoveRequest) Reset() {
 	*x = MoveRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *MoveRequest) String() string {
@@ -963,7 +929,7 @@ func (*MoveRequest) ProtoMessage() {}
 
 func (x *MoveRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1006,11 +972,9 @@ type Filter struct {
 
 func (x *Filter) Reset() {
 	*x = Filter{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Filter) String() string {
@@ -1021,7 +985,7 @@ func (*Filter) ProtoMessage() {}
 
 func (x *Filter) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1084,11 +1048,9 @@ type FindRequest struct {
 
 func (x *FindRequest) Reset() {
 	*x = FindRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[18]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindRequest) String() string {
@@ -1099,7 +1061,7 @@ func (*FindRequest) ProtoMessage() {}
 
 func (x *FindRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[18]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1139,11 +1101,9 @@ type FindResponse struct {
 
 func (x *FindResponse) Reset() {
 	*x = FindResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_spaces_spaces_proto_msgTypes[19]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_spaces_spaces_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindResponse) String() string {
@@ -1154,7 +1114,7 @@ func (*FindResponse) ProtoMessage() {}
 
 func (x *FindResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_spaces_spaces_proto_msgTypes[19]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1455,248 +1415,6 @@ func file_spaces_spaces_proto_init() {
 	if File_spaces_spaces_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_spaces_spaces_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Space); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*StateInfo); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*Config); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*ListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*ListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateConfigRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[12].Exporter = func(v any, i int) any {
-			switch v := v.(*TransferRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[13].Exporter = func(v any, i int) any {
-			switch v := v.(*AbortTransferRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[14].Exporter = func(v any, i int) any {
-			switch v := v.(*ListTransfersRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[15].Exporter = func(v any, i int) any {
-			switch v := v.(*ListTransfersResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[16].Exporter = func(v any, i int) any {
-			switch v := v.(*MoveRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[17].Exporter = func(v any, i int) any {
-			switch v := v.(*Filter); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[18].Exporter = func(v any, i int) any {
-			switch v := v.(*FindRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_spaces_spaces_proto_msgTypes[19].Exporter = func(v any, i int) any {
-			switch v := v.(*FindResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/spaces/spaces_grpc.pb.go b/proto/spaces/spaces_grpc.pb.go
index a7d50aee..eb9e5f8b 100644
--- a/proto/spaces/spaces_grpc.pb.go
+++ b/proto/spaces/spaces_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: spaces/spaces.proto
 
 package spaces
diff --git a/proto/users/users.pb.go b/proto/users/users.pb.go
index 23f9b300..69d441d9 100644
--- a/proto/users/users.pb.go
+++ b/proto/users/users.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: users/users.proto
 
 package users
@@ -40,11 +40,9 @@ type User struct {
 
 func (x *User) Reset() {
 	*x = User{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_users_users_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_users_users_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *User) String() string {
@@ -55,7 +53,7 @@ func (*User) ProtoMessage() {}
 
 func (x *User) ProtoReflect() protoreflect.Message {
 	mi := &file_users_users_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -142,11 +140,9 @@ type Filter struct {
 
 func (x *Filter) Reset() {
 	*x = Filter{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_users_users_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_users_users_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Filter) String() string {
@@ -157,7 +153,7 @@ func (*Filter) ProtoMessage() {}
 
 func (x *Filter) ProtoReflect() protoreflect.Message {
 	mi := &file_users_users_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -221,6 +217,104 @@ func (x *Filter) GetSystem() *wrapperspb.BoolValue {
 	return nil
 }
 
+type LoginRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Email    string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"`
+	Identity string `protobuf:"bytes,2,opt,name=identity,proto3" json:"identity,omitempty"`
+}
+
+func (x *LoginRequest) Reset() {
+	*x = LoginRequest{}
+	mi := &file_users_users_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *LoginRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LoginRequest) ProtoMessage() {}
+
+func (x *LoginRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_users_users_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use LoginRequest.ProtoReflect.Descriptor instead.
+func (*LoginRequest) Descriptor() ([]byte, []int) {
+	return file_users_users_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *LoginRequest) GetEmail() string {
+	if x != nil {
+		return x.Email
+	}
+	return ""
+}
+
+func (x *LoginRequest) GetIdentity() string {
+	if x != nil {
+		return x.Identity
+	}
+	return ""
+}
+
+type LoginResponse struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
+}
+
+func (x *LoginResponse) Reset() {
+	*x = LoginResponse{}
+	mi := &file_users_users_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *LoginResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LoginResponse) ProtoMessage() {}
+
+func (x *LoginResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_users_users_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use LoginResponse.ProtoReflect.Descriptor instead.
+func (*LoginResponse) Descriptor() ([]byte, []int) {
+	return file_users_users_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *LoginResponse) GetUser() *User {
+	if x != nil {
+		return x.User
+	}
+	return nil
+}
+
 type CreateRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -231,11 +325,9 @@ type CreateRequest struct {
 
 func (x *CreateRequest) Reset() {
 	*x = CreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_users_users_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_users_users_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateRequest) String() string {
@@ -245,8 +337,8 @@ func (x *CreateRequest) String() string {
 func (*CreateRequest) ProtoMessage() {}
 
 func (x *CreateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_users_users_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_users_users_proto_msgTypes[4]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -258,7 +350,7 @@ func (x *CreateRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CreateRequest.ProtoReflect.Descriptor instead.
 func (*CreateRequest) Descriptor() ([]byte, []int) {
-	return file_users_users_proto_rawDescGZIP(), []int{2}
+	return file_users_users_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *CreateRequest) GetCreate() *User {
@@ -278,11 +370,9 @@ type CreateResponse struct {
 
 func (x *CreateResponse) Reset() {
 	*x = CreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_users_users_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_users_users_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateResponse) String() string {
@@ -292,8 +382,8 @@ func (x *CreateResponse) String() string {
 func (*CreateResponse) ProtoMessage() {}
 
 func (x *CreateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_users_users_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_users_users_proto_msgTypes[5]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -305,7 +395,7 @@ func (x *CreateResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CreateResponse.ProtoReflect.Descriptor instead.
 func (*CreateResponse) Descriptor() ([]byte, []int) {
-	return file_users_users_proto_rawDescGZIP(), []int{3}
+	return file_users_users_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *CreateResponse) GetUser() *User {
@@ -326,11 +416,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_users_users_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_users_users_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -340,8 +428,8 @@ func (x *GetRequest) String() string {
 func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_users_users_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_users_users_proto_msgTypes[6]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -353,7 +441,7 @@ func (x *GetRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetRequest.ProtoReflect.Descriptor instead.
 func (*GetRequest) Descriptor() ([]byte, []int) {
-	return file_users_users_proto_rawDescGZIP(), []int{4}
+	return file_users_users_proto_rawDescGZIP(), []int{6}
 }
 
 func (x *GetRequest) GetUserId() string {
@@ -373,11 +461,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_users_users_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_users_users_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -387,8 +473,8 @@ func (x *GetResponse) String() string {
 func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_users_users_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_users_users_proto_msgTypes[7]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -400,7 +486,7 @@ func (x *GetResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetResponse.ProtoReflect.Descriptor instead.
 func (*GetResponse) Descriptor() ([]byte, []int) {
-	return file_users_users_proto_rawDescGZIP(), []int{5}
+	return file_users_users_proto_rawDescGZIP(), []int{7}
 }
 
 func (x *GetResponse) GetUser() *User {
@@ -421,11 +507,9 @@ type FindRequest struct {
 
 func (x *FindRequest) Reset() {
 	*x = FindRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_users_users_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_users_users_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindRequest) String() string {
@@ -435,8 +519,8 @@ func (x *FindRequest) String() string {
 func (*FindRequest) ProtoMessage() {}
 
 func (x *FindRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_users_users_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_users_users_proto_msgTypes[8]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -448,7 +532,7 @@ func (x *FindRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use FindRequest.ProtoReflect.Descriptor instead.
 func (*FindRequest) Descriptor() ([]byte, []int) {
-	return file_users_users_proto_rawDescGZIP(), []int{6}
+	return file_users_users_proto_rawDescGZIP(), []int{8}
 }
 
 func (x *FindRequest) GetFilter() *Filter {
@@ -476,11 +560,9 @@ type FindResponse struct {
 
 func (x *FindResponse) Reset() {
 	*x = FindResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_users_users_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_users_users_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FindResponse) String() string {
@@ -490,8 +572,8 @@ func (x *FindResponse) String() string {
 func (*FindResponse) ProtoMessage() {}
 
 func (x *FindResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_users_users_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_users_users_proto_msgTypes[9]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -503,7 +585,7 @@ func (x *FindResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use FindResponse.ProtoReflect.Descriptor instead.
 func (*FindResponse) Descriptor() ([]byte, []int) {
-	return file_users_users_proto_rawDescGZIP(), []int{7}
+	return file_users_users_proto_rawDescGZIP(), []int{9}
 }
 
 func (x *FindResponse) GetUsers() []*User {
@@ -531,11 +613,9 @@ type UpdateRequest struct {
 
 func (x *UpdateRequest) Reset() {
 	*x = UpdateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_users_users_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_users_users_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateRequest) String() string {
@@ -545,8 +625,8 @@ func (x *UpdateRequest) String() string {
 func (*UpdateRequest) ProtoMessage() {}
 
 func (x *UpdateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_users_users_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_users_users_proto_msgTypes[10]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -558,7 +638,7 @@ func (x *UpdateRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use UpdateRequest.ProtoReflect.Descriptor instead.
 func (*UpdateRequest) Descriptor() ([]byte, []int) {
-	return file_users_users_proto_rawDescGZIP(), []int{8}
+	return file_users_users_proto_rawDescGZIP(), []int{10}
 }
 
 func (x *UpdateRequest) GetUpdate() *User {
@@ -578,11 +658,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_users_users_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_users_users_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -592,8 +670,8 @@ func (x *DeleteRequest) String() string {
 func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_users_users_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_users_users_proto_msgTypes[11]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -605,7 +683,7 @@ func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead.
 func (*DeleteRequest) Descriptor() ([]byte, []int) {
-	return file_users_users_proto_rawDescGZIP(), []int{9}
+	return file_users_users_proto_rawDescGZIP(), []int{11}
 }
 
 func (x *DeleteRequest) GetUserId() string {
@@ -625,11 +703,9 @@ type GetByIdentityRequest struct {
 
 func (x *GetByIdentityRequest) Reset() {
 	*x = GetByIdentityRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_users_users_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_users_users_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetByIdentityRequest) String() string {
@@ -639,8 +715,8 @@ func (x *GetByIdentityRequest) String() string {
 func (*GetByIdentityRequest) ProtoMessage() {}
 
 func (x *GetByIdentityRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_users_users_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_users_users_proto_msgTypes[12]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -652,7 +728,7 @@ func (x *GetByIdentityRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetByIdentityRequest.ProtoReflect.Descriptor instead.
 func (*GetByIdentityRequest) Descriptor() ([]byte, []int) {
-	return file_users_users_proto_rawDescGZIP(), []int{10}
+	return file_users_users_proto_rawDescGZIP(), []int{12}
 }
 
 func (x *GetByIdentityRequest) GetIdentity() string {
@@ -672,11 +748,9 @@ type GetByIdentityResponse struct {
 
 func (x *GetByIdentityResponse) Reset() {
 	*x = GetByIdentityResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_users_users_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_users_users_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetByIdentityResponse) String() string {
@@ -686,8 +760,8 @@ func (x *GetByIdentityResponse) String() string {
 func (*GetByIdentityResponse) ProtoMessage() {}
 
 func (x *GetByIdentityResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_users_users_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_users_users_proto_msgTypes[13]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -699,7 +773,7 @@ func (x *GetByIdentityResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetByIdentityResponse.ProtoReflect.Descriptor instead.
 func (*GetByIdentityResponse) Descriptor() ([]byte, []int) {
-	return file_users_users_proto_rawDescGZIP(), []int{11}
+	return file_users_users_proto_rawDescGZIP(), []int{13}
 }
 
 func (x *GetByIdentityResponse) GetUser() *User {
@@ -753,77 +827,89 @@ var file_users_users_proto_rawDesc = []byte{
 	0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
 	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f,
 	0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22,
-	0x3c, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x12, 0x2b, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+	0x40, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+	0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+	0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
+	0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
+	0x79, 0x22, 0x38, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
 	0x32, 0x13, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73,
-	0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x22, 0x39, 0x0a,
-	0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
-	0x27, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
-	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x55, 0x73,
-	0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69,
-	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22,
-	0x36, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27,
-	0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61,
+	0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x3c, 0x0a, 0x0d, 0x43,
+	0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x06,
+	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61,
 	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x55, 0x73, 0x65,
-	0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
-	0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66,
-	0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
-	0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
-	0x46, 0x69, 0x6e, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74,
-	0x69, 0x6f, 0x6e, 0x73, 0x22, 0x4f, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73,
-	0x65, 0x72, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12,
-	0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
-	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x3c, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
-	0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, 0x75, 0x70, 0x64,
-	0x61, 0x74, 0x65, 0x22, 0x28, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x32, 0x0a,
-	0x14, 0x47, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
-	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
-	0x79, 0x22, 0x40, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
-	0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x75, 0x73,
+	0x72, 0x52, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x22, 0x39, 0x0a, 0x0e, 0x43, 0x72, 0x65,
+	0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x75,
+	0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x63, 0x63, 0x6f,
+	0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04,
+	0x75, 0x73, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x36, 0x0a, 0x0b, 0x47,
+	0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x75, 0x73,
 	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75,
 	0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75,
-	0x73, 0x65, 0x72, 0x32, 0xb5, 0x03, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a,
-	0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+	0x73, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65,
+	0x72, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65,
+	0x72, 0x12, 0x2d, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64,
+	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+	0x22, 0x4f, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x12, 0x29, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+	0x13, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e,
+	0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74,
+	0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61,
+	0x6c, 0x22, 0x3c, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65,
+	0x72, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22,
+	0x28, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x32, 0x0a, 0x14, 0x47, 0x65, 0x74,
+	0x42, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x40, 0x0a,
+	0x15, 0x47, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75,
+	0x73, 0x65, 0x72, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x32,
+	0xfb, 0x03, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x44, 0x0a, 0x05, 0x4c, 0x6f, 0x67,
+	0x69, 0x6e, 0x12, 0x1b, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65,
+	0x72, 0x73, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+	0x1c, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e,
+	0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+	0x47, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x63, 0x63, 0x6f,
+	0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
 	0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e,
-	0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x19, 0x2e,
-	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x47, 0x65,
-	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75,
-	0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x04, 0x46, 0x69, 0x6e, 0x64, 0x12, 0x1a,
-	0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x46,
-	0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x63, 0x63,
-	0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x06, 0x55, 0x70, 0x64,
-	0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73,
-	0x65, 0x72, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x06, 0x44,
-	0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e,
-	0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12,
+	0x19, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e,
+	0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x63, 0x63,
+	0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x04, 0x46, 0x69, 0x6e, 0x64,
+	0x12, 0x1a, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73,
+	0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61,
+	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x46, 0x69, 0x6e,
+	0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x06, 0x55,
+	0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e,
+	0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
 	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5c, 0x0a,
-	0x0d, 0x47, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23,
-	0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x47,
-	0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73,
-	0x65, 0x72, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
-	0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x30, 0x5a, 0x2e, 0x67,
-	0x69, 0x74, 0x2e, 0x70, 0x65, 0x72, 0x78, 0x2e, 0x72, 0x75, 0x2f, 0x70, 0x65, 0x72, 0x78, 0x69,
-	0x73, 0x2f, 0x70, 0x65, 0x72, 0x78, 0x69, 0x73, 0x2d, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x73, 0x62, 0x06, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x40, 0x0a,
+	0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+	0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12,
+	0x5c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
+	0x12, 0x23, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x73,
+	0x2e, 0x47, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e,
+	0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74,
+	0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x30, 0x5a,
+	0x2e, 0x67, 0x69, 0x74, 0x2e, 0x70, 0x65, 0x72, 0x78, 0x2e, 0x72, 0x75, 0x2f, 0x70, 0x65, 0x72,
+	0x78, 0x69, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x78, 0x69, 0x73, 0x2d, 0x67, 0x6f, 0x2f, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x73, 0x62,
+	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -838,54 +924,59 @@ func file_users_users_proto_rawDescGZIP() []byte {
 	return file_users_users_proto_rawDescData
 }
 
-var file_users_users_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
+var file_users_users_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
 var file_users_users_proto_goTypes = []any{
 	(*User)(nil),                  // 0: account.users.User
 	(*Filter)(nil),                // 1: account.users.Filter
-	(*CreateRequest)(nil),         // 2: account.users.CreateRequest
-	(*CreateResponse)(nil),        // 3: account.users.CreateResponse
-	(*GetRequest)(nil),            // 4: account.users.GetRequest
-	(*GetResponse)(nil),           // 5: account.users.GetResponse
-	(*FindRequest)(nil),           // 6: account.users.FindRequest
-	(*FindResponse)(nil),          // 7: account.users.FindResponse
-	(*UpdateRequest)(nil),         // 8: account.users.UpdateRequest
-	(*DeleteRequest)(nil),         // 9: account.users.DeleteRequest
-	(*GetByIdentityRequest)(nil),  // 10: account.users.GetByIdentityRequest
-	(*GetByIdentityResponse)(nil), // 11: account.users.GetByIdentityResponse
-	(*wrapperspb.BoolValue)(nil),  // 12: google.protobuf.BoolValue
-	(*common.FindOptions)(nil),    // 13: common.FindOptions
-	(*emptypb.Empty)(nil),         // 14: google.protobuf.Empty
+	(*LoginRequest)(nil),          // 2: account.users.LoginRequest
+	(*LoginResponse)(nil),         // 3: account.users.LoginResponse
+	(*CreateRequest)(nil),         // 4: account.users.CreateRequest
+	(*CreateResponse)(nil),        // 5: account.users.CreateResponse
+	(*GetRequest)(nil),            // 6: account.users.GetRequest
+	(*GetResponse)(nil),           // 7: account.users.GetResponse
+	(*FindRequest)(nil),           // 8: account.users.FindRequest
+	(*FindResponse)(nil),          // 9: account.users.FindResponse
+	(*UpdateRequest)(nil),         // 10: account.users.UpdateRequest
+	(*DeleteRequest)(nil),         // 11: account.users.DeleteRequest
+	(*GetByIdentityRequest)(nil),  // 12: account.users.GetByIdentityRequest
+	(*GetByIdentityResponse)(nil), // 13: account.users.GetByIdentityResponse
+	(*wrapperspb.BoolValue)(nil),  // 14: google.protobuf.BoolValue
+	(*common.FindOptions)(nil),    // 15: common.FindOptions
+	(*emptypb.Empty)(nil),         // 16: google.protobuf.Empty
 }
 var file_users_users_proto_depIdxs = []int32{
-	12, // 0: account.users.User.email_verified:type_name -> google.protobuf.BoolValue
-	12, // 1: account.users.User.system:type_name -> google.protobuf.BoolValue
-	12, // 2: account.users.Filter.email_verified:type_name -> google.protobuf.BoolValue
-	12, // 3: account.users.Filter.system:type_name -> google.protobuf.BoolValue
-	0,  // 4: account.users.CreateRequest.create:type_name -> account.users.User
-	0,  // 5: account.users.CreateResponse.user:type_name -> account.users.User
-	0,  // 6: account.users.GetResponse.user:type_name -> account.users.User
-	1,  // 7: account.users.FindRequest.filter:type_name -> account.users.Filter
-	13, // 8: account.users.FindRequest.options:type_name -> common.FindOptions
-	0,  // 9: account.users.FindResponse.users:type_name -> account.users.User
-	0,  // 10: account.users.UpdateRequest.update:type_name -> account.users.User
-	0,  // 11: account.users.GetByIdentityResponse.user:type_name -> account.users.User
-	2,  // 12: account.users.Users.Create:input_type -> account.users.CreateRequest
-	4,  // 13: account.users.Users.Get:input_type -> account.users.GetRequest
-	6,  // 14: account.users.Users.Find:input_type -> account.users.FindRequest
-	8,  // 15: account.users.Users.Update:input_type -> account.users.UpdateRequest
-	9,  // 16: account.users.Users.Delete:input_type -> account.users.DeleteRequest
-	10, // 17: account.users.Users.GetByIdentity:input_type -> account.users.GetByIdentityRequest
-	3,  // 18: account.users.Users.Create:output_type -> account.users.CreateResponse
-	5,  // 19: account.users.Users.Get:output_type -> account.users.GetResponse
-	7,  // 20: account.users.Users.Find:output_type -> account.users.FindResponse
-	14, // 21: account.users.Users.Update:output_type -> google.protobuf.Empty
-	14, // 22: account.users.Users.Delete:output_type -> google.protobuf.Empty
-	11, // 23: account.users.Users.GetByIdentity:output_type -> account.users.GetByIdentityResponse
-	18, // [18:24] is the sub-list for method output_type
-	12, // [12:18] is the sub-list for method input_type
-	12, // [12:12] is the sub-list for extension type_name
-	12, // [12:12] is the sub-list for extension extendee
-	0,  // [0:12] is the sub-list for field type_name
+	14, // 0: account.users.User.email_verified:type_name -> google.protobuf.BoolValue
+	14, // 1: account.users.User.system:type_name -> google.protobuf.BoolValue
+	14, // 2: account.users.Filter.email_verified:type_name -> google.protobuf.BoolValue
+	14, // 3: account.users.Filter.system:type_name -> google.protobuf.BoolValue
+	0,  // 4: account.users.LoginResponse.user:type_name -> account.users.User
+	0,  // 5: account.users.CreateRequest.create:type_name -> account.users.User
+	0,  // 6: account.users.CreateResponse.user:type_name -> account.users.User
+	0,  // 7: account.users.GetResponse.user:type_name -> account.users.User
+	1,  // 8: account.users.FindRequest.filter:type_name -> account.users.Filter
+	15, // 9: account.users.FindRequest.options:type_name -> common.FindOptions
+	0,  // 10: account.users.FindResponse.users:type_name -> account.users.User
+	0,  // 11: account.users.UpdateRequest.update:type_name -> account.users.User
+	0,  // 12: account.users.GetByIdentityResponse.user:type_name -> account.users.User
+	2,  // 13: account.users.Users.Login:input_type -> account.users.LoginRequest
+	4,  // 14: account.users.Users.Create:input_type -> account.users.CreateRequest
+	6,  // 15: account.users.Users.Get:input_type -> account.users.GetRequest
+	8,  // 16: account.users.Users.Find:input_type -> account.users.FindRequest
+	10, // 17: account.users.Users.Update:input_type -> account.users.UpdateRequest
+	11, // 18: account.users.Users.Delete:input_type -> account.users.DeleteRequest
+	12, // 19: account.users.Users.GetByIdentity:input_type -> account.users.GetByIdentityRequest
+	3,  // 20: account.users.Users.Login:output_type -> account.users.LoginResponse
+	5,  // 21: account.users.Users.Create:output_type -> account.users.CreateResponse
+	7,  // 22: account.users.Users.Get:output_type -> account.users.GetResponse
+	9,  // 23: account.users.Users.Find:output_type -> account.users.FindResponse
+	16, // 24: account.users.Users.Update:output_type -> google.protobuf.Empty
+	16, // 25: account.users.Users.Delete:output_type -> google.protobuf.Empty
+	13, // 26: account.users.Users.GetByIdentity:output_type -> account.users.GetByIdentityResponse
+	20, // [20:27] is the sub-list for method output_type
+	13, // [13:20] is the sub-list for method input_type
+	13, // [13:13] is the sub-list for extension type_name
+	13, // [13:13] is the sub-list for extension extendee
+	0,  // [0:13] is the sub-list for field type_name
 }
 
 func init() { file_users_users_proto_init() }
@@ -893,159 +984,13 @@ func file_users_users_proto_init() {
 	if File_users_users_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_users_users_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*User); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_users_users_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*Filter); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_users_users_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_users_users_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_users_users_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_users_users_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_users_users_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*FindRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_users_users_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*FindResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_users_users_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_users_users_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_users_users_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*GetByIdentityRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_users_users_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*GetByIdentityResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_users_users_proto_rawDesc,
 			NumEnums:      0,
-			NumMessages:   12,
+			NumMessages:   14,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
diff --git a/proto/users/users_grpc.pb.go b/proto/users/users_grpc.pb.go
index 20bc9b68..e30c9e36 100644
--- a/proto/users/users_grpc.pb.go
+++ b/proto/users/users_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: users/users.proto
 
 package users
@@ -20,6 +20,7 @@ import (
 const _ = grpc.SupportPackageIsVersion9
 
 const (
+	Users_Login_FullMethodName         = "/account.users.Users/Login"
 	Users_Create_FullMethodName        = "/account.users.Users/Create"
 	Users_Get_FullMethodName           = "/account.users.Users/Get"
 	Users_Find_FullMethodName          = "/account.users.Users/Find"
@@ -32,6 +33,11 @@ const (
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type UsersClient interface {
+	// Метод для авторизации пользователя. Возвращает информацию о пользователе
+	// Пользователь может быть авторизован в разных системах IdP, поэтому
+	// авторизация происходит по email и identity. Если для одного email есть
+	// несколько identity, то они будут объединены в одного пользователя
+	Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error)
 	// Создание пользователя или регистрация текущего пользователя в системе, если create.id == `current`
 	Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error)
 	// - Получение любого пользователя по идентификатору
@@ -58,6 +64,16 @@ func NewUsersClient(cc grpc.ClientConnInterface) UsersClient {
 	return &usersClient{cc}
 }
 
+func (c *usersClient) Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(LoginResponse)
+	err := c.cc.Invoke(ctx, Users_Login_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *usersClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
 	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CreateResponse)
@@ -122,6 +138,11 @@ func (c *usersClient) GetByIdentity(ctx context.Context, in *GetByIdentityReques
 // All implementations must embed UnimplementedUsersServer
 // for forward compatibility.
 type UsersServer interface {
+	// Метод для авторизации пользователя. Возвращает информацию о пользователе
+	// Пользователь может быть авторизован в разных системах IdP, поэтому
+	// авторизация происходит по email и identity. Если для одного email есть
+	// несколько identity, то они будут объединены в одного пользователя
+	Login(context.Context, *LoginRequest) (*LoginResponse, error)
 	// Создание пользователя или регистрация текущего пользователя в системе, если create.id == `current`
 	Create(context.Context, *CreateRequest) (*CreateResponse, error)
 	// - Получение любого пользователя по идентификатору
@@ -148,6 +169,9 @@ type UsersServer interface {
 // pointer dereference when methods are called.
 type UnimplementedUsersServer struct{}
 
+func (UnimplementedUsersServer) Login(context.Context, *LoginRequest) (*LoginResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method Login not implemented")
+}
 func (UnimplementedUsersServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
 }
@@ -187,6 +211,24 @@ func RegisterUsersServer(s grpc.ServiceRegistrar, srv UsersServer) {
 	s.RegisterService(&Users_ServiceDesc, srv)
 }
 
+func _Users_Login_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LoginRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(UsersServer).Login(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Users_Login_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(UsersServer).Login(ctx, req.(*LoginRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _Users_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(CreateRequest)
 	if err := dec(in); err != nil {
@@ -302,6 +344,10 @@ var Users_ServiceDesc = grpc.ServiceDesc{
 	ServiceName: "account.users.Users",
 	HandlerType: (*UsersServer)(nil),
 	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "Login",
+			Handler:    _Users_Login_Handler,
+		},
 		{
 			MethodName: "Create",
 			Handler:    _Users_Create_Handler,
diff --git a/proto/versions/account/versions.pb.go b/proto/versions/account/versions.pb.go
index b1c95aba..608b8065 100644
--- a/proto/versions/account/versions.pb.go
+++ b/proto/versions/account/versions.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: versions/account/versions.proto
 
 package account
@@ -32,11 +32,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_versions_account_versions_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_versions_account_versions_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -47,7 +45,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_versions_account_versions_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -126,20 +124,6 @@ func file_versions_account_versions_proto_init() {
 	if File_versions_account_versions_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_versions_account_versions_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/versions/account/versions_grpc.pb.go b/proto/versions/account/versions_grpc.pb.go
index 06fb7914..0ab55359 100644
--- a/proto/versions/account/versions_grpc.pb.go
+++ b/proto/versions/account/versions_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: versions/account/versions.proto
 
 package account
diff --git a/proto/versions/content/versions.pb.go b/proto/versions/content/versions.pb.go
index fd3d05b8..8054e083 100644
--- a/proto/versions/content/versions.pb.go
+++ b/proto/versions/content/versions.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.3
+// 	protoc-gen-go v1.35.1
+// 	protoc        v5.28.3
 // source: versions/content/versions.proto
 
 package content
@@ -32,11 +32,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_versions_content_versions_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_versions_content_versions_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -47,7 +45,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_versions_content_versions_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -126,20 +124,6 @@ func file_versions_content_versions_proto_init() {
 	if File_versions_content_versions_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_versions_content_versions_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/versions/content/versions_grpc.pb.go b/proto/versions/content/versions_grpc.pb.go
index d2afb289..0022488b 100644
--- a/proto/versions/content/versions_grpc.pb.go
+++ b/proto/versions/content/versions_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
 // - protoc-gen-go-grpc v1.5.1
-// - protoc             v5.27.3
+// - protoc             v5.28.3
 // source: versions/content/versions.proto
 
 package content
-- 
GitLab