257 lines
6.2 KiB
Protocol Buffer
257 lines
6.2 KiB
Protocol Buffer
syntax = "proto3";
|
||
|
||
package admin.v1;
|
||
|
||
option go_package = "git.lendry.ru/lendry-erp/proto.git/go;pb";
|
||
|
||
// Единый сервис для всех административных операций
|
||
service AdminService {
|
||
// Управление учетными записями
|
||
rpc CreateUser(CreateUserRequest) returns (CreateUserResponse);
|
||
rpc DeleteUser(DeleteUserRequest) returns (DeleteUserResponse);
|
||
rpc BlockUser(BlockUserRequest) returns (BlockUserResponse);
|
||
rpc UnblockUser(UnblockUserRequest) returns (UnblockUserResponse);
|
||
|
||
// Управление данными и безопасностью
|
||
rpc ChangeData(ChangeDataRequest) returns (ChangeDataResponse);
|
||
rpc AdminResetPassword (AdminResetPasswordRequest) returns (AdminResetPasswordResponse);
|
||
|
||
// Управление ролями (RBAC)
|
||
rpc AssignRole (AssignRoleRequest) returns (AssignRoleResponse);
|
||
rpc RevokeRole (RevokeRoleRequest) returns (RevokeRoleResponse);
|
||
|
||
// Управление черным списком IP
|
||
rpc BlockIp(BlockIpRequest) returns (BlockIpResponse);
|
||
rpc UnblockIp(UnblockIpRequest) returns (UnblockIpResponse);
|
||
|
||
// Синхронизация с поисковым движком (Elasticsearch)
|
||
rpc SyncUsersToSearch (SyncUsersToSearchRequest) returns (SyncUsersToSearchResponse);
|
||
rpc HandleGrafanaAlert(GrafanaAlertRequest) returns (GrafanaAlertResponse);
|
||
|
||
|
||
// RBAC
|
||
rpc GetAllPermissions (GetAllPermissionsAdminRequest) returns (GetAllPermissionsAdminResponse);
|
||
rpc GetAllRoles(GetAllRolesAdminRequest) returns (GetAllRolesAdminResponse);
|
||
rpc CreateRole(CreateRoleAdminRequest) returns (ModifyRoleAdminResponse);
|
||
rpc UpdateRole(UpdateRoleAdminRequest) returns (ModifyRoleAdminResponse);
|
||
rpc DeleteRole(DeleteRoleAdminRequest) returns (DeleteRoleAdminResponse);
|
||
rpc CreatePermission(CreatePermissionAdminRequest) returns (ModifyPermissionAdminResponse);
|
||
rpc UpdatePermission(UpdatePermissionAdminRequest) returns (ModifyPermissionAdminResponse);
|
||
}
|
||
|
||
// --- DTO для управления учетными записями ---
|
||
|
||
message CreateUserRequest {
|
||
string username = 1;
|
||
string password = 2;
|
||
repeated string roles = 3;
|
||
}
|
||
|
||
message CreateUserResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
}
|
||
|
||
message DeleteUserRequest {
|
||
string user_id = 1;
|
||
}
|
||
|
||
message DeleteUserResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
}
|
||
|
||
message BlockUserRequest {
|
||
string user_id = 1; // Кого блокируем
|
||
string admin_id = 2; // Кто блокирует
|
||
optional string reason = 3;
|
||
}
|
||
|
||
message BlockUserResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
}
|
||
|
||
message UnblockUserRequest {
|
||
string user_id = 1;
|
||
string admin_id = 2;
|
||
}
|
||
|
||
message UnblockUserResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
}
|
||
|
||
// --- DTO для управления данными и безопасностью ---
|
||
|
||
message ChangeDataRequest {
|
||
string user_id = 1;
|
||
string session_id = 2;
|
||
optional string email = 3;
|
||
optional string phone = 4;
|
||
optional string full_name = 5;
|
||
optional string avatar_url = 6;
|
||
optional string custom_status_text = 7;
|
||
optional string custom_status_emoji = 8;
|
||
optional string timezone = 9;
|
||
optional string language = 10;
|
||
optional bool is_public = 11;
|
||
}
|
||
|
||
message ChangeDataResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
}
|
||
|
||
message AdminResetPasswordRequest {
|
||
string user_id = 1;
|
||
string new_password = 2;
|
||
}
|
||
|
||
message AdminResetPasswordResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
}
|
||
|
||
// --- DTO для управления ролями (RBAC) ---
|
||
|
||
message AssignRoleRequest {
|
||
string user_id = 1;
|
||
string role_id = 2; // Передаем как string, внутри парсим в Int
|
||
}
|
||
|
||
message AssignRoleResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
}
|
||
|
||
message RevokeRoleRequest {
|
||
string user_id = 1;
|
||
string role_id = 2;
|
||
}
|
||
|
||
message RevokeRoleResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
}
|
||
|
||
// --- DTO для управления черным списком IP ---
|
||
|
||
message BlockIpRequest {
|
||
string ip_address = 1;
|
||
string admin_id = 2;
|
||
optional string reason = 3;
|
||
}
|
||
|
||
message BlockIpResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
}
|
||
|
||
message UnblockIpRequest {
|
||
string ip_address = 1;
|
||
string admin_id = 2;
|
||
}
|
||
|
||
message UnblockIpResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
}
|
||
|
||
// --- DTO для синхронизации с поиском ---
|
||
|
||
message SyncUsersToSearchRequest {
|
||
// Пустой запрос, так как параметры не требуются
|
||
}
|
||
|
||
message SyncUsersToSearchResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
}
|
||
|
||
message GetAllPermissionsAdminRequest {
|
||
string user_id = 1;
|
||
string session_id = 2;
|
||
}
|
||
|
||
message PermissionAdmin {
|
||
string id = 1;
|
||
string code = 2;
|
||
string description = 3;
|
||
string module = 4;
|
||
repeated string roles = 5;
|
||
}
|
||
|
||
message GetAllPermissionsAdminResponse {
|
||
repeated PermissionAdmin permissions = 1;
|
||
}
|
||
|
||
message GetAllRolesAdminRequest {
|
||
string user_id = 1;
|
||
string session_id = 2;
|
||
}
|
||
|
||
message RolesAdmin {
|
||
string id = 1;
|
||
string name = 2;
|
||
int32 level = 3;
|
||
repeated string permissions = 4;
|
||
repeated string ldap_mapping = 5;
|
||
repeated string accounts = 6;
|
||
}
|
||
|
||
message GetAllRolesAdminResponse {
|
||
repeated RolesAdmin roles = 1;
|
||
}
|
||
|
||
message CreateRoleAdminRequest {
|
||
string name = 1;
|
||
int32 level = 2;
|
||
repeated string permission_codes = 3;
|
||
}
|
||
|
||
message UpdateRoleAdminRequest {
|
||
string id = 1;
|
||
optional string name = 2;
|
||
optional int32 level = 3;
|
||
repeated string permission_codes = 4;
|
||
}
|
||
|
||
message ModifyRoleAdminResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
}
|
||
|
||
message DeleteRoleAdminRequest {
|
||
string id = 1;
|
||
}
|
||
|
||
message DeleteRoleAdminResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
optional string fallback_role_name = 3;
|
||
}
|
||
|
||
message CreatePermissionAdminRequest {
|
||
string code = 1;
|
||
string description = 2;
|
||
string module = 3;
|
||
}
|
||
|
||
message UpdatePermissionAdminRequest {
|
||
string id = 1;
|
||
repeated string role_ids = 2;
|
||
}
|
||
|
||
message ModifyPermissionAdminResponse {
|
||
bool success = 1;
|
||
string message = 2;
|
||
}
|
||
|
||
message GrafanaAlertRequest {
|
||
string payload = 1;
|
||
}
|
||
// Успешно ли обработан алерт
|
||
message GrafanaAlertResponse {
|
||
bool success = 1;
|
||
} |