diff --git a/.gitmodules b/.gitmodules
index 79c7c1ea054bf3ed90bc0be427d1350ee0519405..343aa6dbcfdb13e695b9bae0a198d12baa573973 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,4 @@
 [submodule "perxis-proto"]
 	path = perxis-proto
 	url = https://git.perx.ru/perxis/perxis-proto.git
+
diff --git a/pkg/collections/collection.go b/pkg/collections/collection.go
index 5d58bae5bdab40b52a061ffa8462c3f3ceff1486..9cdac94e26925a6683df954237f7b79bafd4f5d7 100644
--- a/pkg/collections/collection.go
+++ b/pkg/collections/collection.go
@@ -2,6 +2,7 @@ package collections
 
 import (
 	"io/fs"
+	"strconv"
 	"time"
 
 	"git.perx.ru/perxis/perxis-go/pkg/optional"
@@ -61,8 +62,13 @@ type Collection struct {
 	System    *bool  `json:"system" bson:"system,omitempty"`         // Системная коллекция
 	NoData    *bool  `json:"no_data" bson:"no_data"`                 // Коллекция не содержит элементы. Схема используется для включения в другие схемы
 	Hidden    bool   `json:"hidden" bson:"hidden"`                   // Коллекция скрыта в административном интерфейсе
+
 	NoArchive bool   `json:"no_archive" bson:"no_archive,omitempty"` // Коллекция без архива
 
+	NoRevisions  bool          `json:"no_revisions" bson:"no_revisions,omitempty"`   // Не хранить историю изменений
+	MaxRevisions uint32        `json:"max_revisions" bson:"max_revisions,omitempty"` // Максимальное количество хранимых ревизий
+	RevisionTTL  time.Duration `json:"revision_ttl" bson:"revision_ttl,omitempty"`   // Время жизни ревизии
+
 	// Все записи коллекции считаются опубликованными, функции публикации и снятия с публикации недоступны.
 	// При включении параметра коллекции "без публикации" все записи, независимо от статуса, будут считаться опубликованными.
 	// При отключении параметра "без публикации" статусы публикации будут восстановлены.
@@ -152,6 +158,9 @@ func (c Collection) Clone() *Collection {
 		Hidden:    c.Hidden,
 		NoPublish: c.NoPublish,
 		NoArchive: c.NoArchive,
+		NoRevisions:  c.NoRevisions,
+		MaxRevisions: c.MaxRevisions,
+		RevisionTTL:  c.RevisionTTL,
 	}
 
 	if c.Single != nil {
@@ -238,6 +247,20 @@ func FromSchemaMetadata(schemas ...*schema.Schema) []*Collection {
 			coll.NoArchive = true
 		}
 
+		if noRevisions, ok := sch.Metadata["collection_no_revisions"]; ok && noRevisions == "true" {
+			coll.NoRevisions = true
+		}
+		if mr, ok := sch.Metadata["collection_max_revisions"]; ok {
+			if maxRevisions, err := strconv.ParseUint(mr, 10, 32); err == nil {
+				coll.MaxRevisions = uint32(maxRevisions)
+			}
+		}
+		if ttl, ok := sch.Metadata["collection_revisions_ttl"]; ok {
+			if revisionTTL, err := time.ParseDuration(ttl); err == nil {
+				coll.RevisionTTL = revisionTTL
+			}
+		}
+
 		if _, ok := sch.Metadata["collection_view_id"]; ok {
 			coll.View = &View{
 				SpaceID:      sch.Metadata["collection_view_space"],
diff --git a/pkg/collections/collection_test.go b/pkg/collections/collection_test.go
index 89097a2b56be8c073aa57e228209645f53f80d24..44a3ee709a25cde20f627df3e4307a4d1b3c4c26 100644
--- a/pkg/collections/collection_test.go
+++ b/pkg/collections/collection_test.go
@@ -159,6 +159,24 @@ func TestFromSchemaMetadata(t *testing.T) {
 				},
 			}},
 		},
+		{
+			name: "With metadata revisions settings",
+			schemas: []*schema.Schema{schema.New("a", field.String()).WithMetadata(
+				"collection_id", "collID",
+				"collection_name", "collName",
+				"collection_no_revisions", "true",
+				"collection_max_revisions", "10",
+				"collection_revisions_ttl", "1h",
+			)},
+			want: []*Collection{{
+				ID:           "collID",
+				Name:         "collName",
+				NoRevisions:  true,
+				MaxRevisions: 10,
+				RevisionTTL:  3600000000000,
+				Schema:       schema.New("a", field.String()).WithMetadata("collection_id", "collID", "collection_name", "collName", "collection_no_revisions", "true", "collection_max_revisions", "10", "collection_revisions_ttl", "1h"),
+			}},
+		},
 		{
 			name: "Multiple",
 			schemas: []*schema.Schema{
diff --git a/pkg/collections/transport/grpc/protobuf_type_converters.microgen.go b/pkg/collections/transport/grpc/protobuf_type_converters.microgen.go
index 948ff094824081278c352dd53fff83205b0fa218..b946a8969f863172f851a3eed83a1d1478ace45f 100644
--- a/pkg/collections/transport/grpc/protobuf_type_converters.microgen.go
+++ b/pkg/collections/transport/grpc/protobuf_type_converters.microgen.go
@@ -13,6 +13,7 @@ import (
 	pb "git.perx.ru/perxis/perxis-go/proto/collections"
 	commonpb "git.perx.ru/perxis/perxis-go/proto/common"
 	jsoniter "github.com/json-iterator/go"
+	"google.golang.org/protobuf/types/known/durationpb"
 	"google.golang.org/protobuf/types/known/timestamppb"
 )
 
@@ -61,18 +62,21 @@ func PtrCollectionToProto(coll *service.Collection) (*pb.Collection, error) {
 		}
 	}
 	protoCollection := &pb.Collection{
-		Id:        coll.ID,
-		SpaceId:   coll.SpaceID,
-		EnvId:     coll.EnvID,
-		Name:      coll.Name,
-		Single:    coll.Single,
-		System:    coll.System,
-		NoData:    coll.NoData,
-		Access:    access,
-		Hidden:    coll.Hidden,
-		NoPublish: coll.NoPublish,
-		NoArchive: coll.NoArchive,
-		Tags:      coll.Tags,
+		Id:           coll.ID,
+		SpaceId:      coll.SpaceID,
+		EnvId:        coll.EnvID,
+		Name:         coll.Name,
+		Single:       coll.Single,
+		System:       coll.System,
+		NoData:       coll.NoData,
+		Access:       access,
+		Hidden:       coll.Hidden,
+		Tags:         coll.Tags,
+		NoPublish:    coll.NoPublish,
+		NoArchive:    coll.NoArchive,
+		NoRevisions:  coll.NoRevisions,
+		MaxRevisions: coll.MaxRevisions,
+		RevisionTtl:  durationpb.New(coll.RevisionTTL),
 	}
 
 	if coll.StateInfo != nil {
@@ -127,18 +131,21 @@ func ProtoToPtrCollection(protoCollection *pb.Collection) (*service.Collection,
 		}
 	}
 	collection := &service.Collection{
-		ID:        protoCollection.Id,
-		SpaceID:   protoCollection.SpaceId,
-		EnvID:     protoCollection.EnvId,
-		Name:      protoCollection.Name,
-		Single:    protoCollection.Single,
-		System:    protoCollection.System,
-		NoData:    protoCollection.NoData,
-		Access:    access,
-		Hidden:    protoCollection.Hidden,
-		NoPublish: protoCollection.NoPublish,
-		NoArchive: protoCollection.NoArchive,
-		Tags:      protoCollection.Tags,
+		ID:           protoCollection.Id,
+		SpaceID:      protoCollection.SpaceId,
+		EnvID:        protoCollection.EnvId,
+		Name:         protoCollection.Name,
+		Single:       protoCollection.Single,
+		System:       protoCollection.System,
+		NoData:       protoCollection.NoData,
+		Access:       access,
+		Hidden:       protoCollection.Hidden,
+		Tags:         protoCollection.Tags,
+		NoPublish:    protoCollection.NoPublish,
+		NoArchive:    protoCollection.NoArchive,
+		NoRevisions:  protoCollection.NoRevisions,
+		MaxRevisions: protoCollection.MaxRevisions,
+		RevisionTTL:  protoCollection.RevisionTtl.AsDuration(),
 	}
 
 	if protoCollection.StateInfo != nil {
diff --git a/pkg/items/mocks/Storage.go b/pkg/items/mocks/Storage.go
index c8add5d9b0011ad5ad46923b1f3fe215ad45baf1..4ce04d02d6985f5e4da86137d74763999da02136 100644
--- a/pkg/items/mocks/Storage.go
+++ b/pkg/items/mocks/Storage.go
@@ -1,4 +1,4 @@
-// Code generated by mockery v2.40.3. DO NOT EDIT.
+// Code generated by mockery v2.45.0. DO NOT EDIT.
 
 package mocks
 
@@ -136,6 +136,24 @@ func (_m *Storage) ChangeRevisionsItemID(ctx context.Context, spaceId string, en
 	return r0
 }
 
+// CleanUpRevisions provides a mock function with given fields: ctx, coll, itemId
+func (_m *Storage) CleanUpRevisions(ctx context.Context, coll *collections.Collection, itemId string) error {
+	ret := _m.Called(ctx, coll, itemId)
+
+	if len(ret) == 0 {
+		panic("no return value specified for CleanUpRevisions")
+	}
+
+	var r0 error
+	if rf, ok := ret.Get(0).(func(context.Context, *collections.Collection, string) error); ok {
+		r0 = rf(ctx, coll, itemId)
+	} else {
+		r0 = ret.Error(0)
+	}
+
+	return r0
+}
+
 // Copy provides a mock function with given fields: ctx, src, dst, itemSets
 func (_m *Storage) Copy(ctx context.Context, src *collections.Collection, dst *collections.Collection, itemSets ...string) error {
 	_va := make([]interface{}, len(itemSets))
diff --git a/pkg/items/storage.go b/pkg/items/storage.go
index 2c2d041f8944a69093a5a401f102b294ec9a2071..f673e92290e22cd3ab28f25f1b1d5d35ad84bdde 100644
--- a/pkg/items/storage.go
+++ b/pkg/items/storage.go
@@ -71,6 +71,9 @@ type Storage interface {
 	// RemovePublished - удаление записи из коллекций Published
 	RemovePublished(ctx context.Context, spaceId, envId, collectionId, itemId string, options ...*DeleteOptions) error
 
+	// CleanUpRevisions - очистка ревизий элемента, согласно настройкам лимитов для ревизий в коллекции
+	CleanUpRevisions(ctx context.Context, coll *collections.Collection, itemId string) error
+
 	// RemoveRevisions - удаление записи из всех ревизий элемента
 	RemoveRevisions(ctx context.Context, spaceId, envId, collectionId, itemId string, options ...*DeleteOptions) error
 
diff --git a/proto/clients/clients.pb.go b/proto/clients/clients.pb.go
index a492dbad2bd2bfa0dd320e869f28f9b1ea5146fd..250cdd86d74dd1bf53f58b9c56109e270b25443f 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: clients/clients.proto
 
 package clients
@@ -1026,7 +1026,7 @@ func file_clients_clients_proto_rawDescGZIP() []byte {
 }
 
 var file_clients_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
-var file_clients_clients_proto_goTypes = []interface{}{
+var file_clients_clients_proto_goTypes = []any{
 	(*Client)(nil),         // 0: content.clients.Client
 	(*CreateRequest)(nil),  // 1: content.clients.CreateRequest
 	(*CreateResponse)(nil), // 2: content.clients.CreateResponse
@@ -1081,7 +1081,7 @@ func file_clients_clients_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_clients_clients_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Client); i {
 			case 0:
 				return &v.state
@@ -1093,7 +1093,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateRequest); i {
 			case 0:
 				return &v.state
@@ -1105,7 +1105,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateResponse); i {
 			case 0:
 				return &v.state
@@ -1117,7 +1117,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*GetRequest); i {
 			case 0:
 				return &v.state
@@ -1129,7 +1129,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*GetResponse); i {
 			case 0:
 				return &v.state
@@ -1141,7 +1141,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*GetByRequest); i {
 			case 0:
 				return &v.state
@@ -1153,7 +1153,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*GetByResponse); i {
 			case 0:
 				return &v.state
@@ -1165,7 +1165,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[7].Exporter = func(v any, i int) any {
 			switch v := v.(*UpdateRequest); i {
 			case 0:
 				return &v.state
@@ -1177,7 +1177,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[8].Exporter = func(v any, i int) any {
 			switch v := v.(*ListRequest); i {
 			case 0:
 				return &v.state
@@ -1189,7 +1189,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[9].Exporter = func(v any, i int) any {
 			switch v := v.(*ListResponse); i {
 			case 0:
 				return &v.state
@@ -1201,7 +1201,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[10].Exporter = func(v any, i int) any {
 			switch v := v.(*DeleteRequest); i {
 			case 0:
 				return &v.state
@@ -1213,7 +1213,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[11].Exporter = func(v any, i int) any {
 			switch v := v.(*EnableRequest); i {
 			case 0:
 				return &v.state
@@ -1225,7 +1225,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[12].Exporter = func(v any, i int) any {
 			switch v := v.(*Client_OAuth); i {
 			case 0:
 				return &v.state
@@ -1237,7 +1237,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[13].Exporter = func(v any, i int) any {
 			switch v := v.(*Client_APIKey); i {
 			case 0:
 				return &v.state
@@ -1249,7 +1249,7 @@ func file_clients_clients_proto_init() {
 				return nil
 			}
 		}
-		file_clients_clients_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+		file_clients_clients_proto_msgTypes[14].Exporter = func(v any, i int) any {
 			switch v := v.(*Client_TLS); i {
 			case 0:
 				return &v.state
@@ -1262,7 +1262,7 @@ func file_clients_clients_proto_init() {
 			}
 		}
 	}
-	file_clients_clients_proto_msgTypes[0].OneofWrappers = []interface{}{}
+	file_clients_clients_proto_msgTypes[0].OneofWrappers = []any{}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/clients/clients_grpc.pb.go b/proto/clients/clients_grpc.pb.go
index f8fdf0cda264fa6e99aa20ecf495050dc1231fc7..b2e006de4d8bed8870a7094a63fafde21cff5e5c 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.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: clients/clients.proto
 
 package clients
@@ -16,8 +16,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Clients_Create_FullMethodName = "/content.clients.Clients/Create"
@@ -58,8 +58,9 @@ func NewClientsClient(cc grpc.ClientConnInterface) ClientsClient {
 }
 
 func (c *clientsClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CreateResponse)
-	err := c.cc.Invoke(ctx, Clients_Create_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Clients_Create_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -67,8 +68,9 @@ func (c *clientsClient) Create(ctx context.Context, in *CreateRequest, opts ...g
 }
 
 func (c *clientsClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, Clients_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Clients_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -76,8 +78,9 @@ func (c *clientsClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.Ca
 }
 
 func (c *clientsClient) GetBy(ctx context.Context, in *GetByRequest, opts ...grpc.CallOption) (*GetByResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetByResponse)
-	err := c.cc.Invoke(ctx, Clients_GetBy_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Clients_GetBy_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -85,8 +88,9 @@ func (c *clientsClient) GetBy(ctx context.Context, in *GetByRequest, opts ...grp
 }
 
 func (c *clientsClient) Update(ctx context.Context, in *UpdateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Clients_Update_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Clients_Update_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -94,8 +98,9 @@ func (c *clientsClient) Update(ctx context.Context, in *UpdateRequest, opts ...g
 }
 
 func (c *clientsClient) List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListResponse)
-	err := c.cc.Invoke(ctx, Clients_List_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Clients_List_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -103,8 +108,9 @@ func (c *clientsClient) List(ctx context.Context, in *ListRequest, opts ...grpc.
 }
 
 func (c *clientsClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Clients_Delete_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Clients_Delete_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -112,8 +118,9 @@ func (c *clientsClient) Delete(ctx context.Context, in *DeleteRequest, opts ...g
 }
 
 func (c *clientsClient) Enable(ctx context.Context, in *EnableRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Clients_Enable_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Clients_Enable_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -122,7 +129,7 @@ func (c *clientsClient) Enable(ctx context.Context, in *EnableRequest, opts ...g
 
 // ClientsServer is the server API for Clients service.
 // All implementations must embed UnimplementedClientsServer
-// for forward compatibility
+// for forward compatibility.
 type ClientsServer interface {
 	// Create - создает клиента (приложение) для работы с API
 	Create(context.Context, *CreateRequest) (*CreateResponse, error)
@@ -141,9 +148,12 @@ type ClientsServer interface {
 	mustEmbedUnimplementedClientsServer()
 }
 
-// UnimplementedClientsServer must be embedded to have forward compatible implementations.
-type UnimplementedClientsServer struct {
-}
+// UnimplementedClientsServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedClientsServer struct{}
 
 func (UnimplementedClientsServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
@@ -167,6 +177,7 @@ func (UnimplementedClientsServer) Enable(context.Context, *EnableRequest) (*empt
 	return nil, status.Errorf(codes.Unimplemented, "method Enable not implemented")
 }
 func (UnimplementedClientsServer) mustEmbedUnimplementedClientsServer() {}
+func (UnimplementedClientsServer) testEmbeddedByValue()                 {}
 
 // UnsafeClientsServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to ClientsServer will
@@ -176,6 +187,13 @@ type UnsafeClientsServer interface {
 }
 
 func RegisterClientsServer(s grpc.ServiceRegistrar, srv ClientsServer) {
+	// If the following call pancis, it indicates UnimplementedClientsServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Clients_ServiceDesc, srv)
 }
 
diff --git a/proto/collaborators/collaborators.pb.go b/proto/collaborators/collaborators.pb.go
index e07247b5dce02708390f23a576462dcb965b772d..bb3aad637b6f28510d386714eac5698a6451d484 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: collaborators/collaborators.proto
 
 package collaborators
@@ -521,7 +521,7 @@ func file_collaborators_collaborators_proto_rawDescGZIP() []byte {
 }
 
 var file_collaborators_collaborators_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
-var file_collaborators_collaborators_proto_goTypes = []interface{}{
+var file_collaborators_collaborators_proto_goTypes = []any{
 	(*SetRequest)(nil),                // 0: content.collaborators.SetRequest
 	(*GetRequest)(nil),                // 1: content.collaborators.GetRequest
 	(*GetResponse)(nil),               // 2: content.collaborators.GetResponse
@@ -559,7 +559,7 @@ func file_collaborators_collaborators_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_collaborators_collaborators_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_collaborators_collaborators_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*SetRequest); i {
 			case 0:
 				return &v.state
@@ -571,7 +571,7 @@ func file_collaborators_collaborators_proto_init() {
 				return nil
 			}
 		}
-		file_collaborators_collaborators_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_collaborators_collaborators_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*GetRequest); i {
 			case 0:
 				return &v.state
@@ -583,7 +583,7 @@ func file_collaborators_collaborators_proto_init() {
 				return nil
 			}
 		}
-		file_collaborators_collaborators_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_collaborators_collaborators_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*GetResponse); i {
 			case 0:
 				return &v.state
@@ -595,7 +595,7 @@ func file_collaborators_collaborators_proto_init() {
 				return nil
 			}
 		}
-		file_collaborators_collaborators_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_collaborators_collaborators_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*RemoveRequest); i {
 			case 0:
 				return &v.state
@@ -607,7 +607,7 @@ func file_collaborators_collaborators_proto_init() {
 				return nil
 			}
 		}
-		file_collaborators_collaborators_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_collaborators_collaborators_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*ListCollaboratorsRequest); i {
 			case 0:
 				return &v.state
@@ -619,7 +619,7 @@ func file_collaborators_collaborators_proto_init() {
 				return nil
 			}
 		}
-		file_collaborators_collaborators_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_collaborators_collaborators_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*ListCollaboratorsResponse); i {
 			case 0:
 				return &v.state
@@ -631,7 +631,7 @@ func file_collaborators_collaborators_proto_init() {
 				return nil
 			}
 		}
-		file_collaborators_collaborators_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_collaborators_collaborators_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*ListSpacesRequest); i {
 			case 0:
 				return &v.state
@@ -643,7 +643,7 @@ func file_collaborators_collaborators_proto_init() {
 				return nil
 			}
 		}
-		file_collaborators_collaborators_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_collaborators_collaborators_proto_msgTypes[7].Exporter = func(v any, i int) any {
 			switch v := v.(*ListSpacesResponse); i {
 			case 0:
 				return &v.state
diff --git a/proto/collaborators/collaborators_grpc.pb.go b/proto/collaborators/collaborators_grpc.pb.go
index 47ff522c1b57c72665fbca4741f698e6bb97b80f..85262442d0f9389cbb258cca420b8eb757b5df1f 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.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: collaborators/collaborators.proto
 
 package collaborators
@@ -16,8 +16,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Collaborators_Set_FullMethodName               = "/content.collaborators.Collaborators/Set"
@@ -47,8 +47,9 @@ func NewCollaboratorsClient(cc grpc.ClientConnInterface) CollaboratorsClient {
 }
 
 func (c *collaboratorsClient) Set(ctx context.Context, in *SetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Collaborators_Set_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Collaborators_Set_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -56,8 +57,9 @@ func (c *collaboratorsClient) Set(ctx context.Context, in *SetRequest, opts ...g
 }
 
 func (c *collaboratorsClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, Collaborators_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Collaborators_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -65,8 +67,9 @@ func (c *collaboratorsClient) Get(ctx context.Context, in *GetRequest, opts ...g
 }
 
 func (c *collaboratorsClient) Remove(ctx context.Context, in *RemoveRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Collaborators_Remove_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Collaborators_Remove_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -74,8 +77,9 @@ func (c *collaboratorsClient) Remove(ctx context.Context, in *RemoveRequest, opt
 }
 
 func (c *collaboratorsClient) ListCollaborators(ctx context.Context, in *ListCollaboratorsRequest, opts ...grpc.CallOption) (*ListCollaboratorsResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListCollaboratorsResponse)
-	err := c.cc.Invoke(ctx, Collaborators_ListCollaborators_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Collaborators_ListCollaborators_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -83,8 +87,9 @@ func (c *collaboratorsClient) ListCollaborators(ctx context.Context, in *ListCol
 }
 
 func (c *collaboratorsClient) ListSpaces(ctx context.Context, in *ListSpacesRequest, opts ...grpc.CallOption) (*ListSpacesResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListSpacesResponse)
-	err := c.cc.Invoke(ctx, Collaborators_ListSpaces_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Collaborators_ListSpaces_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -93,7 +98,7 @@ func (c *collaboratorsClient) ListSpaces(ctx context.Context, in *ListSpacesRequ
 
 // CollaboratorsServer is the server API for Collaborators service.
 // All implementations must embed UnimplementedCollaboratorsServer
-// for forward compatibility
+// for forward compatibility.
 type CollaboratorsServer interface {
 	Set(context.Context, *SetRequest) (*emptypb.Empty, error)
 	Get(context.Context, *GetRequest) (*GetResponse, error)
@@ -103,9 +108,12 @@ type CollaboratorsServer interface {
 	mustEmbedUnimplementedCollaboratorsServer()
 }
 
-// UnimplementedCollaboratorsServer must be embedded to have forward compatible implementations.
-type UnimplementedCollaboratorsServer struct {
-}
+// UnimplementedCollaboratorsServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedCollaboratorsServer struct{}
 
 func (UnimplementedCollaboratorsServer) Set(context.Context, *SetRequest) (*emptypb.Empty, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Set not implemented")
@@ -123,6 +131,7 @@ func (UnimplementedCollaboratorsServer) ListSpaces(context.Context, *ListSpacesR
 	return nil, status.Errorf(codes.Unimplemented, "method ListSpaces not implemented")
 }
 func (UnimplementedCollaboratorsServer) mustEmbedUnimplementedCollaboratorsServer() {}
+func (UnimplementedCollaboratorsServer) testEmbeddedByValue()                       {}
 
 // UnsafeCollaboratorsServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to CollaboratorsServer will
@@ -132,6 +141,13 @@ type UnsafeCollaboratorsServer interface {
 }
 
 func RegisterCollaboratorsServer(s grpc.ServiceRegistrar, srv CollaboratorsServer) {
+	// If the following call pancis, it indicates UnimplementedCollaboratorsServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Collaborators_ServiceDesc, srv)
 }
 
diff --git a/proto/common/common.pb.go b/proto/common/common.pb.go
index ea585fe3435096d877fa4bbc3649fe96a4b0649f..3495031fb399fabaa59992460d63f40654e69f3e 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        v4.25.1
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: common/common.proto
 
 package common
@@ -125,6 +125,9 @@ func (Action) EnumDescriptor() ([]byte, []int) {
 	return file_common_common_proto_rawDescGZIP(), []int{1}
 }
 
+// Deprecated
+// Поддержка этой реализации фильтра осталась только в запросе поиска записей (Items.Find)
+// Возможно, его поддержка будет прекращена в следующих версиях системы
 type Filter struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -639,7 +642,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
@@ -666,7 +669,7 @@ func file_common_common_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_common_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_common_common_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Filter); i {
 			case 0:
 				return &v.state
@@ -678,7 +681,7 @@ func file_common_common_proto_init() {
 				return nil
 			}
 		}
-		file_common_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_common_common_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*FindOptions); i {
 			case 0:
 				return &v.state
@@ -690,7 +693,7 @@ func file_common_common_proto_init() {
 				return nil
 			}
 		}
-		file_common_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_common_common_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*Rule); i {
 			case 0:
 				return &v.state
@@ -702,7 +705,7 @@ func file_common_common_proto_init() {
 				return nil
 			}
 		}
-		file_common_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_common_common_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*Collaborator); i {
 			case 0:
 				return &v.state
@@ -714,7 +717,7 @@ func file_common_common_proto_init() {
 				return nil
 			}
 		}
-		file_common_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_common_common_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*Version); i {
 			case 0:
 				return &v.state
diff --git a/proto/common/error.pb.go b/proto/common/error.pb.go
index 444bea97b4c027067c4675b3d606a3f9c85f64b8..6eeb8c55eed7f7c04c9882dc2f8d8537da01b4be 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: common/error.proto
 
 package common
@@ -556,7 +556,7 @@ func file_common_error_proto_rawDescGZIP() []byte {
 }
 
 var file_common_error_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
-var file_common_error_proto_goTypes = []interface{}{
+var file_common_error_proto_goTypes = []any{
 	(*Error)(nil),                           // 0: common.Error
 	(*Error_BadRequest)(nil),                // 1: common.Error.BadRequest
 	(*Error_Help)(nil),                      // 2: common.Error.Help
@@ -588,7 +588,7 @@ func file_common_error_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_common_error_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_common_error_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Error); i {
 			case 0:
 				return &v.state
@@ -600,7 +600,7 @@ func file_common_error_proto_init() {
 				return nil
 			}
 		}
-		file_common_error_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_common_error_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*Error_BadRequest); i {
 			case 0:
 				return &v.state
@@ -612,7 +612,7 @@ func file_common_error_proto_init() {
 				return nil
 			}
 		}
-		file_common_error_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_common_error_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*Error_Help); i {
 			case 0:
 				return &v.state
@@ -624,7 +624,7 @@ func file_common_error_proto_init() {
 				return nil
 			}
 		}
-		file_common_error_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_common_error_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*Error_DebugInfo); i {
 			case 0:
 				return &v.state
@@ -636,7 +636,7 @@ func file_common_error_proto_init() {
 				return nil
 			}
 		}
-		file_common_error_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_common_error_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*Error_LocalizedMessage); i {
 			case 0:
 				return &v.state
@@ -648,7 +648,7 @@ func file_common_error_proto_init() {
 				return nil
 			}
 		}
-		file_common_error_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		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
@@ -660,7 +660,7 @@ func file_common_error_proto_init() {
 				return nil
 			}
 		}
-		file_common_error_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		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
diff --git a/proto/common/operation.pb.go b/proto/common/operation.pb.go
index fd84dde80f2875d3282987fb19e8df17aabed780..3f72af24932eec58d77f558c988e5e197605198e 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: common/operation.proto
 
 package common
@@ -224,7 +224,7 @@ func file_common_operation_proto_rawDescGZIP() []byte {
 }
 
 var file_common_operation_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_common_operation_proto_goTypes = []interface{}{
+var file_common_operation_proto_goTypes = []any{
 	(*Operation)(nil),             // 0: common.Operation
 	(*timestamppb.Timestamp)(nil), // 1: google.protobuf.Timestamp
 	(*anypb.Any)(nil),             // 2: google.protobuf.Any
@@ -250,7 +250,7 @@ func file_common_operation_proto_init() {
 	}
 	file_common_error_proto_init()
 	if !protoimpl.UnsafeEnabled {
-		file_common_operation_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_common_operation_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Operation); i {
 			case 0:
 				return &v.state
@@ -263,7 +263,7 @@ func file_common_operation_proto_init() {
 			}
 		}
 	}
-	file_common_operation_proto_msgTypes[0].OneofWrappers = []interface{}{
+	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 93876246a4f69845688755a3a88bfde6330cbcd7..d0bd8e57acdc3298dbf9841feef256978805dd07 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: common/operation_service.proto
 
 package common
@@ -159,7 +159,7 @@ func file_common_operation_service_proto_rawDescGZIP() []byte {
 }
 
 var file_common_operation_service_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_common_operation_service_proto_goTypes = []interface{}{
+var file_common_operation_service_proto_goTypes = []any{
 	(*GetOperationRequest)(nil),    // 0: common.GetOperationRequest
 	(*CancelOperationRequest)(nil), // 1: common.CancelOperationRequest
 	(*Operation)(nil),              // 2: common.Operation
@@ -184,7 +184,7 @@ 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 interface{}, i int) interface{} {
+		file_common_operation_service_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*GetOperationRequest); i {
 			case 0:
 				return &v.state
@@ -196,7 +196,7 @@ func file_common_operation_service_proto_init() {
 				return nil
 			}
 		}
-		file_common_operation_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_common_operation_service_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*CancelOperationRequest); i {
 			case 0:
 				return &v.state
diff --git a/proto/common/operation_service_grpc.pb.go b/proto/common/operation_service_grpc.pb.go
index d323b0be496411363ba80de50f70246382663307..ff590c80c97d7d31863c2643c93bb359c3bfec92 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.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: common/operation_service.proto
 
 package common
@@ -15,8 +15,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	OperationService_Get_FullMethodName    = "/common.OperationService/Get"
@@ -42,8 +42,9 @@ func NewOperationServiceClient(cc grpc.ClientConnInterface) OperationServiceClie
 }
 
 func (c *operationServiceClient) Get(ctx context.Context, in *GetOperationRequest, opts ...grpc.CallOption) (*Operation, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(Operation)
-	err := c.cc.Invoke(ctx, OperationService_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, OperationService_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -51,8 +52,9 @@ func (c *operationServiceClient) Get(ctx context.Context, in *GetOperationReques
 }
 
 func (c *operationServiceClient) Cancel(ctx context.Context, in *CancelOperationRequest, opts ...grpc.CallOption) (*Operation, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(Operation)
-	err := c.cc.Invoke(ctx, OperationService_Cancel_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, OperationService_Cancel_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -61,7 +63,7 @@ func (c *operationServiceClient) Cancel(ctx context.Context, in *CancelOperation
 
 // OperationServiceServer is the server API for OperationService service.
 // All implementations must embed UnimplementedOperationServiceServer
-// for forward compatibility
+// for forward compatibility.
 type OperationServiceServer interface {
 	// Возвращает статус операции и ее результат, если она завершена
 	Get(context.Context, *GetOperationRequest) (*Operation, error)
@@ -70,9 +72,12 @@ type OperationServiceServer interface {
 	mustEmbedUnimplementedOperationServiceServer()
 }
 
-// UnimplementedOperationServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedOperationServiceServer struct {
-}
+// UnimplementedOperationServiceServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedOperationServiceServer struct{}
 
 func (UnimplementedOperationServiceServer) Get(context.Context, *GetOperationRequest) (*Operation, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
@@ -81,6 +86,7 @@ func (UnimplementedOperationServiceServer) Cancel(context.Context, *CancelOperat
 	return nil, status.Errorf(codes.Unimplemented, "method Cancel not implemented")
 }
 func (UnimplementedOperationServiceServer) mustEmbedUnimplementedOperationServiceServer() {}
+func (UnimplementedOperationServiceServer) testEmbeddedByValue()                          {}
 
 // UnsafeOperationServiceServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to OperationServiceServer will
@@ -90,6 +96,13 @@ type UnsafeOperationServiceServer interface {
 }
 
 func RegisterOperationServiceServer(s grpc.ServiceRegistrar, srv OperationServiceServer) {
+	// If the following call pancis, it indicates UnimplementedOperationServiceServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&OperationService_ServiceDesc, srv)
 }
 
diff --git a/proto/common/validation.pb.go b/proto/common/validation.pb.go
index cca43ab540da1592a3bb4c21a91ba2be6f1d22bb..8fe6a0c097dea4ef9b71217c94dbbd309de0f55d 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: common/validation.proto
 
 package common
@@ -251,7 +251,7 @@ func file_common_validation_proto_rawDescGZIP() []byte {
 }
 
 var file_common_validation_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_common_validation_proto_goTypes = []interface{}{
+var file_common_validation_proto_goTypes = []any{
 	(*MapKeySpec)(nil),                // 0: common.MapKeySpec
 	(*descriptorpb.OneofOptions)(nil), // 1: google.protobuf.OneofOptions
 	(*descriptorpb.FieldOptions)(nil), // 2: google.protobuf.FieldOptions
@@ -280,7 +280,7 @@ func file_common_validation_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_common_validation_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_common_validation_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*MapKeySpec); i {
 			case 0:
 				return &v.state
diff --git a/proto/delivery/delivery.pb.go b/proto/delivery/delivery.pb.go
index a8673b3e6f8ded57f397a25ca78ae7538d3351ee..81f70e6644e803bf9e33bcce1f6f1d5ea1d73cf7 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: delivery/delivery.proto
 
 package delivery
@@ -1144,7 +1144,7 @@ func file_delivery_delivery_proto_rawDescGZIP() []byte {
 }
 
 var file_delivery_delivery_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
-var file_delivery_delivery_proto_goTypes = []interface{}{
+var file_delivery_delivery_proto_goTypes = []any{
 	(*ListLocalesRequest)(nil),         // 0: delivery.ListLocalesRequest
 	(*ListLocalesResponse)(nil),        // 1: delivery.ListLocalesResponse
 	(*GetEnvironmentRequest)(nil),      // 2: delivery.GetEnvironmentRequest
@@ -1216,7 +1216,7 @@ func file_delivery_delivery_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_delivery_delivery_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*ListLocalesRequest); i {
 			case 0:
 				return &v.state
@@ -1228,7 +1228,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*ListLocalesResponse); i {
 			case 0:
 				return &v.state
@@ -1240,7 +1240,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*GetEnvironmentRequest); i {
 			case 0:
 				return &v.state
@@ -1252,7 +1252,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*GetEnvironmentResponse); i {
 			case 0:
 				return &v.state
@@ -1264,7 +1264,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*ListEnvironmentsRequest); i {
 			case 0:
 				return &v.state
@@ -1276,7 +1276,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*ListEnvironmentsResponse); i {
 			case 0:
 				return &v.state
@@ -1288,7 +1288,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*GetCollectionRequest); i {
 			case 0:
 				return &v.state
@@ -1300,7 +1300,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[7].Exporter = func(v any, i int) any {
 			switch v := v.(*GetCollectionResponse); i {
 			case 0:
 				return &v.state
@@ -1312,7 +1312,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[8].Exporter = func(v any, i int) any {
 			switch v := v.(*ListCollectionsRequest); i {
 			case 0:
 				return &v.state
@@ -1324,7 +1324,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[9].Exporter = func(v any, i int) any {
 			switch v := v.(*ListCollectionsResponse); i {
 			case 0:
 				return &v.state
@@ -1336,7 +1336,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[10].Exporter = func(v any, i int) any {
 			switch v := v.(*GetItemRequest); i {
 			case 0:
 				return &v.state
@@ -1348,7 +1348,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[11].Exporter = func(v any, i int) any {
 			switch v := v.(*GetItemResponse); i {
 			case 0:
 				return &v.state
@@ -1360,7 +1360,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[12].Exporter = func(v any, i int) any {
 			switch v := v.(*FindItemsRequest); i {
 			case 0:
 				return &v.state
@@ -1372,7 +1372,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[13].Exporter = func(v any, i int) any {
 			switch v := v.(*FindItemsResponse); i {
 			case 0:
 				return &v.state
@@ -1384,7 +1384,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[14].Exporter = func(v any, i int) any {
 			switch v := v.(*AggregateOptions); i {
 			case 0:
 				return &v.state
@@ -1396,7 +1396,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[15].Exporter = func(v any, i int) any {
 			switch v := v.(*AggregateRequest); i {
 			case 0:
 				return &v.state
@@ -1408,7 +1408,7 @@ func file_delivery_delivery_proto_init() {
 				return nil
 			}
 		}
-		file_delivery_delivery_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
+		file_delivery_delivery_proto_msgTypes[16].Exporter = func(v any, i int) any {
 			switch v := v.(*AggregateResponse); i {
 			case 0:
 				return &v.state
diff --git a/proto/delivery/delivery_grpc.pb.go b/proto/delivery/delivery_grpc.pb.go
index 3840ca0fc32236f38b8c92eac59c56994996be23..a0a14e9b14e4cc3d0fb7e1bfeb0d418b708b998d 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.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: delivery/delivery.proto
 
 package delivery
@@ -15,8 +15,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Delivery_ListLocales_FullMethodName      = "/delivery.Delivery/ListLocales"
@@ -52,8 +52,9 @@ func NewDeliveryClient(cc grpc.ClientConnInterface) DeliveryClient {
 }
 
 func (c *deliveryClient) ListLocales(ctx context.Context, in *ListLocalesRequest, opts ...grpc.CallOption) (*ListLocalesResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListLocalesResponse)
-	err := c.cc.Invoke(ctx, Delivery_ListLocales_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Delivery_ListLocales_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -61,8 +62,9 @@ func (c *deliveryClient) ListLocales(ctx context.Context, in *ListLocalesRequest
 }
 
 func (c *deliveryClient) GetEnvironment(ctx context.Context, in *GetEnvironmentRequest, opts ...grpc.CallOption) (*GetEnvironmentResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetEnvironmentResponse)
-	err := c.cc.Invoke(ctx, Delivery_GetEnvironment_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Delivery_GetEnvironment_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -70,8 +72,9 @@ func (c *deliveryClient) GetEnvironment(ctx context.Context, in *GetEnvironmentR
 }
 
 func (c *deliveryClient) ListEnvironments(ctx context.Context, in *ListEnvironmentsRequest, opts ...grpc.CallOption) (*ListEnvironmentsResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListEnvironmentsResponse)
-	err := c.cc.Invoke(ctx, Delivery_ListEnvironments_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Delivery_ListEnvironments_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -79,8 +82,9 @@ func (c *deliveryClient) ListEnvironments(ctx context.Context, in *ListEnvironme
 }
 
 func (c *deliveryClient) GetCollection(ctx context.Context, in *GetCollectionRequest, opts ...grpc.CallOption) (*GetCollectionResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetCollectionResponse)
-	err := c.cc.Invoke(ctx, Delivery_GetCollection_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Delivery_GetCollection_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -88,8 +92,9 @@ func (c *deliveryClient) GetCollection(ctx context.Context, in *GetCollectionReq
 }
 
 func (c *deliveryClient) ListCollections(ctx context.Context, in *ListCollectionsRequest, opts ...grpc.CallOption) (*ListCollectionsResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListCollectionsResponse)
-	err := c.cc.Invoke(ctx, Delivery_ListCollections_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Delivery_ListCollections_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -97,8 +102,9 @@ func (c *deliveryClient) ListCollections(ctx context.Context, in *ListCollection
 }
 
 func (c *deliveryClient) GetItem(ctx context.Context, in *GetItemRequest, opts ...grpc.CallOption) (*GetItemResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetItemResponse)
-	err := c.cc.Invoke(ctx, Delivery_GetItem_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Delivery_GetItem_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -106,8 +112,9 @@ func (c *deliveryClient) GetItem(ctx context.Context, in *GetItemRequest, opts .
 }
 
 func (c *deliveryClient) FindItems(ctx context.Context, in *FindItemsRequest, opts ...grpc.CallOption) (*FindItemsResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(FindItemsResponse)
-	err := c.cc.Invoke(ctx, Delivery_FindItems_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Delivery_FindItems_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -115,8 +122,9 @@ func (c *deliveryClient) FindItems(ctx context.Context, in *FindItemsRequest, op
 }
 
 func (c *deliveryClient) Aggregate(ctx context.Context, in *AggregateRequest, opts ...grpc.CallOption) (*AggregateResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(AggregateResponse)
-	err := c.cc.Invoke(ctx, Delivery_Aggregate_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Delivery_Aggregate_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -125,7 +133,7 @@ func (c *deliveryClient) Aggregate(ctx context.Context, in *AggregateRequest, op
 
 // DeliveryServer is the server API for Delivery service.
 // All implementations must embed UnimplementedDeliveryServer
-// for forward compatibility
+// for forward compatibility.
 type DeliveryServer interface {
 	ListLocales(context.Context, *ListLocalesRequest) (*ListLocalesResponse, error)
 	GetEnvironment(context.Context, *GetEnvironmentRequest) (*GetEnvironmentResponse, error)
@@ -138,9 +146,12 @@ type DeliveryServer interface {
 	mustEmbedUnimplementedDeliveryServer()
 }
 
-// UnimplementedDeliveryServer must be embedded to have forward compatible implementations.
-type UnimplementedDeliveryServer struct {
-}
+// UnimplementedDeliveryServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedDeliveryServer struct{}
 
 func (UnimplementedDeliveryServer) ListLocales(context.Context, *ListLocalesRequest) (*ListLocalesResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ListLocales not implemented")
@@ -167,6 +178,7 @@ func (UnimplementedDeliveryServer) Aggregate(context.Context, *AggregateRequest)
 	return nil, status.Errorf(codes.Unimplemented, "method Aggregate not implemented")
 }
 func (UnimplementedDeliveryServer) mustEmbedUnimplementedDeliveryServer() {}
+func (UnimplementedDeliveryServer) testEmbeddedByValue()                  {}
 
 // UnsafeDeliveryServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to DeliveryServer will
@@ -176,6 +188,13 @@ type UnsafeDeliveryServer interface {
 }
 
 func RegisterDeliveryServer(s grpc.ServiceRegistrar, srv DeliveryServer) {
+	// If the following call pancis, it indicates UnimplementedDeliveryServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Delivery_ServiceDesc, srv)
 }
 
diff --git a/proto/environments/environments.pb.go b/proto/environments/environments.pb.go
index 8dd2d620cd51e0df031c738d8409585481974062..9bff8500c7c303f5cbeec05f36d3ce4c24809b47 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: environments/environments.proto
 
 package environments
@@ -1082,7 +1082,7 @@ func file_environments_environments_proto_rawDescGZIP() []byte {
 
 var file_environments_environments_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
 var file_environments_environments_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
-var file_environments_environments_proto_goTypes = []interface{}{
+var file_environments_environments_proto_goTypes = []any{
 	(StateInfo_State)(0),          // 0: content.environments.StateInfo.State
 	(*Environment)(nil),           // 1: content.environments.Environment
 	(*StateInfo)(nil),             // 2: content.environments.StateInfo
@@ -1142,7 +1142,7 @@ func file_environments_environments_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_environments_environments_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Environment); i {
 			case 0:
 				return &v.state
@@ -1154,7 +1154,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*StateInfo); i {
 			case 0:
 				return &v.state
@@ -1166,7 +1166,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*Config); i {
 			case 0:
 				return &v.state
@@ -1178,7 +1178,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateRequest); i {
 			case 0:
 				return &v.state
@@ -1190,7 +1190,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateResponse); i {
 			case 0:
 				return &v.state
@@ -1202,7 +1202,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*ListRequest); i {
 			case 0:
 				return &v.state
@@ -1214,7 +1214,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*ListResponse); i {
 			case 0:
 				return &v.state
@@ -1226,7 +1226,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[7].Exporter = func(v any, i int) any {
 			switch v := v.(*GetRequest); i {
 			case 0:
 				return &v.state
@@ -1238,7 +1238,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[8].Exporter = func(v any, i int) any {
 			switch v := v.(*GetResponse); i {
 			case 0:
 				return &v.state
@@ -1250,7 +1250,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[9].Exporter = func(v any, i int) any {
 			switch v := v.(*UpdateRequest); i {
 			case 0:
 				return &v.state
@@ -1262,7 +1262,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[10].Exporter = func(v any, i int) any {
 			switch v := v.(*SetAliasRequest); i {
 			case 0:
 				return &v.state
@@ -1274,7 +1274,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[11].Exporter = func(v any, i int) any {
 			switch v := v.(*RemoveAliasRequest); i {
 			case 0:
 				return &v.state
@@ -1286,7 +1286,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[12].Exporter = func(v any, i int) any {
 			switch v := v.(*DeleteRequest); i {
 			case 0:
 				return &v.state
@@ -1298,7 +1298,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[13].Exporter = func(v any, i int) any {
 			switch v := v.(*MigrateRequest); i {
 			case 0:
 				return &v.state
@@ -1310,7 +1310,7 @@ func file_environments_environments_proto_init() {
 				return nil
 			}
 		}
-		file_environments_environments_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+		file_environments_environments_proto_msgTypes[14].Exporter = func(v any, i int) any {
 			switch v := v.(*MigrateOptions); i {
 			case 0:
 				return &v.state
diff --git a/proto/environments/environments_grpc.pb.go b/proto/environments/environments_grpc.pb.go
index 63268a0ba508b1e00b189a7588573fd12c47c0fb..b0d65500e40a5822a0675deb061db968742dc955 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.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: environments/environments.proto
 
 package environments
@@ -16,8 +16,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Environments_Create_FullMethodName      = "/content.environments.Environments/Create"
@@ -60,8 +60,9 @@ func NewEnvironmentsClient(cc grpc.ClientConnInterface) EnvironmentsClient {
 }
 
 func (c *environmentsClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CreateResponse)
-	err := c.cc.Invoke(ctx, Environments_Create_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Environments_Create_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -69,8 +70,9 @@ func (c *environmentsClient) Create(ctx context.Context, in *CreateRequest, opts
 }
 
 func (c *environmentsClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, Environments_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Environments_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -78,8 +80,9 @@ func (c *environmentsClient) Get(ctx context.Context, in *GetRequest, opts ...gr
 }
 
 func (c *environmentsClient) List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListResponse)
-	err := c.cc.Invoke(ctx, Environments_List_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Environments_List_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -87,8 +90,9 @@ func (c *environmentsClient) List(ctx context.Context, in *ListRequest, opts ...
 }
 
 func (c *environmentsClient) Update(ctx context.Context, in *UpdateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Environments_Update_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Environments_Update_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -96,8 +100,9 @@ func (c *environmentsClient) Update(ctx context.Context, in *UpdateRequest, opts
 }
 
 func (c *environmentsClient) SetAlias(ctx context.Context, in *SetAliasRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Environments_SetAlias_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Environments_SetAlias_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -105,8 +110,9 @@ func (c *environmentsClient) SetAlias(ctx context.Context, in *SetAliasRequest,
 }
 
 func (c *environmentsClient) RemoveAlias(ctx context.Context, in *RemoveAliasRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Environments_RemoveAlias_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Environments_RemoveAlias_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -114,8 +120,9 @@ func (c *environmentsClient) RemoveAlias(ctx context.Context, in *RemoveAliasReq
 }
 
 func (c *environmentsClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Environments_Delete_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Environments_Delete_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -123,8 +130,9 @@ func (c *environmentsClient) Delete(ctx context.Context, in *DeleteRequest, opts
 }
 
 func (c *environmentsClient) Migrate(ctx context.Context, in *MigrateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Environments_Migrate_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Environments_Migrate_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -133,7 +141,7 @@ func (c *environmentsClient) Migrate(ctx context.Context, in *MigrateRequest, op
 
 // EnvironmentsServer is the server API for Environments service.
 // All implementations must embed UnimplementedEnvironmentsServer
-// for forward compatibility
+// for forward compatibility.
 type EnvironmentsServer interface {
 	Create(context.Context, *CreateRequest) (*CreateResponse, error)
 	Get(context.Context, *GetRequest) (*GetResponse, error)
@@ -153,9 +161,12 @@ type EnvironmentsServer interface {
 	mustEmbedUnimplementedEnvironmentsServer()
 }
 
-// UnimplementedEnvironmentsServer must be embedded to have forward compatible implementations.
-type UnimplementedEnvironmentsServer struct {
-}
+// UnimplementedEnvironmentsServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedEnvironmentsServer struct{}
 
 func (UnimplementedEnvironmentsServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
@@ -182,6 +193,7 @@ func (UnimplementedEnvironmentsServer) Migrate(context.Context, *MigrateRequest)
 	return nil, status.Errorf(codes.Unimplemented, "method Migrate not implemented")
 }
 func (UnimplementedEnvironmentsServer) mustEmbedUnimplementedEnvironmentsServer() {}
+func (UnimplementedEnvironmentsServer) testEmbeddedByValue()                      {}
 
 // UnsafeEnvironmentsServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to EnvironmentsServer will
@@ -191,6 +203,13 @@ type UnsafeEnvironmentsServer interface {
 }
 
 func RegisterEnvironmentsServer(s grpc.ServiceRegistrar, srv EnvironmentsServer) {
+	// If the following call pancis, it indicates UnimplementedEnvironmentsServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Environments_ServiceDesc, srv)
 }
 
diff --git a/proto/extensions/extension.pb.go b/proto/extensions/extension.pb.go
index 0c1501b6d088570de34d5bb617346f620ed643ef..6e877a3c64770698cb3291069431f1714feb97d5 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: extensions/extension.proto
 
 package extensions
@@ -733,7 +733,7 @@ func file_extensions_extension_proto_rawDescGZIP() []byte {
 
 var file_extensions_extension_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
 var file_extensions_extension_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
-var file_extensions_extension_proto_goTypes = []interface{}{
+var file_extensions_extension_proto_goTypes = []any{
 	(Target)(0),                  // 0: extensions.Target
 	(Action_Kind)(0),             // 1: extensions.Action.Kind
 	(Action_View)(0),             // 2: extensions.Action.View
@@ -765,7 +765,7 @@ func file_extensions_extension_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_extensions_extension_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_extension_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Action); i {
 			case 0:
 				return &v.state
@@ -777,7 +777,7 @@ func file_extensions_extension_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_extension_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_extension_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*ActionRequest); i {
 			case 0:
 				return &v.state
diff --git a/proto/extensions/extension_service.pb.go b/proto/extensions/extension_service.pb.go
index ef0d0a82baa9f2683c12b24d8ca85e917904d655..39424e069bb4ea0d1e6efeb6b44542fd8c2a6827 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: extensions/extension_service.proto
 
 package extensions
@@ -582,7 +582,7 @@ func file_extensions_extension_service_proto_rawDescGZIP() []byte {
 
 var file_extensions_extension_service_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
 var file_extensions_extension_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
-var file_extensions_extension_service_proto_goTypes = []interface{}{
+var file_extensions_extension_service_proto_goTypes = []any{
 	(ActionResponse_State)(0),    // 0: extensions.ActionResponse.State
 	(ActionResponse_Format)(0),   // 1: extensions.ActionResponse.Format
 	(*InstallRequest)(nil),       // 2: extensions.InstallRequest
@@ -625,7 +625,7 @@ func file_extensions_extension_service_proto_init() {
 	}
 	file_extensions_extension_proto_init()
 	if !protoimpl.UnsafeEnabled {
-		file_extensions_extension_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_extension_service_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*InstallRequest); i {
 			case 0:
 				return &v.state
@@ -637,7 +637,7 @@ func file_extensions_extension_service_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_extension_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_extension_service_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*UninstallRequest); i {
 			case 0:
 				return &v.state
@@ -649,7 +649,7 @@ func file_extensions_extension_service_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_extension_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_extension_service_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*CheckRequest); i {
 			case 0:
 				return &v.state
@@ -661,7 +661,7 @@ func file_extensions_extension_service_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_extension_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_extension_service_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*ActionResponse); i {
 			case 0:
 				return &v.state
diff --git a/proto/extensions/extension_service_grpc.pb.go b/proto/extensions/extension_service_grpc.pb.go
index 3cd37b839f83963d40818ddb7f094894c56f2f12..a5a1a98180108b1c0663862db4150aec9a64ff24 100644
--- a/proto/extensions/extension_service_grpc.pb.go
+++ b/proto/extensions/extension_service_grpc.pb.go
@@ -10,8 +10,8 @@
 
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: extensions/extension_service.proto
 
 package extensions
@@ -26,8 +26,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	ExtensionService_Install_FullMethodName   = "/extensions.ExtensionService/Install"
@@ -39,6 +39,9 @@ const (
 // ExtensionServiceClient is the client API for ExtensionService 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.
+//
+// ExtensionService - API расширения
+// Сервис должен реализовывать методы `common.OperationService` для работы операциями.
 type ExtensionServiceClient interface {
 	// Install выполняет установку указанных расширений. Если
 	// расширение уже установлены выполняет процесс переустановки. Возвращает longtime операцию
@@ -79,8 +82,9 @@ func NewExtensionServiceClient(cc grpc.ClientConnInterface) ExtensionServiceClie
 }
 
 func (c *extensionServiceClient) Install(ctx context.Context, in *InstallRequest, opts ...grpc.CallOption) (*common.Operation, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(common.Operation)
-	err := c.cc.Invoke(ctx, ExtensionService_Install_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, ExtensionService_Install_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -88,8 +92,9 @@ func (c *extensionServiceClient) Install(ctx context.Context, in *InstallRequest
 }
 
 func (c *extensionServiceClient) Uninstall(ctx context.Context, in *UninstallRequest, opts ...grpc.CallOption) (*common.Operation, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(common.Operation)
-	err := c.cc.Invoke(ctx, ExtensionService_Uninstall_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, ExtensionService_Uninstall_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -97,8 +102,9 @@ func (c *extensionServiceClient) Uninstall(ctx context.Context, in *UninstallReq
 }
 
 func (c *extensionServiceClient) Check(ctx context.Context, in *CheckRequest, opts ...grpc.CallOption) (*common.Operation, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(common.Operation)
-	err := c.cc.Invoke(ctx, ExtensionService_Check_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, ExtensionService_Check_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -106,8 +112,9 @@ func (c *extensionServiceClient) Check(ctx context.Context, in *CheckRequest, op
 }
 
 func (c *extensionServiceClient) Action(ctx context.Context, in *ActionRequest, opts ...grpc.CallOption) (*ActionResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ActionResponse)
-	err := c.cc.Invoke(ctx, ExtensionService_Action_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, ExtensionService_Action_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -116,7 +123,10 @@ func (c *extensionServiceClient) Action(ctx context.Context, in *ActionRequest,
 
 // ExtensionServiceServer is the server API for ExtensionService service.
 // All implementations must embed UnimplementedExtensionServiceServer
-// for forward compatibility
+// for forward compatibility.
+//
+// ExtensionService - API расширения
+// Сервис должен реализовывать методы `common.OperationService` для работы операциями.
 type ExtensionServiceServer interface {
 	// Install выполняет установку указанных расширений. Если
 	// расширение уже установлены выполняет процесс переустановки. Возвращает longtime операцию
@@ -149,9 +159,12 @@ type ExtensionServiceServer interface {
 	mustEmbedUnimplementedExtensionServiceServer()
 }
 
-// UnimplementedExtensionServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedExtensionServiceServer struct {
-}
+// UnimplementedExtensionServiceServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedExtensionServiceServer struct{}
 
 func (UnimplementedExtensionServiceServer) Install(context.Context, *InstallRequest) (*common.Operation, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Install not implemented")
@@ -166,6 +179,7 @@ func (UnimplementedExtensionServiceServer) Action(context.Context, *ActionReques
 	return nil, status.Errorf(codes.Unimplemented, "method Action not implemented")
 }
 func (UnimplementedExtensionServiceServer) mustEmbedUnimplementedExtensionServiceServer() {}
+func (UnimplementedExtensionServiceServer) testEmbeddedByValue()                          {}
 
 // UnsafeExtensionServiceServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to ExtensionServiceServer will
@@ -175,6 +189,13 @@ type UnsafeExtensionServiceServer interface {
 }
 
 func RegisterExtensionServiceServer(s grpc.ServiceRegistrar, srv ExtensionServiceServer) {
+	// If the following call pancis, it indicates UnimplementedExtensionServiceServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&ExtensionService_ServiceDesc, srv)
 }
 
diff --git a/proto/extensions/manager_service.pb.go b/proto/extensions/manager_service.pb.go
index 92434b607cb4263c4173979b390c034ce562238e..e0a1160ec1d129af4e10528cfba8635b2dc87569 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: extensions/manager_service.proto
 
 package extensions
@@ -967,7 +967,7 @@ func file_extensions_manager_service_proto_rawDescGZIP() []byte {
 
 var file_extensions_manager_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
 var file_extensions_manager_service_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
-var file_extensions_manager_service_proto_goTypes = []interface{}{
+var file_extensions_manager_service_proto_goTypes = []any{
 	(State)(0),                                   // 0: extensions.State
 	(*ListExtensionsRequest)(nil),                // 1: extensions.ListExtensionsRequest
 	(*ListExtensionsResponse)(nil),               // 2: extensions.ListExtensionsResponse
@@ -1012,7 +1012,7 @@ func file_extensions_manager_service_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_extensions_manager_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_manager_service_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*ListExtensionsRequest); i {
 			case 0:
 				return &v.state
@@ -1024,7 +1024,7 @@ func file_extensions_manager_service_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_manager_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_manager_service_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*ListExtensionsResponse); i {
 			case 0:
 				return &v.state
@@ -1036,7 +1036,7 @@ func file_extensions_manager_service_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_manager_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_manager_service_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*ExtensionDescriptor); i {
 			case 0:
 				return &v.state
@@ -1048,7 +1048,7 @@ func file_extensions_manager_service_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_manager_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_manager_service_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*RegisterExtensionsRequest); i {
 			case 0:
 				return &v.state
@@ -1060,7 +1060,7 @@ func file_extensions_manager_service_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_manager_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_manager_service_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*RegisterExtensionsResponse); i {
 			case 0:
 				return &v.state
@@ -1072,7 +1072,7 @@ func file_extensions_manager_service_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_manager_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_manager_service_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*UnregisterExtensionsRequest); i {
 			case 0:
 				return &v.state
@@ -1084,7 +1084,7 @@ func file_extensions_manager_service_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_manager_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_manager_service_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*UnregisterExtensionsResponse); i {
 			case 0:
 				return &v.state
@@ -1096,7 +1096,7 @@ func file_extensions_manager_service_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_manager_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_manager_service_proto_msgTypes[7].Exporter = func(v any, i int) any {
 			switch v := v.(*ListRegisteredExtensionsRequest); i {
 			case 0:
 				return &v.state
@@ -1108,7 +1108,7 @@ func file_extensions_manager_service_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_manager_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_manager_service_proto_msgTypes[8].Exporter = func(v any, i int) any {
 			switch v := v.(*ListRegisteredExtensionsResponse); i {
 			case 0:
 				return &v.state
@@ -1120,7 +1120,7 @@ func file_extensions_manager_service_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_manager_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+		file_extensions_manager_service_proto_msgTypes[9].Exporter = func(v any, i int) any {
 			switch v := v.(*SpaceExtensions); i {
 			case 0:
 				return &v.state
@@ -1132,7 +1132,7 @@ func file_extensions_manager_service_proto_init() {
 				return nil
 			}
 		}
-		file_extensions_manager_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+		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
diff --git a/proto/extensions/manager_service_grpc.pb.go b/proto/extensions/manager_service_grpc.pb.go
index c75c7cc3ddcc26817ec7baae4bf59cb5ec37f455..07ee35f5122e15a16f9434657f7b397a7f2d1196 100644
--- a/proto/extensions/manager_service_grpc.pb.go
+++ b/proto/extensions/manager_service_grpc.pb.go
@@ -27,8 +27,8 @@
 
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: extensions/manager_service.proto
 
 package extensions
@@ -42,8 +42,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	ExtensionManagerService_RegisterExtensions_FullMethodName       = "/extensions.ExtensionManagerService/RegisterExtensions"
@@ -55,6 +55,8 @@ const (
 // ExtensionManagerServiceClient is the client API for ExtensionManagerService 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.
+//
+// ExtensionManager - менеджер расширений. Должен реализовывать так же сервис Extension
 type ExtensionManagerServiceClient interface {
 	// ##  Регистрация расширений
 	//
@@ -85,8 +87,9 @@ func NewExtensionManagerServiceClient(cc grpc.ClientConnInterface) ExtensionMana
 }
 
 func (c *extensionManagerServiceClient) RegisterExtensions(ctx context.Context, in *RegisterExtensionsRequest, opts ...grpc.CallOption) (*RegisterExtensionsResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(RegisterExtensionsResponse)
-	err := c.cc.Invoke(ctx, ExtensionManagerService_RegisterExtensions_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, ExtensionManagerService_RegisterExtensions_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -94,8 +97,9 @@ func (c *extensionManagerServiceClient) RegisterExtensions(ctx context.Context,
 }
 
 func (c *extensionManagerServiceClient) UnregisterExtensions(ctx context.Context, in *UnregisterExtensionsRequest, opts ...grpc.CallOption) (*UnregisterExtensionsResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(UnregisterExtensionsResponse)
-	err := c.cc.Invoke(ctx, ExtensionManagerService_UnregisterExtensions_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, ExtensionManagerService_UnregisterExtensions_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -103,8 +107,9 @@ func (c *extensionManagerServiceClient) UnregisterExtensions(ctx context.Context
 }
 
 func (c *extensionManagerServiceClient) ListRegisteredExtensions(ctx context.Context, in *ListRegisteredExtensionsRequest, opts ...grpc.CallOption) (*ListRegisteredExtensionsResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListRegisteredExtensionsResponse)
-	err := c.cc.Invoke(ctx, ExtensionManagerService_ListRegisteredExtensions_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, ExtensionManagerService_ListRegisteredExtensions_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -112,8 +117,9 @@ func (c *extensionManagerServiceClient) ListRegisteredExtensions(ctx context.Con
 }
 
 func (c *extensionManagerServiceClient) ListExtensions(ctx context.Context, in *ListExtensionsRequest, opts ...grpc.CallOption) (*ListExtensionsResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListExtensionsResponse)
-	err := c.cc.Invoke(ctx, ExtensionManagerService_ListExtensions_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, ExtensionManagerService_ListExtensions_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -122,7 +128,9 @@ func (c *extensionManagerServiceClient) ListExtensions(ctx context.Context, in *
 
 // ExtensionManagerServiceServer is the server API for ExtensionManagerService service.
 // All implementations must embed UnimplementedExtensionManagerServiceServer
-// for forward compatibility
+// for forward compatibility.
+//
+// ExtensionManager - менеджер расширений. Должен реализовывать так же сервис Extension
 type ExtensionManagerServiceServer interface {
 	// ##  Регистрация расширений
 	//
@@ -145,9 +153,12 @@ type ExtensionManagerServiceServer interface {
 	mustEmbedUnimplementedExtensionManagerServiceServer()
 }
 
-// UnimplementedExtensionManagerServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedExtensionManagerServiceServer struct {
-}
+// UnimplementedExtensionManagerServiceServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedExtensionManagerServiceServer struct{}
 
 func (UnimplementedExtensionManagerServiceServer) RegisterExtensions(context.Context, *RegisterExtensionsRequest) (*RegisterExtensionsResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method RegisterExtensions not implemented")
@@ -163,6 +174,7 @@ func (UnimplementedExtensionManagerServiceServer) ListExtensions(context.Context
 }
 func (UnimplementedExtensionManagerServiceServer) mustEmbedUnimplementedExtensionManagerServiceServer() {
 }
+func (UnimplementedExtensionManagerServiceServer) testEmbeddedByValue() {}
 
 // UnsafeExtensionManagerServiceServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to ExtensionManagerServiceServer will
@@ -172,6 +184,13 @@ type UnsafeExtensionManagerServiceServer interface {
 }
 
 func RegisterExtensionManagerServiceServer(s grpc.ServiceRegistrar, srv ExtensionManagerServiceServer) {
+	// If the following call pancis, it indicates UnimplementedExtensionManagerServiceServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&ExtensionManagerService_ServiceDesc, srv)
 }
 
diff --git a/proto/files/files.pb.go b/proto/files/files.pb.go
index 68d6e4cbe9ec2db44a9795f2426d5c91ccb4c424..655ebff92f49c17fddd05bb9cfa8a8cf988a2fa2 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.1
-// 	protoc        v5.26.1
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: files/files.proto
 
 package files
@@ -1060,7 +1060,7 @@ func file_files_files_proto_rawDescGZIP() []byte {
 }
 
 var file_files_files_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
-var file_files_files_proto_goTypes = []interface{}{
+var file_files_files_proto_goTypes = []any{
 	(*File)(nil),                   // 0: files.File
 	(*MultipartUpload)(nil),        // 1: files.MultipartUpload
 	(*Upload)(nil),                 // 2: files.Upload
@@ -1123,7 +1123,7 @@ func file_files_files_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_files_files_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*File); i {
 			case 0:
 				return &v.state
@@ -1135,7 +1135,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*MultipartUpload); i {
 			case 0:
 				return &v.state
@@ -1147,7 +1147,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*Upload); i {
 			case 0:
 				return &v.state
@@ -1159,7 +1159,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*CompletedPart); i {
 			case 0:
 				return &v.state
@@ -1171,7 +1171,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*StartUploadRequest); i {
 			case 0:
 				return &v.state
@@ -1183,7 +1183,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*StartUploadResponse); i {
 			case 0:
 				return &v.state
@@ -1195,7 +1195,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*CompleteUploadRequest); i {
 			case 0:
 				return &v.state
@@ -1207,7 +1207,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[7].Exporter = func(v any, i int) any {
 			switch v := v.(*CompleteUploadResponse); i {
 			case 0:
 				return &v.state
@@ -1219,7 +1219,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[8].Exporter = func(v any, i int) any {
 			switch v := v.(*AbortUploadRequest); i {
 			case 0:
 				return &v.state
@@ -1231,7 +1231,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[9].Exporter = func(v any, i int) any {
 			switch v := v.(*AbortUploadResponse); i {
 			case 0:
 				return &v.state
@@ -1243,7 +1243,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[10].Exporter = func(v any, i int) any {
 			switch v := v.(*MoveUploadRequest); i {
 			case 0:
 				return &v.state
@@ -1255,7 +1255,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[11].Exporter = func(v any, i int) any {
 			switch v := v.(*MoveUploadResponse); i {
 			case 0:
 				return &v.state
@@ -1267,7 +1267,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[12].Exporter = func(v any, i int) any {
 			switch v := v.(*UploadRequest); i {
 			case 0:
 				return &v.state
@@ -1279,7 +1279,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[13].Exporter = func(v any, i int) any {
 			switch v := v.(*UploadResponse); i {
 			case 0:
 				return &v.state
@@ -1291,7 +1291,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[14].Exporter = func(v any, i int) any {
 			switch v := v.(*GetFileRequest); i {
 			case 0:
 				return &v.state
@@ -1303,7 +1303,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[15].Exporter = func(v any, i int) any {
 			switch v := v.(*GetFileResponse); i {
 			case 0:
 				return &v.state
@@ -1315,7 +1315,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[16].Exporter = func(v any, i int) any {
 			switch v := v.(*DeleteFileRequest); i {
 			case 0:
 				return &v.state
@@ -1327,7 +1327,7 @@ func file_files_files_proto_init() {
 				return nil
 			}
 		}
-		file_files_files_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
+		file_files_files_proto_msgTypes[17].Exporter = func(v any, i int) any {
 			switch v := v.(*DeleteFileResponse); i {
 			case 0:
 				return &v.state
diff --git a/proto/files/files_grpc.pb.go b/proto/files/files_grpc.pb.go
index 4bd55168e0cff4a24f5eace9281dd60324176348..ae5d8c4766e129958ebe093cb636f90bc1756426 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.3.0
-// - protoc             v5.26.1
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: files/files.proto
 
 package files
@@ -16,8 +16,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Files_StartUpload_FullMethodName    = "/files.Files/StartUpload"
@@ -56,9 +56,9 @@ type FilesClient interface {
 	// DeleteFile - удаляет файл. Если происходит удаление оригинала,
 	// удаляются и все связанные структуры
 	// Возможны следующие ситуации:
-	//  - Удаление оригинального файла. Удаляется файл и все связанные с ним файлы.
-	//  - Удаление связанного файла. Для удаления конкретного файла передается 'ID', 'Type' и 'Name'
-	//  - Удаления связанных файлов конкретного типа (например, все 'thumbnails'). Передается 'ID' и 'Type'
+	//   - Удаление оригинального файла. Удаляется файл и все связанные с ним файлы.
+	//   - Удаление связанного файла. Для удаления конкретного файла передается 'ID', 'Type' и 'Name'
+	//   - Удаления связанных файлов конкретного типа (например, все 'thumbnails'). Передается 'ID' и 'Type'
 	DeleteFile(ctx context.Context, in *DeleteFileRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
 }
 
@@ -71,8 +71,9 @@ func NewFilesClient(cc grpc.ClientConnInterface) FilesClient {
 }
 
 func (c *filesClient) StartUpload(ctx context.Context, in *StartUploadRequest, opts ...grpc.CallOption) (*StartUploadResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(StartUploadResponse)
-	err := c.cc.Invoke(ctx, Files_StartUpload_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Files_StartUpload_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -80,8 +81,9 @@ func (c *filesClient) StartUpload(ctx context.Context, in *StartUploadRequest, o
 }
 
 func (c *filesClient) CompleteUpload(ctx context.Context, in *CompleteUploadRequest, opts ...grpc.CallOption) (*CompleteUploadResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CompleteUploadResponse)
-	err := c.cc.Invoke(ctx, Files_CompleteUpload_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Files_CompleteUpload_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -89,8 +91,9 @@ func (c *filesClient) CompleteUpload(ctx context.Context, in *CompleteUploadRequ
 }
 
 func (c *filesClient) AbortUpload(ctx context.Context, in *AbortUploadRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Files_AbortUpload_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Files_AbortUpload_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -98,8 +101,9 @@ func (c *filesClient) AbortUpload(ctx context.Context, in *AbortUploadRequest, o
 }
 
 func (c *filesClient) MoveUpload(ctx context.Context, in *MoveUploadRequest, opts ...grpc.CallOption) (*MoveUploadResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(MoveUploadResponse)
-	err := c.cc.Invoke(ctx, Files_MoveUpload_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Files_MoveUpload_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -107,8 +111,9 @@ func (c *filesClient) MoveUpload(ctx context.Context, in *MoveUploadRequest, opt
 }
 
 func (c *filesClient) Upload(ctx context.Context, in *UploadRequest, opts ...grpc.CallOption) (*UploadResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(UploadResponse)
-	err := c.cc.Invoke(ctx, Files_Upload_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Files_Upload_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -116,8 +121,9 @@ func (c *filesClient) Upload(ctx context.Context, in *UploadRequest, opts ...grp
 }
 
 func (c *filesClient) GetFile(ctx context.Context, in *GetFileRequest, opts ...grpc.CallOption) (*GetFileResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetFileResponse)
-	err := c.cc.Invoke(ctx, Files_GetFile_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Files_GetFile_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -125,8 +131,9 @@ func (c *filesClient) GetFile(ctx context.Context, in *GetFileRequest, opts ...g
 }
 
 func (c *filesClient) DeleteFile(ctx context.Context, in *DeleteFileRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Files_DeleteFile_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Files_DeleteFile_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -135,7 +142,7 @@ func (c *filesClient) DeleteFile(ctx context.Context, in *DeleteFileRequest, opt
 
 // FilesServer is the server API for Files service.
 // All implementations must embed UnimplementedFilesServer
-// for forward compatibility
+// for forward compatibility.
 type FilesServer interface {
 	// StartUpload - инициирует процедуру загрузки файла в файловое хранилище.
 	// Используется клиентским приложением для начала загрузки файла
@@ -160,16 +167,19 @@ type FilesServer interface {
 	// DeleteFile - удаляет файл. Если происходит удаление оригинала,
 	// удаляются и все связанные структуры
 	// Возможны следующие ситуации:
-	//  - Удаление оригинального файла. Удаляется файл и все связанные с ним файлы.
-	//  - Удаление связанного файла. Для удаления конкретного файла передается 'ID', 'Type' и 'Name'
-	//  - Удаления связанных файлов конкретного типа (например, все 'thumbnails'). Передается 'ID' и 'Type'
+	//   - Удаление оригинального файла. Удаляется файл и все связанные с ним файлы.
+	//   - Удаление связанного файла. Для удаления конкретного файла передается 'ID', 'Type' и 'Name'
+	//   - Удаления связанных файлов конкретного типа (например, все 'thumbnails'). Передается 'ID' и 'Type'
 	DeleteFile(context.Context, *DeleteFileRequest) (*emptypb.Empty, error)
 	mustEmbedUnimplementedFilesServer()
 }
 
-// UnimplementedFilesServer must be embedded to have forward compatible implementations.
-type UnimplementedFilesServer struct {
-}
+// UnimplementedFilesServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedFilesServer struct{}
 
 func (UnimplementedFilesServer) StartUpload(context.Context, *StartUploadRequest) (*StartUploadResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method StartUpload not implemented")
@@ -193,6 +203,7 @@ func (UnimplementedFilesServer) DeleteFile(context.Context, *DeleteFileRequest)
 	return nil, status.Errorf(codes.Unimplemented, "method DeleteFile not implemented")
 }
 func (UnimplementedFilesServer) mustEmbedUnimplementedFilesServer() {}
+func (UnimplementedFilesServer) testEmbeddedByValue()               {}
 
 // UnsafeFilesServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to FilesServer will
@@ -202,6 +213,13 @@ type UnsafeFilesServer interface {
 }
 
 func RegisterFilesServer(s grpc.ServiceRegistrar, srv FilesServer) {
+	// If the following call pancis, it indicates UnimplementedFilesServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Files_ServiceDesc, srv)
 }
 
diff --git a/proto/images/images.pb.go b/proto/images/images.pb.go
index 4f95cb6da087725f8af05fbca35955d9e02c7608..e84dae61c1ff2493731ccfbcaec30046b6c7b6fc 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: images/images.proto
 
 package images
@@ -270,7 +270,7 @@ func file_images_images_proto_rawDescGZIP() []byte {
 }
 
 var file_images_images_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_images_images_proto_goTypes = []interface{}{
+var file_images_images_proto_goTypes = []any{
 	(*Param)(nil),                 // 0: images.Param
 	(*GetRequest)(nil),            // 1: images.GetRequest
 	(*GetResponse)(nil),           // 2: images.GetResponse
@@ -297,7 +297,7 @@ func file_images_images_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_images_images_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_images_images_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Param); i {
 			case 0:
 				return &v.state
@@ -309,7 +309,7 @@ func file_images_images_proto_init() {
 				return nil
 			}
 		}
-		file_images_images_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_images_images_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*GetRequest); i {
 			case 0:
 				return &v.state
@@ -321,7 +321,7 @@ func file_images_images_proto_init() {
 				return nil
 			}
 		}
-		file_images_images_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_images_images_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*GetResponse); i {
 			case 0:
 				return &v.state
@@ -333,7 +333,7 @@ func file_images_images_proto_init() {
 				return nil
 			}
 		}
-		file_images_images_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_images_images_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*GetRequest_GetOptions); i {
 			case 0:
 				return &v.state
diff --git a/proto/images/images_grpc.pb.go b/proto/images/images_grpc.pb.go
index 272c6580743f491a78834708bdcacfef2a166f86..669dcc8e9a29cefefb38ade60d4d48900d268707 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.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: images/images.proto
 
 package images
@@ -15,8 +15,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Images_Get_FullMethodName = "/images.Images/Get"
@@ -25,6 +25,8 @@ const (
 // ImagesClient is the client API for Images 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.
+//
+// ImageService - сервис для обработки изображений
 type ImagesClient interface {
 	// Get - к файлу, идентификатор которого передан в запросе, применяются параметры.
 	// Может быть передано несколько параметров, порядок учитывается при обработке
@@ -47,8 +49,9 @@ func NewImagesClient(cc grpc.ClientConnInterface) ImagesClient {
 }
 
 func (c *imagesClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, Images_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Images_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -57,7 +60,9 @@ func (c *imagesClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.Cal
 
 // ImagesServer is the server API for Images service.
 // All implementations must embed UnimplementedImagesServer
-// for forward compatibility
+// for forward compatibility.
+//
+// ImageService - сервис для обработки изображений
 type ImagesServer interface {
 	// Get - к файлу, идентификатор которого передан в запросе, применяются параметры.
 	// Может быть передано несколько параметров, порядок учитывается при обработке
@@ -72,14 +77,18 @@ type ImagesServer interface {
 	mustEmbedUnimplementedImagesServer()
 }
 
-// UnimplementedImagesServer must be embedded to have forward compatible implementations.
-type UnimplementedImagesServer struct {
-}
+// UnimplementedImagesServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedImagesServer struct{}
 
 func (UnimplementedImagesServer) Get(context.Context, *GetRequest) (*GetResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
 }
 func (UnimplementedImagesServer) mustEmbedUnimplementedImagesServer() {}
+func (UnimplementedImagesServer) testEmbeddedByValue()                {}
 
 // UnsafeImagesServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to ImagesServer will
@@ -89,6 +98,13 @@ type UnsafeImagesServer interface {
 }
 
 func RegisterImagesServer(s grpc.ServiceRegistrar, srv ImagesServer) {
+	// If the following call pancis, it indicates UnimplementedImagesServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Images_ServiceDesc, srv)
 }
 
diff --git a/proto/invitations/invitations.pb.go b/proto/invitations/invitations.pb.go
index 1e9fd729c0ffba1903d60f70ba8f89041684b11d..5fd81d66ef5f3b27a7d8c4de428cca03e6d53de1 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: invitations/invitations.proto
 
 package invitations
@@ -1021,7 +1021,7 @@ func file_invitations_invitations_proto_rawDescGZIP() []byte {
 }
 
 var file_invitations_invitations_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
-var file_invitations_invitations_proto_goTypes = []interface{}{
+var file_invitations_invitations_proto_goTypes = []any{
 	(*Invitation)(nil),                    // 0: content.invitations.Invitation
 	(*Filter)(nil),                        // 1: content.invitations.Filter
 	(*FindOptions)(nil),                   // 2: content.invitations.FindOptions
@@ -1077,7 +1077,7 @@ func file_invitations_invitations_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_invitations_invitations_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Invitation); i {
 			case 0:
 				return &v.state
@@ -1089,7 +1089,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*Filter); i {
 			case 0:
 				return &v.state
@@ -1101,7 +1101,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*FindOptions); i {
 			case 0:
 				return &v.state
@@ -1113,7 +1113,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateRequest); i {
 			case 0:
 				return &v.state
@@ -1125,7 +1125,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateResponse); i {
 			case 0:
 				return &v.state
@@ -1137,7 +1137,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*GetRequest); i {
 			case 0:
 				return &v.state
@@ -1149,7 +1149,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*GetResponse); i {
 			case 0:
 				return &v.state
@@ -1161,7 +1161,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[7].Exporter = func(v any, i int) any {
 			switch v := v.(*UpdateRequest); i {
 			case 0:
 				return &v.state
@@ -1173,7 +1173,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[8].Exporter = func(v any, i int) any {
 			switch v := v.(*UpdateInvitationResponse); i {
 			case 0:
 				return &v.state
@@ -1185,7 +1185,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[9].Exporter = func(v any, i int) any {
 			switch v := v.(*AcceptRequest); i {
 			case 0:
 				return &v.state
@@ -1197,7 +1197,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[10].Exporter = func(v any, i int) any {
 			switch v := v.(*AcceptInvitationResponse); i {
 			case 0:
 				return &v.state
@@ -1209,7 +1209,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[11].Exporter = func(v any, i int) any {
 			switch v := v.(*FindRequest); i {
 			case 0:
 				return &v.state
@@ -1221,7 +1221,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[12].Exporter = func(v any, i int) any {
 			switch v := v.(*FindResponse); i {
 			case 0:
 				return &v.state
@@ -1233,7 +1233,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[13].Exporter = func(v any, i int) any {
 			switch v := v.(*DeleteRequest); i {
 			case 0:
 				return &v.state
@@ -1245,7 +1245,7 @@ func file_invitations_invitations_proto_init() {
 				return nil
 			}
 		}
-		file_invitations_invitations_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+		file_invitations_invitations_proto_msgTypes[14].Exporter = func(v any, i int) any {
 			switch v := v.(*DeleteSpaceInvitationResponse); i {
 			case 0:
 				return &v.state
diff --git a/proto/invitations/invitations_grpc.pb.go b/proto/invitations/invitations_grpc.pb.go
index d5137fec4deee51fb509d7ee0ba9e0c235f57668..767261cba6341aea650345743e27fce8804d3d99 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.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: invitations/invitations.proto
 
 package invitations
@@ -16,8 +16,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Invitations_Create_FullMethodName = "/content.invitations.Invitations/Create"
@@ -51,8 +51,9 @@ func NewInvitationsClient(cc grpc.ClientConnInterface) InvitationsClient {
 }
 
 func (c *invitationsClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CreateResponse)
-	err := c.cc.Invoke(ctx, Invitations_Create_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Invitations_Create_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -60,8 +61,9 @@ func (c *invitationsClient) Create(ctx context.Context, in *CreateRequest, opts
 }
 
 func (c *invitationsClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, Invitations_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Invitations_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -69,8 +71,9 @@ func (c *invitationsClient) Get(ctx context.Context, in *GetRequest, opts ...grp
 }
 
 func (c *invitationsClient) Accept(ctx context.Context, in *AcceptRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Invitations_Accept_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Invitations_Accept_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -78,8 +81,9 @@ func (c *invitationsClient) Accept(ctx context.Context, in *AcceptRequest, opts
 }
 
 func (c *invitationsClient) Find(ctx context.Context, in *FindRequest, opts ...grpc.CallOption) (*FindResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(FindResponse)
-	err := c.cc.Invoke(ctx, Invitations_Find_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Invitations_Find_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -87,8 +91,9 @@ func (c *invitationsClient) Find(ctx context.Context, in *FindRequest, opts ...g
 }
 
 func (c *invitationsClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Invitations_Delete_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Invitations_Delete_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -97,7 +102,7 @@ func (c *invitationsClient) Delete(ctx context.Context, in *DeleteRequest, opts
 
 // InvitationsServer is the server API for Invitations service.
 // All implementations must embed UnimplementedInvitationsServer
-// for forward compatibility
+// for forward compatibility.
 type InvitationsServer interface {
 	Create(context.Context, *CreateRequest) (*CreateResponse, error)
 	// Получить данные о приглашении
@@ -111,9 +116,12 @@ type InvitationsServer interface {
 	mustEmbedUnimplementedInvitationsServer()
 }
 
-// UnimplementedInvitationsServer must be embedded to have forward compatible implementations.
-type UnimplementedInvitationsServer struct {
-}
+// UnimplementedInvitationsServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedInvitationsServer struct{}
 
 func (UnimplementedInvitationsServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
@@ -131,6 +139,7 @@ func (UnimplementedInvitationsServer) Delete(context.Context, *DeleteRequest) (*
 	return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented")
 }
 func (UnimplementedInvitationsServer) mustEmbedUnimplementedInvitationsServer() {}
+func (UnimplementedInvitationsServer) testEmbeddedByValue()                     {}
 
 // UnsafeInvitationsServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to InvitationsServer will
@@ -140,6 +149,13 @@ type UnsafeInvitationsServer interface {
 }
 
 func RegisterInvitationsServer(s grpc.ServiceRegistrar, srv InvitationsServer) {
+	// If the following call pancis, it indicates UnimplementedInvitationsServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Invitations_ServiceDesc, srv)
 }
 
diff --git a/proto/items/items.pb.go b/proto/items/items.pb.go
index 8a6ed540cf9a1c9f21bd313f830d587d3468bd1d..a49876ec9c67d5a76a29330cff5dfea32c51c0aa 100644
--- a/proto/items/items.pb.go
+++ b/proto/items/items.pb.go
@@ -9,7 +9,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
 // 	protoc-gen-go v1.34.2
-// 	protoc        v5.27.0
+// 	protoc        v5.27.3
 // source: items/items.proto
 
 package items
diff --git a/proto/items/items_grpc.pb.go b/proto/items/items_grpc.pb.go
index 9d75857939728e3077387a03b6eac0073da804ee..16b486427fef5d6d4ee0dfd75c80da606413273d 100644
--- a/proto/items/items_grpc.pb.go
+++ b/proto/items/items_grpc.pb.go
@@ -8,8 +8,8 @@
 
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.4.0
-// - protoc             v5.27.0
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: items/items.proto
 
 package items
@@ -24,8 +24,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.62.0 or later.
-const _ = grpc.SupportPackageIsVersion8
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Items_Create_FullMethodName             = "/content.items.Items/Create"
@@ -277,7 +277,7 @@ func (c *itemsClient) Unarchive(ctx context.Context, in *UnarchiveRequest, opts
 
 // ItemsServer is the server API for Items service.
 // All implementations must embed UnimplementedItemsServer
-// for forward compatibility
+// for forward compatibility.
 //
 // *
 // Сервис API элементов
@@ -315,9 +315,12 @@ type ItemsServer interface {
 	mustEmbedUnimplementedItemsServer()
 }
 
-// UnimplementedItemsServer must be embedded to have forward compatible implementations.
-type UnimplementedItemsServer struct {
-}
+// UnimplementedItemsServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedItemsServer struct{}
 
 func (UnimplementedItemsServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
@@ -374,6 +377,7 @@ func (UnimplementedItemsServer) Unarchive(context.Context, *UnarchiveRequest) (*
 	return nil, status.Errorf(codes.Unimplemented, "method Unarchive not implemented")
 }
 func (UnimplementedItemsServer) mustEmbedUnimplementedItemsServer() {}
+func (UnimplementedItemsServer) testEmbeddedByValue()               {}
 
 // UnsafeItemsServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to ItemsServer will
@@ -383,6 +387,13 @@ type UnsafeItemsServer interface {
 }
 
 func RegisterItemsServer(s grpc.ServiceRegistrar, srv ItemsServer) {
+	// If the following call pancis, it indicates UnimplementedItemsServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Items_ServiceDesc, srv)
 }
 
diff --git a/proto/locales/locales.pb.go b/proto/locales/locales.pb.go
index 023d2ef4d9c25cc079475adb27729a4daaf9a422..a1a301ae6e8acc273ac186745f14df700e2478c4 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.1
-// 	protoc        v5.26.1
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: locales/locales.proto
 
 package locales
@@ -515,7 +515,7 @@ func file_locales_locales_proto_rawDescGZIP() []byte {
 }
 
 var file_locales_locales_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
-var file_locales_locales_proto_goTypes = []interface{}{
+var file_locales_locales_proto_goTypes = []any{
 	(*Locale)(nil),         // 0: content.locales.Locale
 	(*CreateRequest)(nil),  // 1: content.locales.CreateRequest
 	(*CreateResponse)(nil), // 2: content.locales.CreateResponse
@@ -551,7 +551,7 @@ func file_locales_locales_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_locales_locales_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_locales_locales_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Locale); i {
 			case 0:
 				return &v.state
@@ -563,7 +563,7 @@ func file_locales_locales_proto_init() {
 				return nil
 			}
 		}
-		file_locales_locales_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_locales_locales_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateRequest); i {
 			case 0:
 				return &v.state
@@ -575,7 +575,7 @@ func file_locales_locales_proto_init() {
 				return nil
 			}
 		}
-		file_locales_locales_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_locales_locales_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateResponse); i {
 			case 0:
 				return &v.state
@@ -587,7 +587,7 @@ func file_locales_locales_proto_init() {
 				return nil
 			}
 		}
-		file_locales_locales_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_locales_locales_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*UpdateRequest); i {
 			case 0:
 				return &v.state
@@ -599,7 +599,7 @@ func file_locales_locales_proto_init() {
 				return nil
 			}
 		}
-		file_locales_locales_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_locales_locales_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*ListRequest); i {
 			case 0:
 				return &v.state
@@ -611,7 +611,7 @@ func file_locales_locales_proto_init() {
 				return nil
 			}
 		}
-		file_locales_locales_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_locales_locales_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*ListResponse); i {
 			case 0:
 				return &v.state
@@ -623,7 +623,7 @@ func file_locales_locales_proto_init() {
 				return nil
 			}
 		}
-		file_locales_locales_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_locales_locales_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*DeleteRequest); i {
 			case 0:
 				return &v.state
diff --git a/proto/locales/locales_grpc.pb.go b/proto/locales/locales_grpc.pb.go
index d6184e151ac919b0c5bc83004a075b06d78c6116..1e6d289f8fa50a8c1ec8a2013ac7cf5b8183d7f0 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.4.0
-// - protoc             v5.26.1
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: locales/locales.proto
 
 package locales
@@ -16,8 +16,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.62.0 or later.
-const _ = grpc.SupportPackageIsVersion8
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Locales_Create_FullMethodName = "/content.locales.Locales/Create"
@@ -90,7 +90,7 @@ func (c *localesClient) Delete(ctx context.Context, in *DeleteRequest, opts ...g
 
 // LocalesServer is the server API for Locales service.
 // All implementations must embed UnimplementedLocalesServer
-// for forward compatibility
+// for forward compatibility.
 type LocalesServer interface {
 	// Создать локаль
 	Create(context.Context, *CreateRequest) (*CreateResponse, error)
@@ -103,9 +103,12 @@ type LocalesServer interface {
 	mustEmbedUnimplementedLocalesServer()
 }
 
-// UnimplementedLocalesServer must be embedded to have forward compatible implementations.
-type UnimplementedLocalesServer struct {
-}
+// UnimplementedLocalesServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedLocalesServer struct{}
 
 func (UnimplementedLocalesServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
@@ -120,6 +123,7 @@ func (UnimplementedLocalesServer) Delete(context.Context, *DeleteRequest) (*empt
 	return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented")
 }
 func (UnimplementedLocalesServer) mustEmbedUnimplementedLocalesServer() {}
+func (UnimplementedLocalesServer) testEmbeddedByValue()                 {}
 
 // UnsafeLocalesServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to LocalesServer will
@@ -129,6 +133,13 @@ type UnsafeLocalesServer interface {
 }
 
 func RegisterLocalesServer(s grpc.ServiceRegistrar, srv LocalesServer) {
+	// If the following call pancis, it indicates UnimplementedLocalesServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Locales_ServiceDesc, srv)
 }
 
diff --git a/proto/logs/log.pb.go b/proto/logs/log.pb.go
index e1bbfd784e70ec2a8f0a4c5abee7edf258f41a1b..deb2d4fc477c54e2bb1c091b29feb4b209e5b670 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.31.0
-// 	protoc        v4.25.1
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: logs/log.proto
 
 package logs
@@ -324,7 +324,7 @@ func file_logs_log_proto_rawDescGZIP() []byte {
 
 var file_logs_log_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
 var file_logs_log_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_logs_log_proto_goTypes = []interface{}{
+var file_logs_log_proto_goTypes = []any{
 	(LogLevel)(0),                 // 0: logs.LogLevel
 	(*LogEntry)(nil),              // 1: logs.LogEntry
 	(*timestamppb.Timestamp)(nil), // 2: google.protobuf.Timestamp
@@ -347,7 +347,7 @@ func file_logs_log_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_logs_log_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_logs_log_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*LogEntry); i {
 			case 0:
 				return &v.state
diff --git a/proto/logs/log_service.pb.go b/proto/logs/log_service.pb.go
index 7036778591e3e51156c67eccffb05976fea10d38..114d5229d30504b202cd9475741b65b4d28831a3 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.31.0
-// 	protoc        v4.25.1
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: logs/log_service.proto
 
 package logs
@@ -568,7 +568,7 @@ func file_logs_log_service_proto_rawDescGZIP() []byte {
 }
 
 var file_logs_log_service_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
-var file_logs_log_service_proto_goTypes = []interface{}{
+var file_logs_log_service_proto_goTypes = []any{
 	(*LogRequest)(nil),         // 0: logs.LogRequest
 	(*LogResponse)(nil),        // 1: logs.LogResponse
 	(*Filter)(nil),             // 2: logs.Filter
@@ -613,7 +613,7 @@ func file_logs_log_service_proto_init() {
 	}
 	file_logs_log_proto_init()
 	if !protoimpl.UnsafeEnabled {
-		file_logs_log_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_logs_log_service_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*LogRequest); i {
 			case 0:
 				return &v.state
@@ -625,7 +625,7 @@ func file_logs_log_service_proto_init() {
 				return nil
 			}
 		}
-		file_logs_log_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_logs_log_service_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*LogResponse); i {
 			case 0:
 				return &v.state
@@ -637,7 +637,7 @@ func file_logs_log_service_proto_init() {
 				return nil
 			}
 		}
-		file_logs_log_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_logs_log_service_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*Filter); i {
 			case 0:
 				return &v.state
@@ -649,7 +649,7 @@ func file_logs_log_service_proto_init() {
 				return nil
 			}
 		}
-		file_logs_log_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_logs_log_service_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*FindRequest); i {
 			case 0:
 				return &v.state
@@ -661,7 +661,7 @@ func file_logs_log_service_proto_init() {
 				return nil
 			}
 		}
-		file_logs_log_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_logs_log_service_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*FindResult); i {
 			case 0:
 				return &v.state
@@ -673,7 +673,7 @@ func file_logs_log_service_proto_init() {
 				return nil
 			}
 		}
-		file_logs_log_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_logs_log_service_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*FindResponse); i {
 			case 0:
 				return &v.state
@@ -685,7 +685,7 @@ func file_logs_log_service_proto_init() {
 				return nil
 			}
 		}
-		file_logs_log_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_logs_log_service_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*DeleteRequest); i {
 			case 0:
 				return &v.state
@@ -697,7 +697,7 @@ func file_logs_log_service_proto_init() {
 				return nil
 			}
 		}
-		file_logs_log_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_logs_log_service_proto_msgTypes[7].Exporter = func(v any, i int) any {
 			switch v := v.(*DeleteResponse); i {
 			case 0:
 				return &v.state
@@ -710,7 +710,7 @@ func file_logs_log_service_proto_init() {
 			}
 		}
 	}
-	file_logs_log_service_proto_msgTypes[5].OneofWrappers = []interface{}{
+	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 ad55cee20f51d0135ab737a566f405696fe693fa..c8fd4bc4dbc5c0c044d6791f3ce62018d645a7d4 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.3.0
-// - protoc             v4.25.1
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: logs/log_service.proto
 
 package logs
@@ -15,8 +15,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	LogsService_Log_FullMethodName    = "/logs.LogsService/Log"
@@ -27,6 +27,9 @@ const (
 // LogsServiceClient is the client API for LogsService 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.
+//
+// Сервис для записи активности в системе
+// Позволяет всем компонентам системы записывать логи в единое хранилище и получать их оттуда
 type LogsServiceClient interface {
 	// Метод для записи логов
 	Log(ctx context.Context, in *LogRequest, opts ...grpc.CallOption) (*LogResponse, error)
@@ -45,8 +48,9 @@ func NewLogsServiceClient(cc grpc.ClientConnInterface) LogsServiceClient {
 }
 
 func (c *logsServiceClient) Log(ctx context.Context, in *LogRequest, opts ...grpc.CallOption) (*LogResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(LogResponse)
-	err := c.cc.Invoke(ctx, LogsService_Log_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, LogsService_Log_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -54,8 +58,9 @@ func (c *logsServiceClient) Log(ctx context.Context, in *LogRequest, opts ...grp
 }
 
 func (c *logsServiceClient) Find(ctx context.Context, in *FindRequest, opts ...grpc.CallOption) (*FindResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(FindResponse)
-	err := c.cc.Invoke(ctx, LogsService_Find_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, LogsService_Find_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -63,8 +68,9 @@ func (c *logsServiceClient) Find(ctx context.Context, in *FindRequest, opts ...g
 }
 
 func (c *logsServiceClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(DeleteResponse)
-	err := c.cc.Invoke(ctx, LogsService_Delete_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, LogsService_Delete_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -73,7 +79,10 @@ func (c *logsServiceClient) Delete(ctx context.Context, in *DeleteRequest, opts
 
 // LogsServiceServer is the server API for LogsService service.
 // All implementations must embed UnimplementedLogsServiceServer
-// for forward compatibility
+// for forward compatibility.
+//
+// Сервис для записи активности в системе
+// Позволяет всем компонентам системы записывать логи в единое хранилище и получать их оттуда
 type LogsServiceServer interface {
 	// Метод для записи логов
 	Log(context.Context, *LogRequest) (*LogResponse, error)
@@ -84,9 +93,12 @@ type LogsServiceServer interface {
 	mustEmbedUnimplementedLogsServiceServer()
 }
 
-// UnimplementedLogsServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedLogsServiceServer struct {
-}
+// UnimplementedLogsServiceServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedLogsServiceServer struct{}
 
 func (UnimplementedLogsServiceServer) Log(context.Context, *LogRequest) (*LogResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Log not implemented")
@@ -98,6 +110,7 @@ func (UnimplementedLogsServiceServer) Delete(context.Context, *DeleteRequest) (*
 	return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented")
 }
 func (UnimplementedLogsServiceServer) mustEmbedUnimplementedLogsServiceServer() {}
+func (UnimplementedLogsServiceServer) testEmbeddedByValue()                     {}
 
 // UnsafeLogsServiceServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to LogsServiceServer will
@@ -107,6 +120,13 @@ type UnsafeLogsServiceServer interface {
 }
 
 func RegisterLogsServiceServer(s grpc.ServiceRegistrar, srv LogsServiceServer) {
+	// If the following call pancis, it indicates UnimplementedLogsServiceServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&LogsService_ServiceDesc, srv)
 }
 
diff --git a/proto/members/members.pb.go b/proto/members/members.pb.go
index a939a3f8189f6f100b61a4ad070a3c4fb30fb023..deb1ac559b3f59243f01b8ab142b57e3c98ad675 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: members/members.proto
 
 package members
@@ -759,7 +759,7 @@ func file_members_members_proto_rawDescGZIP() []byte {
 
 var file_members_members_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
 var file_members_members_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
-var file_members_members_proto_goTypes = []interface{}{
+var file_members_members_proto_goTypes = []any{
 	(Role)(0),                         // 0: account.members.Role
 	(*Member)(nil),                    // 1: account.members.Member
 	(*SetRequest)(nil),                // 2: account.members.SetRequest
@@ -807,7 +807,7 @@ func file_members_members_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_members_members_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_members_members_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Member); i {
 			case 0:
 				return &v.state
@@ -819,7 +819,7 @@ func file_members_members_proto_init() {
 				return nil
 			}
 		}
-		file_members_members_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_members_members_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*SetRequest); i {
 			case 0:
 				return &v.state
@@ -831,7 +831,7 @@ func file_members_members_proto_init() {
 				return nil
 			}
 		}
-		file_members_members_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_members_members_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*GetRequest); i {
 			case 0:
 				return &v.state
@@ -843,7 +843,7 @@ func file_members_members_proto_init() {
 				return nil
 			}
 		}
-		file_members_members_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_members_members_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*GetResponse); i {
 			case 0:
 				return &v.state
@@ -855,7 +855,7 @@ func file_members_members_proto_init() {
 				return nil
 			}
 		}
-		file_members_members_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_members_members_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*RemoveRequest); i {
 			case 0:
 				return &v.state
@@ -867,7 +867,7 @@ func file_members_members_proto_init() {
 				return nil
 			}
 		}
-		file_members_members_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_members_members_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*ListMembersRequest); i {
 			case 0:
 				return &v.state
@@ -879,7 +879,7 @@ func file_members_members_proto_init() {
 				return nil
 			}
 		}
-		file_members_members_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_members_members_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*ListMembersResponse); i {
 			case 0:
 				return &v.state
@@ -891,7 +891,7 @@ func file_members_members_proto_init() {
 				return nil
 			}
 		}
-		file_members_members_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_members_members_proto_msgTypes[7].Exporter = func(v any, i int) any {
 			switch v := v.(*ListOrganizationsRequest); i {
 			case 0:
 				return &v.state
@@ -903,7 +903,7 @@ func file_members_members_proto_init() {
 				return nil
 			}
 		}
-		file_members_members_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+		file_members_members_proto_msgTypes[8].Exporter = func(v any, i int) any {
 			switch v := v.(*ListOrganizationsResponse); i {
 			case 0:
 				return &v.state
@@ -915,7 +915,7 @@ func file_members_members_proto_init() {
 				return nil
 			}
 		}
-		file_members_members_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+		file_members_members_proto_msgTypes[9].Exporter = func(v any, i int) any {
 			switch v := v.(*OnCollaboratorSetRequest); i {
 			case 0:
 				return &v.state
@@ -927,7 +927,7 @@ func file_members_members_proto_init() {
 				return nil
 			}
 		}
-		file_members_members_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+		file_members_members_proto_msgTypes[10].Exporter = func(v any, i int) any {
 			switch v := v.(*OnCollaboratorSetResponse); i {
 			case 0:
 				return &v.state
diff --git a/proto/members/members_grpc.pb.go b/proto/members/members_grpc.pb.go
index c0216bfe1d7c10c12a4d02d32b5ba6774cfcd59c..8b6677f46851145550d3f509ba230997c9848e4d 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.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: members/members.proto
 
 package members
@@ -16,8 +16,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Members_Set_FullMethodName               = "/account.members.Members/Set"
@@ -47,8 +47,9 @@ func NewMembersClient(cc grpc.ClientConnInterface) MembersClient {
 }
 
 func (c *membersClient) Set(ctx context.Context, in *SetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Members_Set_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Members_Set_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -56,8 +57,9 @@ func (c *membersClient) Set(ctx context.Context, in *SetRequest, opts ...grpc.Ca
 }
 
 func (c *membersClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, Members_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Members_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -65,8 +67,9 @@ func (c *membersClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.Ca
 }
 
 func (c *membersClient) Remove(ctx context.Context, in *RemoveRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Members_Remove_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Members_Remove_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -74,8 +77,9 @@ func (c *membersClient) Remove(ctx context.Context, in *RemoveRequest, opts ...g
 }
 
 func (c *membersClient) ListMembers(ctx context.Context, in *ListMembersRequest, opts ...grpc.CallOption) (*ListMembersResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListMembersResponse)
-	err := c.cc.Invoke(ctx, Members_ListMembers_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Members_ListMembers_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -83,8 +87,9 @@ func (c *membersClient) ListMembers(ctx context.Context, in *ListMembersRequest,
 }
 
 func (c *membersClient) ListOrganizations(ctx context.Context, in *ListOrganizationsRequest, opts ...grpc.CallOption) (*ListOrganizationsResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListOrganizationsResponse)
-	err := c.cc.Invoke(ctx, Members_ListOrganizations_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Members_ListOrganizations_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -93,7 +98,7 @@ func (c *membersClient) ListOrganizations(ctx context.Context, in *ListOrganizat
 
 // MembersServer is the server API for Members service.
 // All implementations must embed UnimplementedMembersServer
-// for forward compatibility
+// for forward compatibility.
 type MembersServer interface {
 	Set(context.Context, *SetRequest) (*emptypb.Empty, error)
 	Get(context.Context, *GetRequest) (*GetResponse, error)
@@ -103,9 +108,12 @@ type MembersServer interface {
 	mustEmbedUnimplementedMembersServer()
 }
 
-// UnimplementedMembersServer must be embedded to have forward compatible implementations.
-type UnimplementedMembersServer struct {
-}
+// UnimplementedMembersServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedMembersServer struct{}
 
 func (UnimplementedMembersServer) Set(context.Context, *SetRequest) (*emptypb.Empty, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Set not implemented")
@@ -123,6 +131,7 @@ func (UnimplementedMembersServer) ListOrganizations(context.Context, *ListOrgani
 	return nil, status.Errorf(codes.Unimplemented, "method ListOrganizations not implemented")
 }
 func (UnimplementedMembersServer) mustEmbedUnimplementedMembersServer() {}
+func (UnimplementedMembersServer) testEmbeddedByValue()                 {}
 
 // UnsafeMembersServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to MembersServer will
@@ -132,6 +141,13 @@ type UnsafeMembersServer interface {
 }
 
 func RegisterMembersServer(s grpc.ServiceRegistrar, srv MembersServer) {
+	// If the following call pancis, it indicates UnimplementedMembersServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Members_ServiceDesc, srv)
 }
 
@@ -277,8 +293,9 @@ func NewObserverClient(cc grpc.ClientConnInterface) ObserverClient {
 }
 
 func (c *observerClient) OnCollaboratorSet(ctx context.Context, in *OnCollaboratorSetRequest, opts ...grpc.CallOption) (*OnCollaboratorSetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(OnCollaboratorSetResponse)
-	err := c.cc.Invoke(ctx, Observer_OnCollaboratorSet_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Observer_OnCollaboratorSet_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -287,20 +304,24 @@ func (c *observerClient) OnCollaboratorSet(ctx context.Context, in *OnCollaborat
 
 // ObserverServer is the server API for Observer service.
 // All implementations must embed UnimplementedObserverServer
-// for forward compatibility
+// for forward compatibility.
 type ObserverServer interface {
 	OnCollaboratorSet(context.Context, *OnCollaboratorSetRequest) (*OnCollaboratorSetResponse, error)
 	mustEmbedUnimplementedObserverServer()
 }
 
-// UnimplementedObserverServer must be embedded to have forward compatible implementations.
-type UnimplementedObserverServer struct {
-}
+// UnimplementedObserverServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedObserverServer struct{}
 
 func (UnimplementedObserverServer) OnCollaboratorSet(context.Context, *OnCollaboratorSetRequest) (*OnCollaboratorSetResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method OnCollaboratorSet not implemented")
 }
 func (UnimplementedObserverServer) mustEmbedUnimplementedObserverServer() {}
+func (UnimplementedObserverServer) testEmbeddedByValue()                  {}
 
 // UnsafeObserverServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to ObserverServer will
@@ -310,6 +331,13 @@ type UnsafeObserverServer interface {
 }
 
 func RegisterObserverServer(s grpc.ServiceRegistrar, srv ObserverServer) {
+	// If the following call pancis, it indicates UnimplementedObserverServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Observer_ServiceDesc, srv)
 }
 
diff --git a/proto/organizations/organizations.pb.go b/proto/organizations/organizations.pb.go
index b744640573280053557944e9cbd93a43b0be7b46..d2a220a15017de2caa99f33957d2acd000589ebd 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: organizations/organizations.proto
 
 package organizations
@@ -654,7 +654,7 @@ func file_organizations_organizations_proto_rawDescGZIP() []byte {
 }
 
 var file_organizations_organizations_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
-var file_organizations_organizations_proto_goTypes = []interface{}{
+var file_organizations_organizations_proto_goTypes = []any{
 	(*Organization)(nil),       // 0: account.organizations.Organization
 	(*CreateRequest)(nil),      // 1: account.organizations.CreateRequest
 	(*CreateResponse)(nil),     // 2: account.organizations.CreateResponse
@@ -699,7 +699,7 @@ func file_organizations_organizations_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_organizations_organizations_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_organizations_organizations_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Organization); i {
 			case 0:
 				return &v.state
@@ -711,7 +711,7 @@ func file_organizations_organizations_proto_init() {
 				return nil
 			}
 		}
-		file_organizations_organizations_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_organizations_organizations_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateRequest); i {
 			case 0:
 				return &v.state
@@ -723,7 +723,7 @@ func file_organizations_organizations_proto_init() {
 				return nil
 			}
 		}
-		file_organizations_organizations_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_organizations_organizations_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateResponse); i {
 			case 0:
 				return &v.state
@@ -735,7 +735,7 @@ func file_organizations_organizations_proto_init() {
 				return nil
 			}
 		}
-		file_organizations_organizations_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_organizations_organizations_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*GetRequest); i {
 			case 0:
 				return &v.state
@@ -747,7 +747,7 @@ func file_organizations_organizations_proto_init() {
 				return nil
 			}
 		}
-		file_organizations_organizations_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_organizations_organizations_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*GetResponse); i {
 			case 0:
 				return &v.state
@@ -759,7 +759,7 @@ func file_organizations_organizations_proto_init() {
 				return nil
 			}
 		}
-		file_organizations_organizations_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_organizations_organizations_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*UpdateRequest); i {
 			case 0:
 				return &v.state
@@ -771,7 +771,7 @@ func file_organizations_organizations_proto_init() {
 				return nil
 			}
 		}
-		file_organizations_organizations_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_organizations_organizations_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*DeleteRequest); i {
 			case 0:
 				return &v.state
@@ -783,7 +783,7 @@ func file_organizations_organizations_proto_init() {
 				return nil
 			}
 		}
-		file_organizations_organizations_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_organizations_organizations_proto_msgTypes[7].Exporter = func(v any, i int) any {
 			switch v := v.(*Filter); i {
 			case 0:
 				return &v.state
@@ -795,7 +795,7 @@ func file_organizations_organizations_proto_init() {
 				return nil
 			}
 		}
-		file_organizations_organizations_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+		file_organizations_organizations_proto_msgTypes[8].Exporter = func(v any, i int) any {
 			switch v := v.(*FindRequest); i {
 			case 0:
 				return &v.state
@@ -807,7 +807,7 @@ func file_organizations_organizations_proto_init() {
 				return nil
 			}
 		}
-		file_organizations_organizations_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+		file_organizations_organizations_proto_msgTypes[9].Exporter = func(v any, i int) any {
 			switch v := v.(*FindResponse); i {
 			case 0:
 				return &v.state
@@ -820,7 +820,7 @@ func file_organizations_organizations_proto_init() {
 			}
 		}
 	}
-	file_organizations_organizations_proto_msgTypes[0].OneofWrappers = []interface{}{}
+	file_organizations_organizations_proto_msgTypes[0].OneofWrappers = []any{}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/proto/organizations/organizations_grpc.pb.go b/proto/organizations/organizations_grpc.pb.go
index dc737ac9a2eb95cb6c977f537216942dfd4164d7..09aa7525515d4688ae40eed6aa7d0107feb5ad62 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.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: organizations/organizations.proto
 
 package organizations
@@ -16,8 +16,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Organizations_Create_FullMethodName = "/account.organizations.Organizations/Create"
@@ -47,8 +47,9 @@ func NewOrganizationsClient(cc grpc.ClientConnInterface) OrganizationsClient {
 }
 
 func (c *organizationsClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CreateResponse)
-	err := c.cc.Invoke(ctx, Organizations_Create_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Organizations_Create_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -56,8 +57,9 @@ func (c *organizationsClient) Create(ctx context.Context, in *CreateRequest, opt
 }
 
 func (c *organizationsClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, Organizations_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Organizations_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -65,8 +67,9 @@ func (c *organizationsClient) Get(ctx context.Context, in *GetRequest, opts ...g
 }
 
 func (c *organizationsClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Organizations_Delete_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Organizations_Delete_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -74,8 +77,9 @@ func (c *organizationsClient) Delete(ctx context.Context, in *DeleteRequest, opt
 }
 
 func (c *organizationsClient) Find(ctx context.Context, in *FindRequest, opts ...grpc.CallOption) (*FindResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(FindResponse)
-	err := c.cc.Invoke(ctx, Organizations_Find_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Organizations_Find_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -83,8 +87,9 @@ func (c *organizationsClient) Find(ctx context.Context, in *FindRequest, opts ..
 }
 
 func (c *organizationsClient) Update(ctx context.Context, in *UpdateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Organizations_Update_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Organizations_Update_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -93,7 +98,7 @@ func (c *organizationsClient) Update(ctx context.Context, in *UpdateRequest, opt
 
 // OrganizationsServer is the server API for Organizations service.
 // All implementations must embed UnimplementedOrganizationsServer
-// for forward compatibility
+// for forward compatibility.
 type OrganizationsServer interface {
 	Create(context.Context, *CreateRequest) (*CreateResponse, error)
 	Get(context.Context, *GetRequest) (*GetResponse, error)
@@ -103,9 +108,12 @@ type OrganizationsServer interface {
 	mustEmbedUnimplementedOrganizationsServer()
 }
 
-// UnimplementedOrganizationsServer must be embedded to have forward compatible implementations.
-type UnimplementedOrganizationsServer struct {
-}
+// UnimplementedOrganizationsServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedOrganizationsServer struct{}
 
 func (UnimplementedOrganizationsServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
@@ -123,6 +131,7 @@ func (UnimplementedOrganizationsServer) Update(context.Context, *UpdateRequest)
 	return nil, status.Errorf(codes.Unimplemented, "method Update not implemented")
 }
 func (UnimplementedOrganizationsServer) mustEmbedUnimplementedOrganizationsServer() {}
+func (UnimplementedOrganizationsServer) testEmbeddedByValue()                       {}
 
 // UnsafeOrganizationsServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to OrganizationsServer will
@@ -132,6 +141,13 @@ type UnsafeOrganizationsServer interface {
 }
 
 func RegisterOrganizationsServer(s grpc.ServiceRegistrar, srv OrganizationsServer) {
+	// If the following call pancis, it indicates UnimplementedOrganizationsServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Organizations_ServiceDesc, srv)
 }
 
diff --git a/proto/references/references.pb.go b/proto/references/references.pb.go
index ae64ee5e6e6bcb54e75bc72e3dc2a91ffc609363..235312d912171d073957187c4087c563c010a58c 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.31.0
-// 	protoc        v4.25.1
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: references/references.proto
 
 package references
@@ -501,7 +501,7 @@ func file_references_references_proto_rawDescGZIP() []byte {
 }
 
 var file_references_references_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
-var file_references_references_proto_goTypes = []interface{}{
+var file_references_references_proto_goTypes = []any{
 	(*Reference)(nil),       // 0: content.references.Reference
 	(*GetRequest)(nil),      // 1: content.references.GetRequest
 	(*GetResponse)(nil),     // 2: content.references.GetResponse
@@ -536,7 +536,7 @@ func file_references_references_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_references_references_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_references_references_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Reference); i {
 			case 0:
 				return &v.state
@@ -548,7 +548,7 @@ func file_references_references_proto_init() {
 				return nil
 			}
 		}
-		file_references_references_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_references_references_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*GetRequest); i {
 			case 0:
 				return &v.state
@@ -560,7 +560,7 @@ func file_references_references_proto_init() {
 				return nil
 			}
 		}
-		file_references_references_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_references_references_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*GetResponse); i {
 			case 0:
 				return &v.state
@@ -572,7 +572,7 @@ func file_references_references_proto_init() {
 				return nil
 			}
 		}
-		file_references_references_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_references_references_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*PublishRequest); i {
 			case 0:
 				return &v.state
@@ -584,7 +584,7 @@ func file_references_references_proto_init() {
 				return nil
 			}
 		}
-		file_references_references_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_references_references_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*PublishResponse); i {
 			case 0:
 				return &v.state
@@ -596,7 +596,7 @@ func file_references_references_proto_init() {
 				return nil
 			}
 		}
-		file_references_references_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_references_references_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*GetOptions); i {
 			case 0:
 				return &v.state
diff --git a/proto/references/references_grpc.pb.go b/proto/references/references_grpc.pb.go
index fd9ac6d314115525396b0fd627de0b542f230ab1..f6b37c167ea54f950198a969a7c2f3420346d5c8 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.3.0
-// - protoc             v4.25.1
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: references/references.proto
 
 package references
@@ -15,8 +15,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	References_Get_FullMethodName     = "/content.references.References/Get"
@@ -26,6 +26,8 @@ const (
 // ReferencesClient is the client API for References 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.
+//
+// References сервис предназначен для работы со ссылками на записи
 type ReferencesClient interface {
 	// Get возвращает список записей по ссылкам
 	Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
@@ -51,8 +53,9 @@ func NewReferencesClient(cc grpc.ClientConnInterface) ReferencesClient {
 }
 
 func (c *referencesClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, References_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, References_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -60,8 +63,9 @@ func (c *referencesClient) Get(ctx context.Context, in *GetRequest, opts ...grpc
 }
 
 func (c *referencesClient) Publish(ctx context.Context, in *PublishRequest, opts ...grpc.CallOption) (*PublishResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(PublishResponse)
-	err := c.cc.Invoke(ctx, References_Publish_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, References_Publish_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -70,7 +74,9 @@ func (c *referencesClient) Publish(ctx context.Context, in *PublishRequest, opts
 
 // ReferencesServer is the server API for References service.
 // All implementations must embed UnimplementedReferencesServer
-// for forward compatibility
+// for forward compatibility.
+//
+// References сервис предназначен для работы со ссылками на записи
 type ReferencesServer interface {
 	// Get возвращает список записей по ссылкам
 	Get(context.Context, *GetRequest) (*GetResponse, error)
@@ -88,9 +94,12 @@ type ReferencesServer interface {
 	mustEmbedUnimplementedReferencesServer()
 }
 
-// UnimplementedReferencesServer must be embedded to have forward compatible implementations.
-type UnimplementedReferencesServer struct {
-}
+// UnimplementedReferencesServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedReferencesServer struct{}
 
 func (UnimplementedReferencesServer) Get(context.Context, *GetRequest) (*GetResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
@@ -99,6 +108,7 @@ func (UnimplementedReferencesServer) Publish(context.Context, *PublishRequest) (
 	return nil, status.Errorf(codes.Unimplemented, "method Publish not implemented")
 }
 func (UnimplementedReferencesServer) mustEmbedUnimplementedReferencesServer() {}
+func (UnimplementedReferencesServer) testEmbeddedByValue()                    {}
 
 // UnsafeReferencesServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to ReferencesServer will
@@ -108,6 +118,13 @@ type UnsafeReferencesServer interface {
 }
 
 func RegisterReferencesServer(s grpc.ServiceRegistrar, srv ReferencesServer) {
+	// If the following call pancis, it indicates UnimplementedReferencesServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&References_ServiceDesc, srv)
 }
 
diff --git a/proto/roles/roles.pb.go b/proto/roles/roles.pb.go
index 0d70814977a6b765b8377739bd3f43704b98ec02..380ce70fad2a498d1349c019238cb26086131c1f 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: roles/roles.proto
 
 package roles
@@ -605,7 +605,7 @@ func file_roles_roles_proto_rawDescGZIP() []byte {
 }
 
 var file_roles_roles_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
-var file_roles_roles_proto_goTypes = []interface{}{
+var file_roles_roles_proto_goTypes = []any{
 	(*Role)(nil),           // 0: content.roles.Role
 	(*CreateRequest)(nil),  // 1: content.roles.CreateRequest
 	(*CreateResponse)(nil), // 2: content.roles.CreateResponse
@@ -648,7 +648,7 @@ func file_roles_roles_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_roles_roles_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_roles_roles_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Role); i {
 			case 0:
 				return &v.state
@@ -660,7 +660,7 @@ func file_roles_roles_proto_init() {
 				return nil
 			}
 		}
-		file_roles_roles_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_roles_roles_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateRequest); i {
 			case 0:
 				return &v.state
@@ -672,7 +672,7 @@ func file_roles_roles_proto_init() {
 				return nil
 			}
 		}
-		file_roles_roles_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_roles_roles_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateResponse); i {
 			case 0:
 				return &v.state
@@ -684,7 +684,7 @@ func file_roles_roles_proto_init() {
 				return nil
 			}
 		}
-		file_roles_roles_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_roles_roles_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*GetRequest); i {
 			case 0:
 				return &v.state
@@ -696,7 +696,7 @@ func file_roles_roles_proto_init() {
 				return nil
 			}
 		}
-		file_roles_roles_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_roles_roles_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*GetResponse); i {
 			case 0:
 				return &v.state
@@ -708,7 +708,7 @@ func file_roles_roles_proto_init() {
 				return nil
 			}
 		}
-		file_roles_roles_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_roles_roles_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*UpdateRequest); i {
 			case 0:
 				return &v.state
@@ -720,7 +720,7 @@ func file_roles_roles_proto_init() {
 				return nil
 			}
 		}
-		file_roles_roles_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_roles_roles_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*ListRequest); i {
 			case 0:
 				return &v.state
@@ -732,7 +732,7 @@ func file_roles_roles_proto_init() {
 				return nil
 			}
 		}
-		file_roles_roles_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_roles_roles_proto_msgTypes[7].Exporter = func(v any, i int) any {
 			switch v := v.(*ListResponse); i {
 			case 0:
 				return &v.state
@@ -744,7 +744,7 @@ func file_roles_roles_proto_init() {
 				return nil
 			}
 		}
-		file_roles_roles_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+		file_roles_roles_proto_msgTypes[8].Exporter = func(v any, i int) any {
 			switch v := v.(*DeleteRequest); i {
 			case 0:
 				return &v.state
diff --git a/proto/roles/roles_grpc.pb.go b/proto/roles/roles_grpc.pb.go
index 13000eb2e08429aa6fcc93d5e133d4e3012c05ff..e82284338b495f0fc5ab7c67f419a0ca22e3484b 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.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: roles/roles.proto
 
 package roles
@@ -16,8 +16,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Roles_Create_FullMethodName = "/content.roles.Roles/Create"
@@ -52,8 +52,9 @@ func NewRolesClient(cc grpc.ClientConnInterface) RolesClient {
 }
 
 func (c *rolesClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CreateResponse)
-	err := c.cc.Invoke(ctx, Roles_Create_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Roles_Create_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -61,8 +62,9 @@ func (c *rolesClient) Create(ctx context.Context, in *CreateRequest, opts ...grp
 }
 
 func (c *rolesClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, Roles_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Roles_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -70,8 +72,9 @@ func (c *rolesClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.Call
 }
 
 func (c *rolesClient) Update(ctx context.Context, in *UpdateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Roles_Update_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Roles_Update_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -79,8 +82,9 @@ func (c *rolesClient) Update(ctx context.Context, in *UpdateRequest, opts ...grp
 }
 
 func (c *rolesClient) List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListResponse)
-	err := c.cc.Invoke(ctx, Roles_List_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Roles_List_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -88,8 +92,9 @@ func (c *rolesClient) List(ctx context.Context, in *ListRequest, opts ...grpc.Ca
 }
 
 func (c *rolesClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Roles_Delete_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Roles_Delete_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -98,7 +103,7 @@ func (c *rolesClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grp
 
 // RolesServer is the server API for Roles service.
 // All implementations must embed UnimplementedRolesServer
-// for forward compatibility
+// for forward compatibility.
 type RolesServer interface {
 	// Create - создает роль в рамках пространства
 	Create(context.Context, *CreateRequest) (*CreateResponse, error)
@@ -113,9 +118,12 @@ type RolesServer interface {
 	mustEmbedUnimplementedRolesServer()
 }
 
-// UnimplementedRolesServer must be embedded to have forward compatible implementations.
-type UnimplementedRolesServer struct {
-}
+// UnimplementedRolesServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedRolesServer struct{}
 
 func (UnimplementedRolesServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
@@ -133,6 +141,7 @@ func (UnimplementedRolesServer) Delete(context.Context, *DeleteRequest) (*emptyp
 	return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented")
 }
 func (UnimplementedRolesServer) mustEmbedUnimplementedRolesServer() {}
+func (UnimplementedRolesServer) testEmbeddedByValue()               {}
 
 // UnsafeRolesServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to RolesServer will
@@ -142,6 +151,13 @@ type UnsafeRolesServer interface {
 }
 
 func RegisterRolesServer(s grpc.ServiceRegistrar, srv RolesServer) {
+	// If the following call pancis, it indicates UnimplementedRolesServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Roles_ServiceDesc, srv)
 }
 
diff --git a/proto/spaces/spaces.pb.go b/proto/spaces/spaces.pb.go
index e80bef129a6d77ce0a3c9306f9d5fc3af7785ee8..32a78ef8be7bf42af39daa7b3199311efe483c55 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.31.0
-// 	protoc        v4.25.1
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: spaces/spaces.proto
 
 package spaces
@@ -1378,7 +1378,7 @@ func file_spaces_spaces_proto_rawDescGZIP() []byte {
 
 var file_spaces_spaces_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
 var file_spaces_spaces_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
-var file_spaces_spaces_proto_goTypes = []interface{}{
+var file_spaces_spaces_proto_goTypes = []any{
 	(State)(0),                    // 0: content.spaces.State
 	(*Space)(nil),                 // 1: content.spaces.Space
 	(*StateInfo)(nil),             // 2: content.spaces.StateInfo
@@ -1456,7 +1456,7 @@ func file_spaces_spaces_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_spaces_spaces_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*Space); i {
 			case 0:
 				return &v.state
@@ -1468,7 +1468,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*StateInfo); i {
 			case 0:
 				return &v.state
@@ -1480,7 +1480,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*Config); i {
 			case 0:
 				return &v.state
@@ -1492,7 +1492,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateRequest); i {
 			case 0:
 				return &v.state
@@ -1504,7 +1504,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateResponse); i {
 			case 0:
 				return &v.state
@@ -1516,7 +1516,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*GetRequest); i {
 			case 0:
 				return &v.state
@@ -1528,7 +1528,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*GetResponse); i {
 			case 0:
 				return &v.state
@@ -1540,7 +1540,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[7].Exporter = func(v any, i int) any {
 			switch v := v.(*ListRequest); i {
 			case 0:
 				return &v.state
@@ -1552,7 +1552,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[8].Exporter = func(v any, i int) any {
 			switch v := v.(*ListResponse); i {
 			case 0:
 				return &v.state
@@ -1564,7 +1564,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[9].Exporter = func(v any, i int) any {
 			switch v := v.(*UpdateRequest); i {
 			case 0:
 				return &v.state
@@ -1576,7 +1576,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[10].Exporter = func(v any, i int) any {
 			switch v := v.(*UpdateConfigRequest); i {
 			case 0:
 				return &v.state
@@ -1588,7 +1588,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[11].Exporter = func(v any, i int) any {
 			switch v := v.(*DeleteRequest); i {
 			case 0:
 				return &v.state
@@ -1600,7 +1600,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[12].Exporter = func(v any, i int) any {
 			switch v := v.(*TransferRequest); i {
 			case 0:
 				return &v.state
@@ -1612,7 +1612,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[13].Exporter = func(v any, i int) any {
 			switch v := v.(*AbortTransferRequest); i {
 			case 0:
 				return &v.state
@@ -1624,7 +1624,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[14].Exporter = func(v any, i int) any {
 			switch v := v.(*ListTransfersRequest); i {
 			case 0:
 				return &v.state
@@ -1636,7 +1636,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[15].Exporter = func(v any, i int) any {
 			switch v := v.(*ListTransfersResponse); i {
 			case 0:
 				return &v.state
@@ -1648,7 +1648,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[16].Exporter = func(v any, i int) any {
 			switch v := v.(*MoveRequest); i {
 			case 0:
 				return &v.state
@@ -1660,7 +1660,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[17].Exporter = func(v any, i int) any {
 			switch v := v.(*Filter); i {
 			case 0:
 				return &v.state
@@ -1672,7 +1672,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[18].Exporter = func(v any, i int) any {
 			switch v := v.(*FindRequest); i {
 			case 0:
 				return &v.state
@@ -1684,7 +1684,7 @@ func file_spaces_spaces_proto_init() {
 				return nil
 			}
 		}
-		file_spaces_spaces_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
+		file_spaces_spaces_proto_msgTypes[19].Exporter = func(v any, i int) any {
 			switch v := v.(*FindResponse); i {
 			case 0:
 				return &v.state
diff --git a/proto/spaces/spaces_grpc.pb.go b/proto/spaces/spaces_grpc.pb.go
index 96702e6cf3c2abf3bf831dbd9cedf99a801a7932..a7d50aee15acb36577d0cf7ef56d29e3eceaaaaa 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.3.0
-// - protoc             v4.25.1
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: spaces/spaces.proto
 
 package spaces
@@ -16,8 +16,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Spaces_Create_FullMethodName        = "/content.spaces.Spaces/Create"
@@ -72,8 +72,9 @@ func NewSpacesClient(cc grpc.ClientConnInterface) SpacesClient {
 }
 
 func (c *spacesClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CreateResponse)
-	err := c.cc.Invoke(ctx, Spaces_Create_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_Create_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -81,8 +82,9 @@ 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) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, Spaces_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -90,8 +92,9 @@ 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) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListResponse)
-	err := c.cc.Invoke(ctx, Spaces_List_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_List_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -99,8 +102,9 @@ func (c *spacesClient) List(ctx context.Context, in *ListRequest, opts ...grpc.C
 }
 
 func (c *spacesClient) Find(ctx context.Context, in *FindRequest, opts ...grpc.CallOption) (*FindResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(FindResponse)
-	err := c.cc.Invoke(ctx, Spaces_Find_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_Find_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -108,8 +112,9 @@ func (c *spacesClient) Find(ctx context.Context, in *FindRequest, opts ...grpc.C
 }
 
 func (c *spacesClient) Update(ctx context.Context, in *UpdateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Spaces_Update_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_Update_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -117,8 +122,9 @@ 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) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Spaces_UpdateConfig_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_UpdateConfig_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -126,8 +132,9 @@ func (c *spacesClient) UpdateConfig(ctx context.Context, in *UpdateConfigRequest
 }
 
 func (c *spacesClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Spaces_Delete_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_Delete_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -135,8 +142,9 @@ 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) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Spaces_Transfer_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_Transfer_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -144,8 +152,9 @@ 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) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Spaces_AbortTransfer_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_AbortTransfer_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -153,8 +162,9 @@ func (c *spacesClient) AbortTransfer(ctx context.Context, in *AbortTransferReque
 }
 
 func (c *spacesClient) ListTransfers(ctx context.Context, in *ListTransfersRequest, opts ...grpc.CallOption) (*ListTransfersResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListTransfersResponse)
-	err := c.cc.Invoke(ctx, Spaces_ListTransfers_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_ListTransfers_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -162,8 +172,9 @@ func (c *spacesClient) ListTransfers(ctx context.Context, in *ListTransfersReque
 }
 
 func (c *spacesClient) Move(ctx context.Context, in *MoveRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Spaces_Move_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Spaces_Move_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -172,7 +183,7 @@ func (c *spacesClient) Move(ctx context.Context, in *MoveRequest, opts ...grpc.C
 
 // SpacesServer is the server API for Spaces service.
 // All implementations must embed UnimplementedSpacesServer
-// for forward compatibility
+// for forward compatibility.
 type SpacesServer interface {
 	Create(context.Context, *CreateRequest) (*CreateResponse, error)
 	Get(context.Context, *GetRequest) (*GetResponse, error)
@@ -201,9 +212,12 @@ type SpacesServer interface {
 	mustEmbedUnimplementedSpacesServer()
 }
 
-// UnimplementedSpacesServer must be embedded to have forward compatible implementations.
-type UnimplementedSpacesServer struct {
-}
+// UnimplementedSpacesServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedSpacesServer struct{}
 
 func (UnimplementedSpacesServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
@@ -239,6 +253,7 @@ func (UnimplementedSpacesServer) Move(context.Context, *MoveRequest) (*emptypb.E
 	return nil, status.Errorf(codes.Unimplemented, "method Move not implemented")
 }
 func (UnimplementedSpacesServer) mustEmbedUnimplementedSpacesServer() {}
+func (UnimplementedSpacesServer) testEmbeddedByValue()                {}
 
 // UnsafeSpacesServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to SpacesServer will
@@ -248,6 +263,13 @@ type UnsafeSpacesServer interface {
 }
 
 func RegisterSpacesServer(s grpc.ServiceRegistrar, srv SpacesServer) {
+	// If the following call pancis, it indicates UnimplementedSpacesServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Spaces_ServiceDesc, srv)
 }
 
diff --git a/proto/users/users.pb.go b/proto/users/users.pb.go
index 18f49f1a3c2e75c911a5f783e9f008da8d9c4c79..23f9b300f1331883728dfb7a5355adba53e49306 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: users/users.proto
 
 package users
@@ -839,7 +839,7 @@ func file_users_users_proto_rawDescGZIP() []byte {
 }
 
 var file_users_users_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
-var file_users_users_proto_goTypes = []interface{}{
+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
@@ -894,7 +894,7 @@ func file_users_users_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_users_users_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_users_users_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*User); i {
 			case 0:
 				return &v.state
@@ -906,7 +906,7 @@ func file_users_users_proto_init() {
 				return nil
 			}
 		}
-		file_users_users_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+		file_users_users_proto_msgTypes[1].Exporter = func(v any, i int) any {
 			switch v := v.(*Filter); i {
 			case 0:
 				return &v.state
@@ -918,7 +918,7 @@ func file_users_users_proto_init() {
 				return nil
 			}
 		}
-		file_users_users_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+		file_users_users_proto_msgTypes[2].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateRequest); i {
 			case 0:
 				return &v.state
@@ -930,7 +930,7 @@ func file_users_users_proto_init() {
 				return nil
 			}
 		}
-		file_users_users_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+		file_users_users_proto_msgTypes[3].Exporter = func(v any, i int) any {
 			switch v := v.(*CreateResponse); i {
 			case 0:
 				return &v.state
@@ -942,7 +942,7 @@ func file_users_users_proto_init() {
 				return nil
 			}
 		}
-		file_users_users_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+		file_users_users_proto_msgTypes[4].Exporter = func(v any, i int) any {
 			switch v := v.(*GetRequest); i {
 			case 0:
 				return &v.state
@@ -954,7 +954,7 @@ func file_users_users_proto_init() {
 				return nil
 			}
 		}
-		file_users_users_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+		file_users_users_proto_msgTypes[5].Exporter = func(v any, i int) any {
 			switch v := v.(*GetResponse); i {
 			case 0:
 				return &v.state
@@ -966,7 +966,7 @@ func file_users_users_proto_init() {
 				return nil
 			}
 		}
-		file_users_users_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+		file_users_users_proto_msgTypes[6].Exporter = func(v any, i int) any {
 			switch v := v.(*FindRequest); i {
 			case 0:
 				return &v.state
@@ -978,7 +978,7 @@ func file_users_users_proto_init() {
 				return nil
 			}
 		}
-		file_users_users_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+		file_users_users_proto_msgTypes[7].Exporter = func(v any, i int) any {
 			switch v := v.(*FindResponse); i {
 			case 0:
 				return &v.state
@@ -990,7 +990,7 @@ func file_users_users_proto_init() {
 				return nil
 			}
 		}
-		file_users_users_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+		file_users_users_proto_msgTypes[8].Exporter = func(v any, i int) any {
 			switch v := v.(*UpdateRequest); i {
 			case 0:
 				return &v.state
@@ -1002,7 +1002,7 @@ func file_users_users_proto_init() {
 				return nil
 			}
 		}
-		file_users_users_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+		file_users_users_proto_msgTypes[9].Exporter = func(v any, i int) any {
 			switch v := v.(*DeleteRequest); i {
 			case 0:
 				return &v.state
@@ -1014,7 +1014,7 @@ func file_users_users_proto_init() {
 				return nil
 			}
 		}
-		file_users_users_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+		file_users_users_proto_msgTypes[10].Exporter = func(v any, i int) any {
 			switch v := v.(*GetByIdentityRequest); i {
 			case 0:
 				return &v.state
@@ -1026,7 +1026,7 @@ func file_users_users_proto_init() {
 				return nil
 			}
 		}
-		file_users_users_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+		file_users_users_proto_msgTypes[11].Exporter = func(v any, i int) any {
 			switch v := v.(*GetByIdentityResponse); i {
 			case 0:
 				return &v.state
diff --git a/proto/users/users_grpc.pb.go b/proto/users/users_grpc.pb.go
index 30a2b84431e53679e4b92f0f3db43ffc8d0e190c..20bc9b68454a328d389f4a45d77b4d2a8bb4cade 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.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: users/users.proto
 
 package users
@@ -16,8 +16,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Users_Create_FullMethodName        = "/account.users.Users/Create"
@@ -59,8 +59,9 @@ func NewUsersClient(cc grpc.ClientConnInterface) UsersClient {
 }
 
 func (c *usersClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CreateResponse)
-	err := c.cc.Invoke(ctx, Users_Create_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Users_Create_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -68,8 +69,9 @@ func (c *usersClient) Create(ctx context.Context, in *CreateRequest, opts ...grp
 }
 
 func (c *usersClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, Users_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Users_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -77,8 +79,9 @@ func (c *usersClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.Call
 }
 
 func (c *usersClient) Find(ctx context.Context, in *FindRequest, opts ...grpc.CallOption) (*FindResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(FindResponse)
-	err := c.cc.Invoke(ctx, Users_Find_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Users_Find_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -86,8 +89,9 @@ func (c *usersClient) Find(ctx context.Context, in *FindRequest, opts ...grpc.Ca
 }
 
 func (c *usersClient) Update(ctx context.Context, in *UpdateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Users_Update_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Users_Update_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -95,8 +99,9 @@ func (c *usersClient) Update(ctx context.Context, in *UpdateRequest, opts ...grp
 }
 
 func (c *usersClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(emptypb.Empty)
-	err := c.cc.Invoke(ctx, Users_Delete_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Users_Delete_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -104,8 +109,9 @@ func (c *usersClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grp
 }
 
 func (c *usersClient) GetByIdentity(ctx context.Context, in *GetByIdentityRequest, opts ...grpc.CallOption) (*GetByIdentityResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetByIdentityResponse)
-	err := c.cc.Invoke(ctx, Users_GetByIdentity_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Users_GetByIdentity_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -114,7 +120,7 @@ func (c *usersClient) GetByIdentity(ctx context.Context, in *GetByIdentityReques
 
 // UsersServer is the server API for Users service.
 // All implementations must embed UnimplementedUsersServer
-// for forward compatibility
+// for forward compatibility.
 type UsersServer interface {
 	// Создание пользователя или регистрация текущего пользователя в системе, если create.id == `current`
 	Create(context.Context, *CreateRequest) (*CreateResponse, error)
@@ -135,9 +141,12 @@ type UsersServer interface {
 	mustEmbedUnimplementedUsersServer()
 }
 
-// UnimplementedUsersServer must be embedded to have forward compatible implementations.
-type UnimplementedUsersServer struct {
-}
+// UnimplementedUsersServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedUsersServer struct{}
 
 func (UnimplementedUsersServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
@@ -158,6 +167,7 @@ func (UnimplementedUsersServer) GetByIdentity(context.Context, *GetByIdentityReq
 	return nil, status.Errorf(codes.Unimplemented, "method GetByIdentity not implemented")
 }
 func (UnimplementedUsersServer) mustEmbedUnimplementedUsersServer() {}
+func (UnimplementedUsersServer) testEmbeddedByValue()               {}
 
 // UnsafeUsersServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to UsersServer will
@@ -167,6 +177,13 @@ type UnsafeUsersServer interface {
 }
 
 func RegisterUsersServer(s grpc.ServiceRegistrar, srv UsersServer) {
+	// If the following call pancis, it indicates UnimplementedUsersServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Users_ServiceDesc, srv)
 }
 
diff --git a/proto/versions/account/versions.pb.go b/proto/versions/account/versions.pb.go
index 9db5b3d2864ba0de22a950db158d66c3f488a36c..b1c95aba8a1f6a6d62ea2e0ac1102fe145f95178 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: versions/account/versions.proto
 
 package account
@@ -105,7 +105,7 @@ func file_versions_account_versions_proto_rawDescGZIP() []byte {
 }
 
 var file_versions_account_versions_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_versions_account_versions_proto_goTypes = []interface{}{
+var file_versions_account_versions_proto_goTypes = []any{
 	(*GetResponse)(nil),    // 0: account.GetResponse
 	(*common.Version)(nil), // 1: common.Version
 	(*emptypb.Empty)(nil),  // 2: google.protobuf.Empty
@@ -127,7 +127,7 @@ func file_versions_account_versions_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_versions_account_versions_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_versions_account_versions_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*GetResponse); i {
 			case 0:
 				return &v.state
diff --git a/proto/versions/account/versions_grpc.pb.go b/proto/versions/account/versions_grpc.pb.go
index 6d3fd60aff0ad0692c3a2ec698607ee4c59b9f97..06fb791413646cdc56dc021103c511d73689d7c8 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.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: versions/account/versions.proto
 
 package account
@@ -16,8 +16,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Versions_Get_FullMethodName = "/account.Versions/Get"
@@ -39,8 +39,9 @@ func NewVersionsClient(cc grpc.ClientConnInterface) VersionsClient {
 }
 
 func (c *versionsClient) Get(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, Versions_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Versions_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -49,20 +50,24 @@ func (c *versionsClient) Get(ctx context.Context, in *emptypb.Empty, opts ...grp
 
 // VersionsServer is the server API for Versions service.
 // All implementations must embed UnimplementedVersionsServer
-// for forward compatibility
+// for forward compatibility.
 type VersionsServer interface {
 	Get(context.Context, *emptypb.Empty) (*GetResponse, error)
 	mustEmbedUnimplementedVersionsServer()
 }
 
-// UnimplementedVersionsServer must be embedded to have forward compatible implementations.
-type UnimplementedVersionsServer struct {
-}
+// UnimplementedVersionsServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedVersionsServer struct{}
 
 func (UnimplementedVersionsServer) Get(context.Context, *emptypb.Empty) (*GetResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
 }
 func (UnimplementedVersionsServer) mustEmbedUnimplementedVersionsServer() {}
+func (UnimplementedVersionsServer) testEmbeddedByValue()                  {}
 
 // UnsafeVersionsServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to VersionsServer will
@@ -72,6 +77,13 @@ type UnsafeVersionsServer interface {
 }
 
 func RegisterVersionsServer(s grpc.ServiceRegistrar, srv VersionsServer) {
+	// If the following call pancis, it indicates UnimplementedVersionsServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Versions_ServiceDesc, srv)
 }
 
diff --git a/proto/versions/content/versions.pb.go b/proto/versions/content/versions.pb.go
index c399b1a29d2e793d7918eaa456670d4b2a6d02ce..fd3d05b80b73f7f3195f93753457b20202d74b3b 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.31.0
-// 	protoc        v4.24.3
+// 	protoc-gen-go v1.34.2
+// 	protoc        v5.27.3
 // source: versions/content/versions.proto
 
 package content
@@ -105,7 +105,7 @@ func file_versions_content_versions_proto_rawDescGZIP() []byte {
 }
 
 var file_versions_content_versions_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_versions_content_versions_proto_goTypes = []interface{}{
+var file_versions_content_versions_proto_goTypes = []any{
 	(*GetResponse)(nil),    // 0: content.GetResponse
 	(*common.Version)(nil), // 1: common.Version
 	(*emptypb.Empty)(nil),  // 2: google.protobuf.Empty
@@ -127,7 +127,7 @@ func file_versions_content_versions_proto_init() {
 		return
 	}
 	if !protoimpl.UnsafeEnabled {
-		file_versions_content_versions_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+		file_versions_content_versions_proto_msgTypes[0].Exporter = func(v any, i int) any {
 			switch v := v.(*GetResponse); i {
 			case 0:
 				return &v.state
diff --git a/proto/versions/content/versions_grpc.pb.go b/proto/versions/content/versions_grpc.pb.go
index 25198d3383a04d58c15a85d83673445386e347b2..d2afb289fa36d77a4ec2e95abbe6c10ab7cd41f5 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.3.0
-// - protoc             v4.24.3
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.27.3
 // source: versions/content/versions.proto
 
 package content
@@ -16,8 +16,8 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
 
 const (
 	Versions_Get_FullMethodName = "/content.Versions/Get"
@@ -39,8 +39,9 @@ func NewVersionsClient(cc grpc.ClientConnInterface) VersionsClient {
 }
 
 func (c *versionsClient) Get(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, Versions_Get_FullMethodName, in, out, opts...)
+	err := c.cc.Invoke(ctx, Versions_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -49,20 +50,24 @@ func (c *versionsClient) Get(ctx context.Context, in *emptypb.Empty, opts ...grp
 
 // VersionsServer is the server API for Versions service.
 // All implementations must embed UnimplementedVersionsServer
-// for forward compatibility
+// for forward compatibility.
 type VersionsServer interface {
 	Get(context.Context, *emptypb.Empty) (*GetResponse, error)
 	mustEmbedUnimplementedVersionsServer()
 }
 
-// UnimplementedVersionsServer must be embedded to have forward compatible implementations.
-type UnimplementedVersionsServer struct {
-}
+// UnimplementedVersionsServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedVersionsServer struct{}
 
 func (UnimplementedVersionsServer) Get(context.Context, *emptypb.Empty) (*GetResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
 }
 func (UnimplementedVersionsServer) mustEmbedUnimplementedVersionsServer() {}
+func (UnimplementedVersionsServer) testEmbeddedByValue()                  {}
 
 // UnsafeVersionsServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to VersionsServer will
@@ -72,6 +77,13 @@ type UnsafeVersionsServer interface {
 }
 
 func RegisterVersionsServer(s grpc.ServiceRegistrar, srv VersionsServer) {
+	// If the following call pancis, it indicates UnimplementedVersionsServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Versions_ServiceDesc, srv)
 }