meta/meta.proto
syntax = "proto3";
package jsgenerate_kb2022.meta;
option go_package = "gateway/protocol/meta";
import "google/api/annotations.proto";
// 系統元信息
service Meta {
// 返回系統版本信息,只有 root 可調用
rpc Metadata (MetadataRequest) returns (MetadataResponse){
option (google.api.http) = {
get: "/api/v1/meta/metadata"
};
}
// 返回系統支持的權限列表
rpc Permission (PermissionRequest) returns (PermissionResponse){
option (google.api.http) = {
get: "/api/v1/meta/permission"
};
}
// 設置權限列表,只有 root 可調用
rpc SetPermission (SetPermissionRequest) returns (SetPermissionResponse){
option (google.api.http) = {
post: "/api/v1/meta/set_permission"
body: "*"
};
}
// 返回系統支持的組列表
rpc Groups (GroupsRequest) returns (GroupsResponse){
option (google.api.http) = {
get: "/api/v1/meta/groups"
};
}
// 設置組列表,只有 root 可調用。不要輕易使用錯誤的調用將導致系統不正常工作,通常是系統升級了需要更新元信息時在專業人員指導下使用
rpc SetGroups (SetGroupsRequest) returns (SetGroupsResponse){
option (google.api.http) = {
post: "/api/v1/meta/set_groups"
body: "*"
};
}
// 返回系統支持的任務優先級列表
rpc TaskPriority (TaskPriorityRequest) returns (TaskPriorityResponse){
option (google.api.http) = {
get: "/api/v1/meta/task/priority"
};
}
// 設置優先級列表,只有 root 可調用。不要輕易使用錯誤的調用將導致系統不正常工作,通常是系統升級了需要更新元信息時在專業人員指導下使用
rpc SetTaskPriority (SetTaskPriorityRequest) returns (SetTaskPriorityResponse){
option (google.api.http) = {
post: "/api/v1/meta/task/set_priority"
body: "*"
};
}
// 返回系統支持的人員和任務等級
rpc Level (LevelRequest) returns (LevelResponse){
option (google.api.http) = {
get: "/api/v1/meta/level"
};
}
// 設置等級列表,只有 root 可調用。不要輕易使用錯誤的調用將導致系統不正常工作,通常是系統升級了需要更新元信息時在專業人員指導下使用
rpc SetLevel (SetLevelRequest) returns (SetLevelResponse){
option (google.api.http) = {
post: "/api/v1/meta/set_level"
body: "*"
};
}
}
message MetadataRequest{
}
message MetadataResponse{
// meta 運行平臺
string platform = 1;
// meta 版本
string version = 2;
// 數據庫驅動
string driver = 3;
// 數據庫版本
uint64 db = 4;
}
message Permission{
// 唯一的識別 id
int32 id = 1;
// 一個給人類查看稱呼的名稱
string name = 2;
// 一段給人類查看的文本說明
string describe = 3;
}
message PermissionRequest{}
message PermissionResponse{
repeated Permission data = 1;
}
message SetPermissionRequest{
repeated Permission data = 1;
}
message SetPermissionResponse{}
message Group{
// 唯一的識別 id
int32 id = 1;
// 一個給人類查看稱呼的名稱
string name = 2;
// 一段給人類查看的文本說明
string describe = 3;
// 此組包含哪些權限
repeated int32 permissions = 4;
// 從其它組派生 將包含被派生組的權限
repeated int32 extends =5 ;
}
message GroupsRequest{}
message GroupsResponse{
repeated Group data = 1;
}
message SetGroupsRequest{
repeated Group data = 1;
}
message SetGroupsResponse{}
message TaskPriority{
// 唯一的識別 id
// id 越大優先級越高
int32 id = 1;
// 一個給人類查看 優先級 名稱
string name = 2;
// 一段給人類查看的文本說明
string describe = 3;
}
message TaskPriorityRequest{
}
message TaskPriorityResponse{
repeated TaskPriority data = 1;
}
message SetTaskPriorityRequest{
repeated TaskPriority data = 1;
}
message SetTaskPriorityResponse{
}
message Level{
// 唯一的識別 id
// id 越大優先級越高
int32 id = 1;
// 一個給人類查看 優先級 名稱
string name = 2;
// 一段給人類查看的文本說明
string describe = 3;
}
message LevelRequest{
}
message LevelResponse{
repeated Level data = 1;
}
message SetLevelRequest{
repeated Level data = 1;
}
message SetLevelResponse{
}
message MetadataOfRaw{
uint64 DB = 1;
int64 Unix = 2;
}