You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
2.9 KiB
131 lines
2.9 KiB
syntax = "proto3";
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
import "gogoproto/gogo.proto";
|
|
// import "validate/validate.proto";
|
|
import "google/api/annotations.proto";
|
|
import "google/protobuf/empty.proto";
|
|
|
|
package api.v1;
|
|
|
|
option go_package = "moredoc/api/v1;v1";
|
|
option java_multiple_files = true;
|
|
option java_package = "api.v1";
|
|
|
|
message Config {
|
|
int64 id = 1;
|
|
string label = 2;
|
|
string name = 3;
|
|
string value = 4;
|
|
string placeholder = 5;
|
|
string input_type = 6;
|
|
string category = 7;
|
|
int32 sort = 8;
|
|
string options = 9;
|
|
google.protobuf.Timestamp created_at = 10 [ (gogoproto.stdtime) = true ];
|
|
google.protobuf.Timestamp updated_at = 11 [ (gogoproto.stdtime) = true ];
|
|
}
|
|
|
|
message ListConfigRequest { repeated string category = 1; }
|
|
|
|
message Configs { repeated Config config = 1; }
|
|
|
|
// 验证码配置
|
|
message ConfigCaptcha {
|
|
int32 length = 1;
|
|
int32 width = 2;
|
|
int32 height = 3;
|
|
string type = 4;
|
|
}
|
|
|
|
// 系统配置项
|
|
message ConfigSystem {
|
|
string domain = 1;
|
|
string title = 2;
|
|
string keywords = 3;
|
|
string description = 4;
|
|
string logo = 5;
|
|
string favicon = 6;
|
|
string icp = 7;
|
|
string analytics = 8;
|
|
string sitename = 9;
|
|
string copyright_start_year = 10;
|
|
string register_background = 11;
|
|
string login_background = 12;
|
|
repeated string recommend_words = 13;
|
|
}
|
|
|
|
// 底链配置项
|
|
message ConfigFooter {
|
|
string about = 1;
|
|
string contact = 2;
|
|
string agreement = 3;
|
|
string copyright = 4;
|
|
string feedback = 5;
|
|
}
|
|
|
|
// 安全配置
|
|
message ConfigSecurity {
|
|
bool is_close = 1;
|
|
string close_statement = 2;
|
|
bool enable_register = 3;
|
|
bool enable_captcha_login = 4;
|
|
bool enable_captcha_register = 5;
|
|
bool enable_captcha_comment = 6;
|
|
bool enable_captcha_find_password = 7;
|
|
bool enable_captcha_upload = 8;
|
|
int32 max_document_size = 9;
|
|
}
|
|
|
|
message Settings {
|
|
ConfigSystem system = 1;
|
|
ConfigFooter footer = 2;
|
|
ConfigSecurity security = 3;
|
|
// ConfigCaptcha captcha = 4;
|
|
}
|
|
|
|
message Stats {
|
|
int64 user_count = 1;
|
|
int64 document_count = 2;
|
|
int64 category_count = 3;
|
|
int64 article_count = 4;
|
|
int64 comment_count = 5;
|
|
int64 banner_count = 6;
|
|
int64 friendlink_count = 7;
|
|
string os = 8;
|
|
string version = 9;
|
|
string hash = 10;
|
|
string build_at = 11;
|
|
int64 report_count = 12;
|
|
}
|
|
|
|
service ConfigAPI {
|
|
// 获取系统配置(针对所有用户,只读)
|
|
rpc GetSettings(google.protobuf.Empty) returns (Settings) {
|
|
option (google.api.http) = {
|
|
get : "/api/v1/settings"
|
|
};
|
|
}
|
|
|
|
// UpdateConfig 更新配置
|
|
rpc UpdateConfig(Configs) returns (google.protobuf.Empty) {
|
|
option (google.api.http) = {
|
|
put : '/api/v1/config',
|
|
body : '*',
|
|
};
|
|
}
|
|
|
|
// ListConfig 查询配置项
|
|
rpc ListConfig(ListConfigRequest) returns (Configs) {
|
|
option (google.api.http) = {
|
|
get : '/api/v1/config/list',
|
|
};
|
|
}
|
|
|
|
// 获取系统配置
|
|
rpc GetStats(google.protobuf.Empty) returns (Stats) {
|
|
option (google.api.http) = {
|
|
get : "/api/v1/stats"
|
|
};
|
|
}
|
|
} |