diff --git a/pkg/locales/locale.go b/pkg/locales/locale.go
index 8ab8d2e240695241b2d0a96376f0493592106f4b..fdc17bad81dc219c9f905b90bfd47124cd1ee514 100644
--- a/pkg/locales/locale.go
+++ b/pkg/locales/locale.go
@@ -38,6 +38,7 @@ func (locale *Locale) Clone() *Locale {
 		Weight:     locale.Weight,
 		NoPublish:  locale.NoPublish,
 		Disabled:   locale.Disabled,
+		Default:    locale.Default,
 	}
 }
 
diff --git a/proto/delivery/delivery.pb.go b/proto/delivery/delivery.pb.go
index adc4add4fc243c58a0c2e60afb342d4a4a8e25fb..f53a3fbef915f10a00883f8211abceefbd2ad372 100644
--- a/proto/delivery/delivery.pb.go
+++ b/proto/delivery/delivery.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.35.1
+// 	protoc-gen-go v1.36.4
 // 	protoc        v5.28.3
 // source: delivery/delivery.proto
 
@@ -16,6 +16,7 @@ import (
 	structpb "google.golang.org/protobuf/types/known/structpb"
 	reflect "reflect"
 	sync "sync"
+	unsafe "unsafe"
 )
 
 const (
@@ -26,11 +27,10 @@ const (
 )
 
 type ListLocalesRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	SpaceId       string                 `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	SpaceId string `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListLocalesRequest) Reset() {
@@ -71,11 +71,10 @@ func (x *ListLocalesRequest) GetSpaceId() string {
 }
 
 type ListLocalesResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Locales       []*locales.Locale      `protobuf:"bytes,1,rep,name=locales,proto3" json:"locales,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Locales []*locales.Locale `protobuf:"bytes,1,rep,name=locales,proto3" json:"locales,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListLocalesResponse) Reset() {
@@ -116,12 +115,11 @@ func (x *ListLocalesResponse) GetLocales() []*locales.Locale {
 }
 
 type GetEnvironmentRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	SpaceId       string                 `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
+	EnvId         string                 `protobuf:"bytes,2,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	SpaceId string `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
-	EnvId   string `protobuf:"bytes,2,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetEnvironmentRequest) Reset() {
@@ -169,11 +167,10 @@ func (x *GetEnvironmentRequest) GetEnvId() string {
 }
 
 type GetEnvironmentResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState    `protogen:"open.v1"`
+	Env           *environments.Environment `protobuf:"bytes,1,opt,name=env,proto3" json:"env,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Env *environments.Environment `protobuf:"bytes,1,opt,name=env,proto3" json:"env,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetEnvironmentResponse) Reset() {
@@ -214,11 +211,10 @@ func (x *GetEnvironmentResponse) GetEnv() *environments.Environment {
 }
 
 type ListEnvironmentsRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	SpaceId       string                 `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	SpaceId string `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListEnvironmentsRequest) Reset() {
@@ -259,11 +255,10 @@ func (x *ListEnvironmentsRequest) GetSpaceId() string {
 }
 
 type ListEnvironmentsResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState      `protogen:"open.v1"`
+	Envs          []*environments.Environment `protobuf:"bytes,1,rep,name=envs,proto3" json:"envs,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Envs []*environments.Environment `protobuf:"bytes,1,rep,name=envs,proto3" json:"envs,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListEnvironmentsResponse) Reset() {
@@ -304,13 +299,12 @@ func (x *ListEnvironmentsResponse) GetEnvs() []*environments.Environment {
 }
 
 type GetCollectionRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	SpaceId       string                 `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
+	EnvId         string                 `protobuf:"bytes,2,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`
+	CollectionId  string                 `protobuf:"bytes,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	SpaceId      string `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
-	EnvId        string `protobuf:"bytes,2,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`
-	CollectionId string `protobuf:"bytes,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetCollectionRequest) Reset() {
@@ -365,11 +359,10 @@ func (x *GetCollectionRequest) GetCollectionId() string {
 }
 
 type GetCollectionResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState  `protogen:"open.v1"`
+	Collection    *collections.Collection `protobuf:"bytes,1,opt,name=collection,proto3" json:"collection,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Collection *collections.Collection `protobuf:"bytes,1,opt,name=collection,proto3" json:"collection,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetCollectionResponse) Reset() {
@@ -410,12 +403,11 @@ func (x *GetCollectionResponse) GetCollection() *collections.Collection {
 }
 
 type ListCollectionsRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	SpaceId       string                 `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
+	EnvId         string                 `protobuf:"bytes,2,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	SpaceId string `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
-	EnvId   string `protobuf:"bytes,2,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListCollectionsRequest) Reset() {
@@ -463,11 +455,10 @@ func (x *ListCollectionsRequest) GetEnvId() string {
 }
 
 type ListCollectionsResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState    `protogen:"open.v1"`
+	Collections   []*collections.Collection `protobuf:"bytes,1,rep,name=collections,proto3" json:"collections,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Collections []*collections.Collection `protobuf:"bytes,1,rep,name=collections,proto3" json:"collections,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListCollectionsResponse) Reset() {
@@ -508,15 +499,14 @@ func (x *ListCollectionsResponse) GetCollections() []*collections.Collection {
 }
 
 type GetItemRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState     `protogen:"open.v1"`
+	SpaceId       string                     `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
+	EnvId         string                     `protobuf:"bytes,2,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`
+	CollectionId  string                     `protobuf:"bytes,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
+	ItemId        string                     `protobuf:"bytes,5,opt,name=item_id,json=itemId,proto3" json:"item_id,omitempty"`
+	Options       *items.GetPublishedOptions `protobuf:"bytes,6,opt,name=options,proto3" json:"options,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	SpaceId      string                     `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
-	EnvId        string                     `protobuf:"bytes,2,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`
-	CollectionId string                     `protobuf:"bytes,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
-	ItemId       string                     `protobuf:"bytes,5,opt,name=item_id,json=itemId,proto3" json:"item_id,omitempty"`
-	Options      *items.GetPublishedOptions `protobuf:"bytes,6,opt,name=options,proto3" json:"options,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetItemRequest) Reset() {
@@ -585,11 +575,10 @@ func (x *GetItemRequest) GetOptions() *items.GetPublishedOptions {
 }
 
 type GetItemResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Item          *items.Item            `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Item *items.Item `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetItemResponse) Reset() {
@@ -630,15 +619,14 @@ func (x *GetItemResponse) GetItem() *items.Item {
 }
 
 type FindItemsRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState      `protogen:"open.v1"`
+	SpaceId       string                      `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
+	EnvId         string                      `protobuf:"bytes,2,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`
+	CollectionId  string                      `protobuf:"bytes,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
+	Filter        *items.Filter               `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
+	Options       *items.FindPublishedOptions `protobuf:"bytes,6,opt,name=options,proto3" json:"options,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	SpaceId      string                      `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
-	EnvId        string                      `protobuf:"bytes,2,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`
-	CollectionId string                      `protobuf:"bytes,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
-	Filter       *items.Filter               `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
-	Options      *items.FindPublishedOptions `protobuf:"bytes,6,opt,name=options,proto3" json:"options,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *FindItemsRequest) Reset() {
@@ -707,12 +695,11 @@ func (x *FindItemsRequest) GetOptions() *items.FindPublishedOptions {
 }
 
 type FindItemsResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*items.Item          `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+	Total         int32                  `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Items []*items.Item `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
-	Total int32         `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *FindItemsResponse) Reset() {
@@ -760,11 +747,10 @@ func (x *FindItemsResponse) GetTotal() int32 {
 }
 
 type AggregateOptions struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Fields        map[string]string      `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
 	unknownFields protoimpl.UnknownFields
-
-	Fields map[string]string `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AggregateOptions) Reset() {
@@ -805,15 +791,14 @@ func (x *AggregateOptions) GetFields() map[string]string {
 }
 
 type AggregateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	SpaceId       string                 `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
+	EnvId         string                 `protobuf:"bytes,2,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`
+	CollectionId  string                 `protobuf:"bytes,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
+	Filter        *items.Filter          `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
+	Options       *AggregateOptions      `protobuf:"bytes,10,opt,name=options,proto3" json:"options,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	SpaceId      string            `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
-	EnvId        string            `protobuf:"bytes,2,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`
-	CollectionId string            `protobuf:"bytes,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
-	Filter       *items.Filter     `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
-	Options      *AggregateOptions `protobuf:"bytes,10,opt,name=options,proto3" json:"options,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AggregateRequest) Reset() {
@@ -882,11 +867,10 @@ func (x *AggregateRequest) GetOptions() *AggregateOptions {
 }
 
 type AggregateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Result        *structpb.Struct       `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Result *structpb.Struct `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AggregateResponse) Reset() {
@@ -928,7 +912,7 @@ func (x *AggregateResponse) GetResult() *structpb.Struct {
 
 var File_delivery_delivery_proto protoreflect.FileDescriptor
 
-var file_delivery_delivery_proto_rawDesc = []byte{
+var file_delivery_delivery_proto_rawDesc = string([]byte{
 	0x0a, 0x17, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x2f, 0x64, 0x65, 0x6c, 0x69, 0x76,
 	0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x64, 0x65, 0x6c, 0x69, 0x76,
 	0x65, 0x72, 0x79, 0x1a, 0x15, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x73, 0x2f, 0x6c, 0x6f, 0x63,
@@ -1095,16 +1079,16 @@ var file_delivery_delivery_proto_rawDesc = []byte{
 	0x65, 0x72, 0x78, 0x69, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x78, 0x69, 0x73, 0x2d, 0x67, 0x6f, 0x2f,
 	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x3b, 0x64,
 	0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
+})
 
 var (
 	file_delivery_delivery_proto_rawDescOnce sync.Once
-	file_delivery_delivery_proto_rawDescData = file_delivery_delivery_proto_rawDesc
+	file_delivery_delivery_proto_rawDescData []byte
 )
 
 func file_delivery_delivery_proto_rawDescGZIP() []byte {
 	file_delivery_delivery_proto_rawDescOnce.Do(func() {
-		file_delivery_delivery_proto_rawDescData = protoimpl.X.CompressGZIP(file_delivery_delivery_proto_rawDescData)
+		file_delivery_delivery_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_delivery_delivery_proto_rawDesc), len(file_delivery_delivery_proto_rawDesc)))
 	})
 	return file_delivery_delivery_proto_rawDescData
 }
@@ -1185,7 +1169,7 @@ func file_delivery_delivery_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_delivery_delivery_proto_rawDesc,
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_delivery_delivery_proto_rawDesc), len(file_delivery_delivery_proto_rawDesc)),
 			NumEnums:      0,
 			NumMessages:   18,
 			NumExtensions: 0,
@@ -1196,7 +1180,6 @@ func file_delivery_delivery_proto_init() {
 		MessageInfos:      file_delivery_delivery_proto_msgTypes,
 	}.Build()
 	File_delivery_delivery_proto = out.File
-	file_delivery_delivery_proto_rawDesc = nil
 	file_delivery_delivery_proto_goTypes = nil
 	file_delivery_delivery_proto_depIdxs = nil
 }