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; AdminBackend admin = 3; } 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; } message Redis { string network = 1; string addr = 2; google.protobuf.Duration read_timeout = 3; google.protobuf.Duration write_timeout = 4; } Database database = 1; Redis redis = 2; } // AdminBackend contains settings for the administration HTTP transport. message AdminBackend { string router_prefix = 1; JWT jwt = 2; Captcha captcha = 3; Local local = 4; Email email = 5; message JWT { string signing_key = 1; google.protobuf.Duration expires_time = 2; google.protobuf.Duration buffer_time = 3; string issuer = 4; } message Captcha { int32 key_long = 1; int32 img_width = 2; int32 img_height = 3; google.protobuf.Duration store_expiration = 4; } message Local { string store_path = 1; string path_prefix = 2; } message Email { string to = 1; string from = 2; string host = 3; string secret = 4; string nickname = 5; int32 port = 6; bool is_ssl = 7; bool is_login_auth = 8; } }