数据源和 oss

This commit is contained in:
2026-08-13 23:17:55 +08:00
parent f1a0b17bb0
commit c4bf7ee03b
40 changed files with 1975 additions and 922 deletions
+482 -40
View File
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.11
// protoc v7.35.1
// protoc (unknown)
// source: conf/conf.proto
package conf
@@ -188,12 +188,15 @@ func (x *Data) GetRedis() *Data_Redis {
// AdminBackend contains settings for the administration HTTP transport.
type AdminBackend struct {
state protoimpl.MessageState `protogen:"open.v1"`
RouterPrefix string `protobuf:"bytes,1,opt,name=router_prefix,json=routerPrefix,proto3" json:"router_prefix,omitempty"`
Jwt *AdminBackend_JWT `protobuf:"bytes,2,opt,name=jwt,proto3" json:"jwt,omitempty"`
Captcha *AdminBackend_Captcha `protobuf:"bytes,3,opt,name=captcha,proto3" json:"captcha,omitempty"`
Local *AdminBackend_Local `protobuf:"bytes,4,opt,name=local,proto3" json:"local,omitempty"`
Email *AdminBackend_Email `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"`
state protoimpl.MessageState `protogen:"open.v1"`
RouterPrefix string `protobuf:"bytes,1,opt,name=router_prefix,json=routerPrefix,proto3" json:"router_prefix,omitempty"`
Jwt *AdminBackend_JWT `protobuf:"bytes,2,opt,name=jwt,proto3" json:"jwt,omitempty"`
Captcha *AdminBackend_Captcha `protobuf:"bytes,3,opt,name=captcha,proto3" json:"captcha,omitempty"`
Local *AdminBackend_Local `protobuf:"bytes,4,opt,name=local,proto3" json:"local,omitempty"`
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"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -263,6 +266,20 @@ func (x *AdminBackend) GetEmail() *AdminBackend_Email {
return nil
}
func (x *AdminBackend) GetStorage() *AdminBackend_Storage {
if x != nil {
return x.Storage
}
return nil
}
func (x *AdminBackend) GetConfigPath() string {
if x != nil {
return x.ConfigPath
}
return ""
}
type Server_HTTP struct {
state protoimpl.MessageState `protogen:"open.v1"`
Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"`
@@ -387,6 +404,13 @@ type Data_Database struct {
state protoimpl.MessageState `protogen:"open.v1"`
Driver string `protobuf:"bytes,1,opt,name=driver,proto3" json:"driver,omitempty"`
Source string `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"`
Host string `protobuf:"bytes,3,opt,name=host,proto3" json:"host,omitempty"`
Port string `protobuf:"bytes,4,opt,name=port,proto3" json:"port,omitempty"`
User string `protobuf:"bytes,5,opt,name=user,proto3" json:"user,omitempty"`
Password string `protobuf:"bytes,6,opt,name=password,proto3" json:"password,omitempty"`
Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
Config string `protobuf:"bytes,8,opt,name=config,proto3" json:"config,omitempty"`
Path string `protobuf:"bytes,9,opt,name=path,proto3" json:"path,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -435,6 +459,55 @@ func (x *Data_Database) GetSource() string {
return ""
}
func (x *Data_Database) GetHost() string {
if x != nil {
return x.Host
}
return ""
}
func (x *Data_Database) GetPort() string {
if x != nil {
return x.Port
}
return ""
}
func (x *Data_Database) GetUser() string {
if x != nil {
return x.User
}
return ""
}
func (x *Data_Database) GetPassword() string {
if x != nil {
return x.Password
}
return ""
}
func (x *Data_Database) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Data_Database) GetConfig() string {
if x != nil {
return x.Config
}
return ""
}
func (x *Data_Database) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
type Data_Redis struct {
state protoimpl.MessageState `protogen:"open.v1"`
Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"`
@@ -791,6 +864,316 @@ func (x *AdminBackend_Email) GetIsLoginAuth() bool {
return false
}
type AdminBackend_Storage struct {
state protoimpl.MessageState `protogen:"open.v1"`
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
Qiniu *AdminBackend_Qiniu `protobuf:"bytes,2,opt,name=qiniu,proto3" json:"qiniu,omitempty"`
AliyunOss *AdminBackend_ObjectStore `protobuf:"bytes,3,opt,name=aliyun_oss,json=aliyunOss,proto3" json:"aliyun_oss,omitempty"`
HuaweiObs *AdminBackend_ObjectStore `protobuf:"bytes,4,opt,name=huawei_obs,json=huaweiObs,proto3" json:"huawei_obs,omitempty"`
TencentCos *AdminBackend_ObjectStore `protobuf:"bytes,5,opt,name=tencent_cos,json=tencentCos,proto3" json:"tencent_cos,omitempty"`
AwsS3 *AdminBackend_ObjectStore `protobuf:"bytes,6,opt,name=aws_s3,json=awsS3,proto3" json:"aws_s3,omitempty"`
CloudflareR2 *AdminBackend_ObjectStore `protobuf:"bytes,7,opt,name=cloudflare_r2,json=cloudflareR2,proto3" json:"cloudflare_r2,omitempty"`
Minio *AdminBackend_ObjectStore `protobuf:"bytes,8,opt,name=minio,proto3" json:"minio,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AdminBackend_Storage) Reset() {
*x = AdminBackend_Storage{}
mi := &file_conf_conf_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AdminBackend_Storage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AdminBackend_Storage) ProtoMessage() {}
func (x *AdminBackend_Storage) ProtoReflect() protoreflect.Message {
mi := &file_conf_conf_proto_msgTypes[12]
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_Storage.ProtoReflect.Descriptor instead.
func (*AdminBackend_Storage) Descriptor() ([]byte, []int) {
return file_conf_conf_proto_rawDescGZIP(), []int{3, 4}
}
func (x *AdminBackend_Storage) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *AdminBackend_Storage) GetQiniu() *AdminBackend_Qiniu {
if x != nil {
return x.Qiniu
}
return nil
}
func (x *AdminBackend_Storage) GetAliyunOss() *AdminBackend_ObjectStore {
if x != nil {
return x.AliyunOss
}
return nil
}
func (x *AdminBackend_Storage) GetHuaweiObs() *AdminBackend_ObjectStore {
if x != nil {
return x.HuaweiObs
}
return nil
}
func (x *AdminBackend_Storage) GetTencentCos() *AdminBackend_ObjectStore {
if x != nil {
return x.TencentCos
}
return nil
}
func (x *AdminBackend_Storage) GetAwsS3() *AdminBackend_ObjectStore {
if x != nil {
return x.AwsS3
}
return nil
}
func (x *AdminBackend_Storage) GetCloudflareR2() *AdminBackend_ObjectStore {
if x != nil {
return x.CloudflareR2
}
return nil
}
func (x *AdminBackend_Storage) GetMinio() *AdminBackend_ObjectStore {
if x != nil {
return x.Minio
}
return nil
}
type AdminBackend_Qiniu struct {
state protoimpl.MessageState `protogen:"open.v1"`
Zone string `protobuf:"bytes,1,opt,name=zone,proto3" json:"zone,omitempty"`
Bucket string `protobuf:"bytes,2,opt,name=bucket,proto3" json:"bucket,omitempty"`
BaseUrl string `protobuf:"bytes,3,opt,name=base_url,json=baseUrl,proto3" json:"base_url,omitempty"`
AccessKey string `protobuf:"bytes,4,opt,name=access_key,json=accessKey,proto3" json:"access_key,omitempty"`
SecretKey string `protobuf:"bytes,5,opt,name=secret_key,json=secretKey,proto3" json:"secret_key,omitempty"`
UseHttps bool `protobuf:"varint,6,opt,name=use_https,json=useHttps,proto3" json:"use_https,omitempty"`
UseCdnDomains bool `protobuf:"varint,7,opt,name=use_cdn_domains,json=useCdnDomains,proto3" json:"use_cdn_domains,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AdminBackend_Qiniu) Reset() {
*x = AdminBackend_Qiniu{}
mi := &file_conf_conf_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AdminBackend_Qiniu) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AdminBackend_Qiniu) ProtoMessage() {}
func (x *AdminBackend_Qiniu) ProtoReflect() protoreflect.Message {
mi := &file_conf_conf_proto_msgTypes[13]
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_Qiniu.ProtoReflect.Descriptor instead.
func (*AdminBackend_Qiniu) Descriptor() ([]byte, []int) {
return file_conf_conf_proto_rawDescGZIP(), []int{3, 5}
}
func (x *AdminBackend_Qiniu) GetZone() string {
if x != nil {
return x.Zone
}
return ""
}
func (x *AdminBackend_Qiniu) GetBucket() string {
if x != nil {
return x.Bucket
}
return ""
}
func (x *AdminBackend_Qiniu) GetBaseUrl() string {
if x != nil {
return x.BaseUrl
}
return ""
}
func (x *AdminBackend_Qiniu) GetAccessKey() string {
if x != nil {
return x.AccessKey
}
return ""
}
func (x *AdminBackend_Qiniu) GetSecretKey() string {
if x != nil {
return x.SecretKey
}
return ""
}
func (x *AdminBackend_Qiniu) GetUseHttps() bool {
if x != nil {
return x.UseHttps
}
return false
}
func (x *AdminBackend_Qiniu) GetUseCdnDomains() bool {
if x != nil {
return x.UseCdnDomains
}
return false
}
// ObjectStore covers S3-compatible configuration used by public cloud
// providers and self-hosted MinIO.
type AdminBackend_ObjectStore struct {
state protoimpl.MessageState `protogen:"open.v1"`
Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
Region string `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"`
Bucket string `protobuf:"bytes,3,opt,name=bucket,proto3" json:"bucket,omitempty"`
AccessKey string `protobuf:"bytes,4,opt,name=access_key,json=accessKey,proto3" json:"access_key,omitempty"`
SecretKey string `protobuf:"bytes,5,opt,name=secret_key,json=secretKey,proto3" json:"secret_key,omitempty"`
BaseUrl string `protobuf:"bytes,6,opt,name=base_url,json=baseUrl,proto3" json:"base_url,omitempty"`
PathPrefix string `protobuf:"bytes,7,opt,name=path_prefix,json=pathPrefix,proto3" json:"path_prefix,omitempty"`
UseSsl bool `protobuf:"varint,8,opt,name=use_ssl,json=useSsl,proto3" json:"use_ssl,omitempty"`
ForcePathStyle bool `protobuf:"varint,9,opt,name=force_path_style,json=forcePathStyle,proto3" json:"force_path_style,omitempty"`
AccountId string `protobuf:"bytes,10,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AdminBackend_ObjectStore) Reset() {
*x = AdminBackend_ObjectStore{}
mi := &file_conf_conf_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AdminBackend_ObjectStore) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AdminBackend_ObjectStore) ProtoMessage() {}
func (x *AdminBackend_ObjectStore) ProtoReflect() protoreflect.Message {
mi := &file_conf_conf_proto_msgTypes[14]
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_ObjectStore.ProtoReflect.Descriptor instead.
func (*AdminBackend_ObjectStore) Descriptor() ([]byte, []int) {
return file_conf_conf_proto_rawDescGZIP(), []int{3, 6}
}
func (x *AdminBackend_ObjectStore) GetEndpoint() string {
if x != nil {
return x.Endpoint
}
return ""
}
func (x *AdminBackend_ObjectStore) GetRegion() string {
if x != nil {
return x.Region
}
return ""
}
func (x *AdminBackend_ObjectStore) GetBucket() string {
if x != nil {
return x.Bucket
}
return ""
}
func (x *AdminBackend_ObjectStore) GetAccessKey() string {
if x != nil {
return x.AccessKey
}
return ""
}
func (x *AdminBackend_ObjectStore) GetSecretKey() string {
if x != nil {
return x.SecretKey
}
return ""
}
func (x *AdminBackend_ObjectStore) GetBaseUrl() string {
if x != nil {
return x.BaseUrl
}
return ""
}
func (x *AdminBackend_ObjectStore) GetPathPrefix() string {
if x != nil {
return x.PathPrefix
}
return ""
}
func (x *AdminBackend_ObjectStore) GetUseSsl() bool {
if x != nil {
return x.UseSsl
}
return false
}
func (x *AdminBackend_ObjectStore) GetForcePathStyle() bool {
if x != nil {
return x.ForcePathStyle
}
return false
}
func (x *AdminBackend_ObjectStore) GetAccountId() string {
if x != nil {
return x.AccountId
}
return ""
}
var File_conf_conf_proto protoreflect.FileDescriptor
const file_conf_conf_proto_rawDesc = "" +
@@ -811,24 +1194,34 @@ const file_conf_conf_proto_rawDesc = "" +
"\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\"\xdd\x02\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" +
"\x05redis\x18\x02 \x01(\v2\x16.kratos.api.Data.RedisR\x05redis\x1a:\n" +
"\x05redis\x18\x02 \x01(\v2\x16.kratos.api.Data.RedisR\x05redis\x1a\xd2\x01\n" +
"\bDatabase\x12\x16\n" +
"\x06driver\x18\x01 \x01(\tR\x06driver\x12\x16\n" +
"\x06source\x18\x02 \x01(\tR\x06source\x1a\xb3\x01\n" +
"\x06source\x18\x02 \x01(\tR\x06source\x12\x12\n" +
"\x04host\x18\x03 \x01(\tR\x04host\x12\x12\n" +
"\x04port\x18\x04 \x01(\tR\x04port\x12\x12\n" +
"\x04user\x18\x05 \x01(\tR\x04user\x12\x1a\n" +
"\bpassword\x18\x06 \x01(\tR\bpassword\x12\x12\n" +
"\x04name\x18\a \x01(\tR\x04name\x12\x16\n" +
"\x06config\x18\b \x01(\tR\x06config\x12\x12\n" +
"\x04path\x18\t \x01(\tR\x04path\x1a\xb3\x01\n" +
"\x05Redis\x12\x18\n" +
"\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\"\xfd\x06\n" +
"\rwrite_timeout\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\fwriteTimeout\"\xd1\x0f\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" +
"\acaptcha\x18\x03 \x01(\v2 .kratos.api.AdminBackend.CaptchaR\acaptcha\x124\n" +
"\x05local\x18\x04 \x01(\v2\x1e.kratos.api.AdminBackend.LocalR\x05local\x124\n" +
"\x05email\x18\x05 \x01(\v2\x1e.kratos.api.AdminBackend.EmailR\x05email\x1a\xb8\x01\n" +
"\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" +
"\x03JWT\x12\x1f\n" +
"\vsigning_key\x18\x01 \x01(\tR\n" +
"signingKey\x12<\n" +
@@ -855,7 +1248,45 @@ 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\visLoginAuthB\x18Z\x16kra/internal/conf;confb\x06proto3"
"\ris_login_auth\x18\b \x01(\bR\visLoginAuth\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" +
"\n" +
"aliyun_oss\x18\x03 \x01(\v2$.kratos.api.AdminBackend.ObjectStoreR\taliyunOss\x12C\n" +
"\n" +
"huawei_obs\x18\x04 \x01(\v2$.kratos.api.AdminBackend.ObjectStoreR\thuaweiObs\x12E\n" +
"\vtencent_cos\x18\x05 \x01(\v2$.kratos.api.AdminBackend.ObjectStoreR\n" +
"tencentCos\x12;\n" +
"\x06aws_s3\x18\x06 \x01(\v2$.kratos.api.AdminBackend.ObjectStoreR\x05awsS3\x12I\n" +
"\rcloudflare_r2\x18\a \x01(\v2$.kratos.api.AdminBackend.ObjectStoreR\fcloudflareR2\x12:\n" +
"\x05minio\x18\b \x01(\v2$.kratos.api.AdminBackend.ObjectStoreR\x05minio\x1a\xd1\x01\n" +
"\x05Qiniu\x12\x12\n" +
"\x04zone\x18\x01 \x01(\tR\x04zone\x12\x16\n" +
"\x06bucket\x18\x02 \x01(\tR\x06bucket\x12\x19\n" +
"\bbase_url\x18\x03 \x01(\tR\abaseUrl\x12\x1d\n" +
"\n" +
"access_key\x18\x04 \x01(\tR\taccessKey\x12\x1d\n" +
"\n" +
"secret_key\x18\x05 \x01(\tR\tsecretKey\x12\x1b\n" +
"\tuse_https\x18\x06 \x01(\bR\buseHttps\x12&\n" +
"\x0fuse_cdn_domains\x18\a \x01(\bR\ruseCdnDomains\x1a\xb5\x02\n" +
"\vObjectStore\x12\x1a\n" +
"\bendpoint\x18\x01 \x01(\tR\bendpoint\x12\x16\n" +
"\x06region\x18\x02 \x01(\tR\x06region\x12\x16\n" +
"\x06bucket\x18\x03 \x01(\tR\x06bucket\x12\x1d\n" +
"\n" +
"access_key\x18\x04 \x01(\tR\taccessKey\x12\x1d\n" +
"\n" +
"secret_key\x18\x05 \x01(\tR\tsecretKey\x12\x19\n" +
"\bbase_url\x18\x06 \x01(\tR\abaseUrl\x12\x1f\n" +
"\vpath_prefix\x18\a \x01(\tR\n" +
"pathPrefix\x12\x17\n" +
"\ause_ssl\x18\b \x01(\bR\x06useSsl\x12(\n" +
"\x10force_path_style\x18\t \x01(\bR\x0eforcePathStyle\x12\x1d\n" +
"\n" +
"account_id\x18\n" +
" \x01(\tR\taccountIdB\x18Z\x16kra/internal/conf;confb\x06proto3"
var (
file_conf_conf_proto_rawDescOnce sync.Once
@@ -869,21 +1300,24 @@ func file_conf_conf_proto_rawDescGZIP() []byte {
return file_conf_conf_proto_rawDescData
}
var file_conf_conf_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
var file_conf_conf_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
var file_conf_conf_proto_goTypes = []any{
(*Bootstrap)(nil), // 0: kratos.api.Bootstrap
(*Server)(nil), // 1: kratos.api.Server
(*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
(*durationpb.Duration)(nil), // 12: google.protobuf.Duration
(*Bootstrap)(nil), // 0: kratos.api.Bootstrap
(*Server)(nil), // 1: kratos.api.Server
(*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
(*AdminBackend_Storage)(nil), // 12: kratos.api.AdminBackend.Storage
(*AdminBackend_Qiniu)(nil), // 13: kratos.api.AdminBackend.Qiniu
(*AdminBackend_ObjectStore)(nil), // 14: kratos.api.AdminBackend.ObjectStore
(*durationpb.Duration)(nil), // 15: google.protobuf.Duration
}
var file_conf_conf_proto_depIdxs = []int32{
1, // 0: kratos.api.Bootstrap.server:type_name -> kratos.api.Server
@@ -897,18 +1331,26 @@ var file_conf_conf_proto_depIdxs = []int32{
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.Server.HTTP.timeout:type_name -> google.protobuf.Duration
12, // 12: kratos.api.Server.GRPC.timeout:type_name -> google.protobuf.Duration
12, // 13: kratos.api.Data.Redis.read_timeout:type_name -> google.protobuf.Duration
12, // 14: kratos.api.Data.Redis.write_timeout:type_name -> google.protobuf.Duration
12, // 15: kratos.api.AdminBackend.JWT.expires_time:type_name -> google.protobuf.Duration
12, // 16: kratos.api.AdminBackend.JWT.buffer_time:type_name -> google.protobuf.Duration
12, // 17: kratos.api.AdminBackend.Captcha.store_expiration:type_name -> google.protobuf.Duration
18, // [18:18] is the sub-list for method output_type
18, // [18:18] is the sub-list for method input_type
18, // [18:18] is the sub-list for extension type_name
18, // [18:18] is the sub-list for extension extendee
0, // [0:18] is the sub-list for field type_name
12, // 11: kratos.api.AdminBackend.storage:type_name -> kratos.api.AdminBackend.Storage
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
}
func init() { file_conf_conf_proto_init() }
@@ -922,7 +1364,7 @@ func file_conf_conf_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_conf_conf_proto_rawDesc), len(file_conf_conf_proto_rawDesc)),
NumEnums: 0,
NumMessages: 12,
NumMessages: 15,
NumExtensions: 0,
NumServices: 0,
},
+46
View File
@@ -30,6 +30,13 @@ message Data {
message Database {
string driver = 1;
string source = 2;
string host = 3;
string port = 4;
string user = 5;
string password = 6;
string name = 7;
string config = 8;
string path = 9;
}
message Redis {
string network = 1;
@@ -48,6 +55,9 @@ message AdminBackend {
Captcha captcha = 3;
Local local = 4;
Email email = 5;
Storage storage = 6;
// ConfigPath is populated by the entrypoint and is not required in YAML.
string config_path = 7;
message JWT {
string signing_key = 1;
@@ -78,4 +88,40 @@ message AdminBackend {
bool is_ssl = 7;
bool is_login_auth = 8;
}
message Storage {
string type = 1;
Qiniu qiniu = 2;
ObjectStore aliyun_oss = 3;
ObjectStore huawei_obs = 4;
ObjectStore tencent_cos = 5;
ObjectStore aws_s3 = 6;
ObjectStore cloudflare_r2 = 7;
ObjectStore minio = 8;
}
message Qiniu {
string zone = 1;
string bucket = 2;
string base_url = 3;
string access_key = 4;
string secret_key = 5;
bool use_https = 6;
bool use_cdn_domains = 7;
}
// ObjectStore covers S3-compatible configuration used by public cloud
// providers and self-hosted MinIO.
message ObjectStore {
string endpoint = 1;
string region = 2;
string bucket = 3;
string access_key = 4;
string secret_key = 5;
string base_url = 6;
string path_prefix = 7;
bool use_ssl = 8;
bool force_path_style = 9;
string account_id = 10;
}
}