diff --git a/perxis-proto b/perxis-proto
index 3459e1839d2a65bff0ca681b50670f4829b9546b..f954a6b764e2d0f60b911582fb28a078ebfcce93 160000
--- a/perxis-proto
+++ b/perxis-proto
@@ -1 +1 @@
-Subproject commit 3459e1839d2a65bff0ca681b50670f4829b9546b
+Subproject commit f954a6b764e2d0f60b911582fb28a078ebfcce93
diff --git a/proto/environments/environments_grpc.pb.go b/proto/environments/environments_grpc.pb.go
index 0ccbe114f6bdfd02aeb9aed7c016a62d807f935a..c71798565954f2f7cfc10b170fa34e31c1ae6abe 100644
--- a/proto/environments/environments_grpc.pb.go
+++ b/proto/environments/environments_grpc.pb.go
@@ -41,7 +41,7 @@ type EnvironmentsClient interface {
 	SetAlias(ctx context.Context, in *SetAliasRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
 	RemoveAlias(ctx context.Context, in *RemoveAliasRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
 	Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
-	// Выполнить миграцию окружения. По умолчанию выполняется в асинхронном режиме, для синхронного выполнения можно
+	// Выполнить миграцию окружения. По умолчанию выполняется в синхронном режиме, для асинхронного выполнения можно
 	// передать соответствующую настройку в опциях `MigrateRequest.options`
 	//
 	// При вызове миграции:
@@ -142,7 +142,7 @@ type EnvironmentsServer interface {
 	SetAlias(context.Context, *SetAliasRequest) (*emptypb.Empty, error)
 	RemoveAlias(context.Context, *RemoveAliasRequest) (*emptypb.Empty, error)
 	Delete(context.Context, *DeleteRequest) (*emptypb.Empty, error)
-	// Выполнить миграцию окружения. По умолчанию выполняется в асинхронном режиме, для синхронного выполнения можно
+	// Выполнить миграцию окружения. По умолчанию выполняется в синхронном режиме, для асинхронного выполнения можно
 	// передать соответствующую настройку в опциях `MigrateRequest.options`
 	//
 	// При вызове миграции:
diff --git a/proto/spaces/spaces.pb.go b/proto/spaces/spaces.pb.go
index e495f108bb1950a678a2f3ee1c02daf76f0fb939..6fb15d8af880c6a8cd39704cee97c860d210fbac 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.30.0
-// 	protoc        v3.21.12
+// 	protoc-gen-go v1.31.0
+// 	protoc        v4.23.4
 // source: spaces/spaces.proto
 
 package spaces
diff --git a/proto/spaces/spaces_grpc.pb.go b/proto/spaces/spaces_grpc.pb.go
index 757e68b152a7bc52beee9e84d7d3dfd7908819cb..f62bfa6dc1670c60e95a2d98a1db13275f43a3fe 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.2.0
-// - protoc             v3.21.12
+// - protoc-gen-go-grpc v1.3.0
+// - protoc             v4.23.4
 // source: spaces/spaces.proto
 
 package spaces
@@ -19,6 +19,19 @@ import (
 // Requires gRPC-Go v1.32.0 or later.
 const _ = grpc.SupportPackageIsVersion7
 
+const (
+	Spaces_Create_FullMethodName        = "/content.spaces.Spaces/Create"
+	Spaces_Get_FullMethodName           = "/content.spaces.Spaces/Get"
+	Spaces_List_FullMethodName          = "/content.spaces.Spaces/List"
+	Spaces_Update_FullMethodName        = "/content.spaces.Spaces/Update"
+	Spaces_UpdateConfig_FullMethodName  = "/content.spaces.Spaces/UpdateConfig"
+	Spaces_Delete_FullMethodName        = "/content.spaces.Spaces/Delete"
+	Spaces_Transfer_FullMethodName      = "/content.spaces.Spaces/Transfer"
+	Spaces_AbortTransfer_FullMethodName = "/content.spaces.Spaces/AbortTransfer"
+	Spaces_ListTransfers_FullMethodName = "/content.spaces.Spaces/ListTransfers"
+	Spaces_Move_FullMethodName          = "/content.spaces.Spaces/Move"
+)
+
 // SpacesClient is the client API for Spaces service.
 //
 // 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.
@@ -58,7 +71,7 @@ func NewSpacesClient(cc grpc.ClientConnInterface) SpacesClient {
 
 func (c *spacesClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
 	out := new(CreateResponse)
-	err := c.cc.Invoke(ctx, "/content.spaces.Spaces/Create", in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_Create_FullMethodName, in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -67,7 +80,7 @@ func (c *spacesClient) Create(ctx context.Context, in *CreateRequest, opts ...gr
 
 func (c *spacesClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, "/content.spaces.Spaces/Get", in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_Get_FullMethodName, in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -76,7 +89,7 @@ func (c *spacesClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.Cal
 
 func (c *spacesClient) List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error) {
 	out := new(ListResponse)
-	err := c.cc.Invoke(ctx, "/content.spaces.Spaces/List", in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_List_FullMethodName, in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -85,7 +98,7 @@ func (c *spacesClient) List(ctx context.Context, in *ListRequest, opts ...grpc.C
 
 func (c *spacesClient) Update(ctx context.Context, in *UpdateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, "/content.spaces.Spaces/Update", in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_Update_FullMethodName, in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -94,7 +107,7 @@ func (c *spacesClient) Update(ctx context.Context, in *UpdateRequest, opts ...gr
 
 func (c *spacesClient) UpdateConfig(ctx context.Context, in *UpdateConfigRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, "/content.spaces.Spaces/UpdateConfig", in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_UpdateConfig_FullMethodName, in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -103,7 +116,7 @@ func (c *spacesClient) UpdateConfig(ctx context.Context, in *UpdateConfigRequest
 
 func (c *spacesClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, "/content.spaces.Spaces/Delete", in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_Delete_FullMethodName, in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -112,7 +125,7 @@ func (c *spacesClient) Delete(ctx context.Context, in *DeleteRequest, opts ...gr
 
 func (c *spacesClient) Transfer(ctx context.Context, in *TransferRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, "/content.spaces.Spaces/Transfer", in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_Transfer_FullMethodName, in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -121,7 +134,7 @@ func (c *spacesClient) Transfer(ctx context.Context, in *TransferRequest, opts .
 
 func (c *spacesClient) AbortTransfer(ctx context.Context, in *AbortTransferRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, "/content.spaces.Spaces/AbortTransfer", in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_AbortTransfer_FullMethodName, in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -130,7 +143,7 @@ func (c *spacesClient) AbortTransfer(ctx context.Context, in *AbortTransferReque
 
 func (c *spacesClient) ListTransfers(ctx context.Context, in *ListTransfersRequest, opts ...grpc.CallOption) (*ListTransfersResponse, error) {
 	out := new(ListTransfersResponse)
-	err := c.cc.Invoke(ctx, "/content.spaces.Spaces/ListTransfers", in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_ListTransfers_FullMethodName, in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -139,7 +152,7 @@ func (c *spacesClient) ListTransfers(ctx context.Context, in *ListTransfersReque
 
 func (c *spacesClient) Move(ctx context.Context, in *MoveRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, "/content.spaces.Spaces/Move", in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_Move_FullMethodName, in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -233,7 +246,7 @@ func _Spaces_Create_Handler(srv interface{}, ctx context.Context, dec func(inter
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/content.spaces.Spaces/Create",
+		FullMethod: Spaces_Create_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SpacesServer).Create(ctx, req.(*CreateRequest))
@@ -251,7 +264,7 @@ func _Spaces_Get_Handler(srv interface{}, ctx context.Context, dec func(interfac
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/content.spaces.Spaces/Get",
+		FullMethod: Spaces_Get_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SpacesServer).Get(ctx, req.(*GetRequest))
@@ -269,7 +282,7 @@ func _Spaces_List_Handler(srv interface{}, ctx context.Context, dec func(interfa
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/content.spaces.Spaces/List",
+		FullMethod: Spaces_List_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SpacesServer).List(ctx, req.(*ListRequest))
@@ -287,7 +300,7 @@ func _Spaces_Update_Handler(srv interface{}, ctx context.Context, dec func(inter
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/content.spaces.Spaces/Update",
+		FullMethod: Spaces_Update_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SpacesServer).Update(ctx, req.(*UpdateRequest))
@@ -305,7 +318,7 @@ func _Spaces_UpdateConfig_Handler(srv interface{}, ctx context.Context, dec func
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/content.spaces.Spaces/UpdateConfig",
+		FullMethod: Spaces_UpdateConfig_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SpacesServer).UpdateConfig(ctx, req.(*UpdateConfigRequest))
@@ -323,7 +336,7 @@ func _Spaces_Delete_Handler(srv interface{}, ctx context.Context, dec func(inter
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/content.spaces.Spaces/Delete",
+		FullMethod: Spaces_Delete_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SpacesServer).Delete(ctx, req.(*DeleteRequest))
@@ -341,7 +354,7 @@ func _Spaces_Transfer_Handler(srv interface{}, ctx context.Context, dec func(int
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/content.spaces.Spaces/Transfer",
+		FullMethod: Spaces_Transfer_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SpacesServer).Transfer(ctx, req.(*TransferRequest))
@@ -359,7 +372,7 @@ func _Spaces_AbortTransfer_Handler(srv interface{}, ctx context.Context, dec fun
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/content.spaces.Spaces/AbortTransfer",
+		FullMethod: Spaces_AbortTransfer_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SpacesServer).AbortTransfer(ctx, req.(*AbortTransferRequest))
@@ -377,7 +390,7 @@ func _Spaces_ListTransfers_Handler(srv interface{}, ctx context.Context, dec fun
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/content.spaces.Spaces/ListTransfers",
+		FullMethod: Spaces_ListTransfers_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SpacesServer).ListTransfers(ctx, req.(*ListTransfersRequest))
@@ -395,7 +408,7 @@ func _Spaces_Move_Handler(srv interface{}, ctx context.Context, dec func(interfa
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/content.spaces.Spaces/Move",
+		FullMethod: Spaces_Move_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SpacesServer).Move(ctx, req.(*MoveRequest))