feat: complete Kra admin backend migration

This commit is contained in:
2026-08-14 00:28:37 +08:00
parent c4bf7ee03b
commit acba9624d7
88 changed files with 1765 additions and 8623 deletions
+110 -128
View File
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.11
// protoc (unknown)
// protoc v7.35.1
// source: conf/conf.proto
package conf
@@ -85,7 +85,6 @@ func (x *Bootstrap) GetAdmin() *AdminBackend {
type Server struct {
state protoimpl.MessageState `protogen:"open.v1"`
Http *Server_HTTP `protobuf:"bytes,1,opt,name=http,proto3" json:"http,omitempty"`
Grpc *Server_GRPC `protobuf:"bytes,2,opt,name=grpc,proto3" json:"grpc,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -127,13 +126,6 @@ func (x *Server) GetHttp() *Server_HTTP {
return nil
}
func (x *Server) GetGrpc() *Server_GRPC {
if x != nil {
return x.Grpc
}
return nil
}
type Data struct {
state protoimpl.MessageState `protogen:"open.v1"`
Database *Data_Database `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
@@ -196,7 +188,8 @@ type AdminBackend struct {
Email *AdminBackend_Email `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"`
Storage *AdminBackend_Storage `protobuf:"bytes,6,opt,name=storage,proto3" json:"storage,omitempty"`
// ConfigPath is populated by the entrypoint and is not required in YAML.
ConfigPath string `protobuf:"bytes,7,opt,name=config_path,json=configPath,proto3" json:"config_path,omitempty"`
ConfigPath string `protobuf:"bytes,7,opt,name=config_path,json=configPath,proto3" json:"config_path,omitempty"`
Media *AdminBackend_Media `protobuf:"bytes,8,opt,name=media,proto3" json:"media,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -280,6 +273,13 @@ func (x *AdminBackend) GetConfigPath() string {
return ""
}
func (x *AdminBackend) GetMedia() *AdminBackend_Media {
if x != nil {
return x.Media
}
return nil
}
type Server_HTTP struct {
state protoimpl.MessageState `protogen:"open.v1"`
Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"`
@@ -340,66 +340,6 @@ func (x *Server_HTTP) GetTimeout() *durationpb.Duration {
return nil
}
type Server_GRPC struct {
state protoimpl.MessageState `protogen:"open.v1"`
Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"`
Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
Timeout *durationpb.Duration `protobuf:"bytes,3,opt,name=timeout,proto3" json:"timeout,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Server_GRPC) Reset() {
*x = Server_GRPC{}
mi := &file_conf_conf_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Server_GRPC) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Server_GRPC) ProtoMessage() {}
func (x *Server_GRPC) ProtoReflect() protoreflect.Message {
mi := &file_conf_conf_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Server_GRPC.ProtoReflect.Descriptor instead.
func (*Server_GRPC) Descriptor() ([]byte, []int) {
return file_conf_conf_proto_rawDescGZIP(), []int{1, 1}
}
func (x *Server_GRPC) GetNetwork() string {
if x != nil {
return x.Network
}
return ""
}
func (x *Server_GRPC) GetAddr() string {
if x != nil {
return x.Addr
}
return ""
}
func (x *Server_GRPC) GetTimeout() *durationpb.Duration {
if x != nil {
return x.Timeout
}
return nil
}
type Data_Database struct {
state protoimpl.MessageState `protogen:"open.v1"`
Driver string `protobuf:"bytes,1,opt,name=driver,proto3" json:"driver,omitempty"`
@@ -417,7 +357,7 @@ type Data_Database struct {
func (x *Data_Database) Reset() {
*x = Data_Database{}
mi := &file_conf_conf_proto_msgTypes[6]
mi := &file_conf_conf_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -429,7 +369,7 @@ func (x *Data_Database) String() string {
func (*Data_Database) ProtoMessage() {}
func (x *Data_Database) ProtoReflect() protoreflect.Message {
mi := &file_conf_conf_proto_msgTypes[6]
mi := &file_conf_conf_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -520,7 +460,7 @@ type Data_Redis struct {
func (x *Data_Redis) Reset() {
*x = Data_Redis{}
mi := &file_conf_conf_proto_msgTypes[7]
mi := &file_conf_conf_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -532,7 +472,7 @@ func (x *Data_Redis) String() string {
func (*Data_Redis) ProtoMessage() {}
func (x *Data_Redis) ProtoReflect() protoreflect.Message {
mi := &file_conf_conf_proto_msgTypes[7]
mi := &file_conf_conf_proto_msgTypes[6]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -588,7 +528,7 @@ type AdminBackend_JWT struct {
func (x *AdminBackend_JWT) Reset() {
*x = AdminBackend_JWT{}
mi := &file_conf_conf_proto_msgTypes[8]
mi := &file_conf_conf_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -600,7 +540,7 @@ func (x *AdminBackend_JWT) String() string {
func (*AdminBackend_JWT) ProtoMessage() {}
func (x *AdminBackend_JWT) ProtoReflect() protoreflect.Message {
mi := &file_conf_conf_proto_msgTypes[8]
mi := &file_conf_conf_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -656,7 +596,7 @@ type AdminBackend_Captcha struct {
func (x *AdminBackend_Captcha) Reset() {
*x = AdminBackend_Captcha{}
mi := &file_conf_conf_proto_msgTypes[9]
mi := &file_conf_conf_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -668,7 +608,7 @@ func (x *AdminBackend_Captcha) String() string {
func (*AdminBackend_Captcha) ProtoMessage() {}
func (x *AdminBackend_Captcha) ProtoReflect() protoreflect.Message {
mi := &file_conf_conf_proto_msgTypes[9]
mi := &file_conf_conf_proto_msgTypes[8]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -722,7 +662,7 @@ type AdminBackend_Local struct {
func (x *AdminBackend_Local) Reset() {
*x = AdminBackend_Local{}
mi := &file_conf_conf_proto_msgTypes[10]
mi := &file_conf_conf_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -734,7 +674,7 @@ func (x *AdminBackend_Local) String() string {
func (*AdminBackend_Local) ProtoMessage() {}
func (x *AdminBackend_Local) ProtoReflect() protoreflect.Message {
mi := &file_conf_conf_proto_msgTypes[10]
mi := &file_conf_conf_proto_msgTypes[9]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -780,7 +720,7 @@ type AdminBackend_Email struct {
func (x *AdminBackend_Email) Reset() {
*x = AdminBackend_Email{}
mi := &file_conf_conf_proto_msgTypes[11]
mi := &file_conf_conf_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -792,7 +732,7 @@ func (x *AdminBackend_Email) String() string {
func (*AdminBackend_Email) ProtoMessage() {}
func (x *AdminBackend_Email) ProtoReflect() protoreflect.Message {
mi := &file_conf_conf_proto_msgTypes[11]
mi := &file_conf_conf_proto_msgTypes[10]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -864,6 +804,50 @@ func (x *AdminBackend_Email) GetIsLoginAuth() bool {
return false
}
type AdminBackend_Media struct {
state protoimpl.MessageState `protogen:"open.v1"`
SessionTtl int32 `protobuf:"varint,1,opt,name=session_ttl,json=sessionTtl,proto3" json:"session_ttl,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AdminBackend_Media) Reset() {
*x = AdminBackend_Media{}
mi := &file_conf_conf_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AdminBackend_Media) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AdminBackend_Media) ProtoMessage() {}
func (x *AdminBackend_Media) ProtoReflect() protoreflect.Message {
mi := &file_conf_conf_proto_msgTypes[11]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AdminBackend_Media.ProtoReflect.Descriptor instead.
func (*AdminBackend_Media) Descriptor() ([]byte, []int) {
return file_conf_conf_proto_rawDescGZIP(), []int{3, 4}
}
func (x *AdminBackend_Media) GetSessionTtl() int32 {
if x != nil {
return x.SessionTtl
}
return 0
}
type AdminBackend_Storage struct {
state protoimpl.MessageState `protogen:"open.v1"`
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
@@ -905,7 +889,7 @@ func (x *AdminBackend_Storage) ProtoReflect() protoreflect.Message {
// Deprecated: Use AdminBackend_Storage.ProtoReflect.Descriptor instead.
func (*AdminBackend_Storage) Descriptor() ([]byte, []int) {
return file_conf_conf_proto_rawDescGZIP(), []int{3, 4}
return file_conf_conf_proto_rawDescGZIP(), []int{3, 5}
}
func (x *AdminBackend_Storage) GetType() string {
@@ -1004,7 +988,7 @@ func (x *AdminBackend_Qiniu) ProtoReflect() protoreflect.Message {
// Deprecated: Use AdminBackend_Qiniu.ProtoReflect.Descriptor instead.
func (*AdminBackend_Qiniu) Descriptor() ([]byte, []int) {
return file_conf_conf_proto_rawDescGZIP(), []int{3, 5}
return file_conf_conf_proto_rawDescGZIP(), []int{3, 6}
}
func (x *AdminBackend_Qiniu) GetZone() string {
@@ -1101,7 +1085,7 @@ func (x *AdminBackend_ObjectStore) ProtoReflect() protoreflect.Message {
// Deprecated: Use AdminBackend_ObjectStore.ProtoReflect.Descriptor instead.
func (*AdminBackend_ObjectStore) Descriptor() ([]byte, []int) {
return file_conf_conf_proto_rawDescGZIP(), []int{3, 6}
return file_conf_conf_proto_rawDescGZIP(), []int{3, 7}
}
func (x *AdminBackend_ObjectStore) GetEndpoint() string {
@@ -1183,17 +1167,12 @@ const file_conf_conf_proto_rawDesc = "" +
"\tBootstrap\x12*\n" +
"\x06server\x18\x01 \x01(\v2\x12.kratos.api.ServerR\x06server\x12$\n" +
"\x04data\x18\x02 \x01(\v2\x10.kratos.api.DataR\x04data\x12.\n" +
"\x05admin\x18\x03 \x01(\v2\x18.kratos.api.AdminBackendR\x05admin\"\xb8\x02\n" +
"\x05admin\x18\x03 \x01(\v2\x18.kratos.api.AdminBackendR\x05admin\"\xa0\x01\n" +
"\x06Server\x12+\n" +
"\x04http\x18\x01 \x01(\v2\x17.kratos.api.Server.HTTPR\x04http\x12+\n" +
"\x04grpc\x18\x02 \x01(\v2\x17.kratos.api.Server.GRPCR\x04grpc\x1ai\n" +
"\x04http\x18\x01 \x01(\v2\x17.kratos.api.Server.HTTPR\x04http\x1ai\n" +
"\x04HTTP\x12\x18\n" +
"\anetwork\x18\x01 \x01(\tR\anetwork\x12\x12\n" +
"\x04addr\x18\x02 \x01(\tR\x04addr\x123\n" +
"\atimeout\x18\x03 \x01(\v2\x19.google.protobuf.DurationR\atimeout\x1ai\n" +
"\x04GRPC\x12\x18\n" +
"\anetwork\x18\x01 \x01(\tR\anetwork\x12\x12\n" +
"\x04addr\x18\x02 \x01(\tR\x04addr\x123\n" +
"\atimeout\x18\x03 \x01(\v2\x19.google.protobuf.DurationR\atimeout\"\xf6\x03\n" +
"\x04Data\x125\n" +
"\bdatabase\x18\x01 \x01(\v2\x19.kratos.api.Data.DatabaseR\bdatabase\x12,\n" +
@@ -1212,7 +1191,7 @@ const file_conf_conf_proto_rawDesc = "" +
"\anetwork\x18\x01 \x01(\tR\anetwork\x12\x12\n" +
"\x04addr\x18\x02 \x01(\tR\x04addr\x12<\n" +
"\fread_timeout\x18\x03 \x01(\v2\x19.google.protobuf.DurationR\vreadTimeout\x12>\n" +
"\rwrite_timeout\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\fwriteTimeout\"\xd1\x0f\n" +
"\rwrite_timeout\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\fwriteTimeout\"\xb1\x10\n" +
"\fAdminBackend\x12#\n" +
"\rrouter_prefix\x18\x01 \x01(\tR\frouterPrefix\x12.\n" +
"\x03jwt\x18\x02 \x01(\v2\x1c.kratos.api.AdminBackend.JWTR\x03jwt\x12:\n" +
@@ -1221,7 +1200,8 @@ const file_conf_conf_proto_rawDesc = "" +
"\x05email\x18\x05 \x01(\v2\x1e.kratos.api.AdminBackend.EmailR\x05email\x12:\n" +
"\astorage\x18\x06 \x01(\v2 .kratos.api.AdminBackend.StorageR\astorage\x12\x1f\n" +
"\vconfig_path\x18\a \x01(\tR\n" +
"configPath\x1a\xb8\x01\n" +
"configPath\x124\n" +
"\x05media\x18\b \x01(\v2\x1e.kratos.api.AdminBackend.MediaR\x05media\x1a\xb8\x01\n" +
"\x03JWT\x12\x1f\n" +
"\vsigning_key\x18\x01 \x01(\tR\n" +
"signingKey\x12<\n" +
@@ -1248,7 +1228,10 @@ const file_conf_conf_proto_rawDesc = "" +
"\bnickname\x18\x05 \x01(\tR\bnickname\x12\x12\n" +
"\x04port\x18\x06 \x01(\x05R\x04port\x12\x15\n" +
"\x06is_ssl\x18\a \x01(\bR\x05isSsl\x12\"\n" +
"\ris_login_auth\x18\b \x01(\bR\visLoginAuth\x1a\xe8\x03\n" +
"\ris_login_auth\x18\b \x01(\bR\visLoginAuth\x1a(\n" +
"\x05Media\x12\x1f\n" +
"\vsession_ttl\x18\x01 \x01(\x05R\n" +
"sessionTtl\x1a\xe8\x03\n" +
"\aStorage\x12\x12\n" +
"\x04type\x18\x01 \x01(\tR\x04type\x124\n" +
"\x05qiniu\x18\x02 \x01(\v2\x1e.kratos.api.AdminBackend.QiniuR\x05qiniu\x12C\n" +
@@ -1307,13 +1290,13 @@ var file_conf_conf_proto_goTypes = []any{
(*Data)(nil), // 2: kratos.api.Data
(*AdminBackend)(nil), // 3: kratos.api.AdminBackend
(*Server_HTTP)(nil), // 4: kratos.api.Server.HTTP
(*Server_GRPC)(nil), // 5: kratos.api.Server.GRPC
(*Data_Database)(nil), // 6: kratos.api.Data.Database
(*Data_Redis)(nil), // 7: kratos.api.Data.Redis
(*AdminBackend_JWT)(nil), // 8: kratos.api.AdminBackend.JWT
(*AdminBackend_Captcha)(nil), // 9: kratos.api.AdminBackend.Captcha
(*AdminBackend_Local)(nil), // 10: kratos.api.AdminBackend.Local
(*AdminBackend_Email)(nil), // 11: kratos.api.AdminBackend.Email
(*Data_Database)(nil), // 5: kratos.api.Data.Database
(*Data_Redis)(nil), // 6: kratos.api.Data.Redis
(*AdminBackend_JWT)(nil), // 7: kratos.api.AdminBackend.JWT
(*AdminBackend_Captcha)(nil), // 8: kratos.api.AdminBackend.Captcha
(*AdminBackend_Local)(nil), // 9: kratos.api.AdminBackend.Local
(*AdminBackend_Email)(nil), // 10: kratos.api.AdminBackend.Email
(*AdminBackend_Media)(nil), // 11: kratos.api.AdminBackend.Media
(*AdminBackend_Storage)(nil), // 12: kratos.api.AdminBackend.Storage
(*AdminBackend_Qiniu)(nil), // 13: kratos.api.AdminBackend.Qiniu
(*AdminBackend_ObjectStore)(nil), // 14: kratos.api.AdminBackend.ObjectStore
@@ -1324,33 +1307,32 @@ var file_conf_conf_proto_depIdxs = []int32{
2, // 1: kratos.api.Bootstrap.data:type_name -> kratos.api.Data
3, // 2: kratos.api.Bootstrap.admin:type_name -> kratos.api.AdminBackend
4, // 3: kratos.api.Server.http:type_name -> kratos.api.Server.HTTP
5, // 4: kratos.api.Server.grpc:type_name -> kratos.api.Server.GRPC
6, // 5: kratos.api.Data.database:type_name -> kratos.api.Data.Database
7, // 6: kratos.api.Data.redis:type_name -> kratos.api.Data.Redis
8, // 7: kratos.api.AdminBackend.jwt:type_name -> kratos.api.AdminBackend.JWT
9, // 8: kratos.api.AdminBackend.captcha:type_name -> kratos.api.AdminBackend.Captcha
10, // 9: kratos.api.AdminBackend.local:type_name -> kratos.api.AdminBackend.Local
11, // 10: kratos.api.AdminBackend.email:type_name -> kratos.api.AdminBackend.Email
12, // 11: kratos.api.AdminBackend.storage:type_name -> kratos.api.AdminBackend.Storage
5, // 4: kratos.api.Data.database:type_name -> kratos.api.Data.Database
6, // 5: kratos.api.Data.redis:type_name -> kratos.api.Data.Redis
7, // 6: kratos.api.AdminBackend.jwt:type_name -> kratos.api.AdminBackend.JWT
8, // 7: kratos.api.AdminBackend.captcha:type_name -> kratos.api.AdminBackend.Captcha
9, // 8: kratos.api.AdminBackend.local:type_name -> kratos.api.AdminBackend.Local
10, // 9: kratos.api.AdminBackend.email:type_name -> kratos.api.AdminBackend.Email
12, // 10: kratos.api.AdminBackend.storage:type_name -> kratos.api.AdminBackend.Storage
11, // 11: kratos.api.AdminBackend.media:type_name -> kratos.api.AdminBackend.Media
15, // 12: kratos.api.Server.HTTP.timeout:type_name -> google.protobuf.Duration
15, // 13: kratos.api.Server.GRPC.timeout:type_name -> google.protobuf.Duration
15, // 14: kratos.api.Data.Redis.read_timeout:type_name -> google.protobuf.Duration
15, // 15: kratos.api.Data.Redis.write_timeout:type_name -> google.protobuf.Duration
15, // 16: kratos.api.AdminBackend.JWT.expires_time:type_name -> google.protobuf.Duration
15, // 17: kratos.api.AdminBackend.JWT.buffer_time:type_name -> google.protobuf.Duration
15, // 18: kratos.api.AdminBackend.Captcha.store_expiration:type_name -> google.protobuf.Duration
13, // 19: kratos.api.AdminBackend.Storage.qiniu:type_name -> kratos.api.AdminBackend.Qiniu
14, // 20: kratos.api.AdminBackend.Storage.aliyun_oss:type_name -> kratos.api.AdminBackend.ObjectStore
14, // 21: kratos.api.AdminBackend.Storage.huawei_obs:type_name -> kratos.api.AdminBackend.ObjectStore
14, // 22: kratos.api.AdminBackend.Storage.tencent_cos:type_name -> kratos.api.AdminBackend.ObjectStore
14, // 23: kratos.api.AdminBackend.Storage.aws_s3:type_name -> kratos.api.AdminBackend.ObjectStore
14, // 24: kratos.api.AdminBackend.Storage.cloudflare_r2:type_name -> kratos.api.AdminBackend.ObjectStore
14, // 25: kratos.api.AdminBackend.Storage.minio:type_name -> kratos.api.AdminBackend.ObjectStore
26, // [26:26] is the sub-list for method output_type
26, // [26:26] is the sub-list for method input_type
26, // [26:26] is the sub-list for extension type_name
26, // [26:26] is the sub-list for extension extendee
0, // [0:26] is the sub-list for field type_name
15, // 13: kratos.api.Data.Redis.read_timeout:type_name -> google.protobuf.Duration
15, // 14: kratos.api.Data.Redis.write_timeout:type_name -> google.protobuf.Duration
15, // 15: kratos.api.AdminBackend.JWT.expires_time:type_name -> google.protobuf.Duration
15, // 16: kratos.api.AdminBackend.JWT.buffer_time:type_name -> google.protobuf.Duration
15, // 17: kratos.api.AdminBackend.Captcha.store_expiration:type_name -> google.protobuf.Duration
13, // 18: kratos.api.AdminBackend.Storage.qiniu:type_name -> kratos.api.AdminBackend.Qiniu
14, // 19: kratos.api.AdminBackend.Storage.aliyun_oss:type_name -> kratos.api.AdminBackend.ObjectStore
14, // 20: kratos.api.AdminBackend.Storage.huawei_obs:type_name -> kratos.api.AdminBackend.ObjectStore
14, // 21: kratos.api.AdminBackend.Storage.tencent_cos:type_name -> kratos.api.AdminBackend.ObjectStore
14, // 22: kratos.api.AdminBackend.Storage.aws_s3:type_name -> kratos.api.AdminBackend.ObjectStore
14, // 23: kratos.api.AdminBackend.Storage.cloudflare_r2:type_name -> kratos.api.AdminBackend.ObjectStore
14, // 24: kratos.api.AdminBackend.Storage.minio:type_name -> kratos.api.AdminBackend.ObjectStore
25, // [25:25] is the sub-list for method output_type
25, // [25:25] is the sub-list for method input_type
25, // [25:25] is the sub-list for extension type_name
25, // [25:25] is the sub-list for extension extendee
0, // [0:25] is the sub-list for field type_name
}
func init() { file_conf_conf_proto_init() }