syntax = "proto3"; package kratos.api; option go_package = "kra/internal/conf;conf"; import "google/protobuf/duration.proto"; message Bootstrap { Server server = 1; Data data = 2; JWT jwt = 3; Casbin casbin = 4; Captcha captcha = 5; Upload upload = 6; } message Server { message HTTP { string network = 1; string addr = 2; google.protobuf.Duration timeout = 3; } message GRPC { string network = 1; string addr = 2; google.protobuf.Duration timeout = 3; } HTTP http = 1; GRPC grpc = 2; } message Data { message Database { string driver = 1; string source = 2; string table_prefix = 3; int32 max_idle_conns = 4; int32 max_open_conns = 5; int32 max_lifetime = 6; bool log_mode = 7; } message Redis { string addr = 1; string password = 2; int32 db = 3; bool use_cluster = 4; repeated string cluster_addrs = 5; } Database database = 1; Redis redis = 2; } message JWT { string signing_key = 1; string expires_time = 2; string buffer_time = 3; string issuer = 4; } message Casbin { string model_path = 1; } message Captcha { int32 key_long = 1; int32 img_width = 2; int32 img_height = 3; int32 open_captcha = 4; int32 open_captcha_timeout = 5; } message Upload { string type = 1; string path = 2; int64 max_size = 3; message Local { string store_path = 1; } message Aliyun { string endpoint = 1; string access_key_id = 2; string access_key_secret = 3; string bucket_name = 4; string bucket_url = 5; string base_path = 6; } message Tencent { string bucket = 1; string region = 2; string secret_id = 3; string secret_key = 4; string base_url = 5; string path_prefix = 6; } message Qiniu { string zone = 1; string bucket = 2; string img_path = 3; string access_key = 4; string secret_key = 5; bool use_https = 6; bool use_cdn_domains = 7; } message Minio { string id = 1; string secret = 2; string bucket = 3; string endpoint = 4; string base_path = 5; bool use_ssl = 6; } message AwsS3 { string bucket = 1; string region = 2; string endpoint = 3; string secret_id = 4; string secret_key = 5; string base_url = 6; string path_prefix = 7; bool s3_force_path_style = 8; bool disable_ssl = 9; } message HuaweiObs { string path = 1; string bucket = 2; string endpoint = 3; string access_key = 4; string secret_key = 5; } message CloudflareR2 { string bucket = 1; string base_url = 2; string path = 3; string account_id = 4; string access_key_id = 5; string secret_access_key = 6; } Local local = 4; Aliyun aliyun = 5; Tencent tencent = 6; Qiniu qiniu = 7; Minio minio = 8; AwsS3 aws_s3 = 9; HuaweiObs huawei_obs = 10; CloudflareR2 cloudflare_r2 = 11; }