Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enhance: RBAC custom privilege group #330

Merged
merged 1 commit into from
Nov 8, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
RBAC custom privilege group
Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com>
shaoting-huang committed Nov 8, 2024
commit 7b1fab17faae4b5e00cc23d6cc94fb026580fa0a
699 changes: 379 additions & 320 deletions go-api/commonpb/common.pb.go

Large diffs are not rendered by default.

6,687 changes: 3,641 additions & 3,046 deletions go-api/milvuspb/milvus.pb.go

Large diffs are not rendered by default.

148 changes: 148 additions & 0 deletions go-api/milvuspb/milvus_grpc.pb.go
14 changes: 14 additions & 0 deletions proto/common.proto
Original file line number Diff line number Diff line change
@@ -73,6 +73,10 @@ enum ErrorCode {
NotReadyServe = 56;
// Coord is switching from standby mode to active mode
NotReadyCoordActivating = 57;
CreatePrivilegeGroupFailure = 58;
DropPrivilegeGroupFailure = 59;
ListPrivilegeGroupsFailure = 60;
OperatePrivilegeGroupFailure = 61;

// Service availability.
// NA: Not Available.
@@ -278,6 +282,11 @@ enum MsgType {
SelectGrant = 1607;
RefreshPolicyInfoCache = 1608;
ListPolicy = 1609;
CreatePrivilegeGroup = 1610;
DropPrivilegeGroup = 1611;
ListPrivilegeGroups = 1612;
OperatePrivilegeGroup = 1613;


/* Resource group */
CreateResourceGroup = 1700;
@@ -419,6 +428,11 @@ enum ObjectPrivilege {
PrivilegeGroupReadOnly = 53;
PrivilegeGroupReadWrite = 54;
PrivilegeGroupAdmin = 55;

PrivilegeCreatePrivilegeGroup = 56;
PrivilegeDropPrivilegeGroup = 57;
PrivilegeListPrivilegeGroups = 58;
PrivilegeOperatePrivilegeGroup = 59;
}

message PrivilegeExt {
72 changes: 72 additions & 0 deletions proto/milvus.proto
Original file line number Diff line number Diff line change
@@ -140,6 +140,11 @@ service MilvusService {

rpc BackupRBAC(BackupRBACMetaRequest) returns (BackupRBACMetaResponse){}
rpc RestoreRBAC(RestoreRBACMetaRequest) returns (common.Status){}

rpc CreatePrivilegeGroup(CreatePrivilegeGroupRequest) returns (common.Status) {}
rpc DropPrivilegeGroup(DropPrivilegeGroupRequest) returns (common.Status) {}
rpc ListPrivilegeGroups(ListPrivilegeGroupsRequest) returns (ListPrivilegeGroupsResponse) {}
rpc OperatePrivilegeGroup(OperatePrivilegeGroupRequest) returns (common.Status) {}
}

message CreateAliasRequest {
@@ -1462,6 +1467,66 @@ message DropRoleRequest {
bool force_drop = 3;
}

message CreatePrivilegeGroupRequest {
option (common.privilege_ext_obj) = {
object_type: Global
object_privilege: PrivilegeCreatePrivilegeGroup
object_name_index: -1
};
// Not useful for now
common.MsgBase base = 1;
// group name
string group_name = 2;
}

message DropPrivilegeGroupRequest {
option (common.privilege_ext_obj) = {
object_type: Global
object_privilege: PrivilegeDropPrivilegeGroup
object_name_index: -1
};
// Not useful for now
common.MsgBase base = 1;
// group name
string group_name = 2;
}

message ListPrivilegeGroupsRequest {
option (common.privilege_ext_obj) = {
object_type: Global
object_privilege: PrivilegeListPrivilegeGroups
object_name_index: -1
};
// Not useful for now
common.MsgBase base = 1;
}

message ListPrivilegeGroupsResponse {
common.Status status = 1;
repeated PrivilegeGroupInfo privilege_groups = 2;
}

message OperatePrivilegeGroupRequest {
option (common.privilege_ext_obj) = {
object_type: Global
object_privilege: PrivilegeOperatePrivilegeGroup
object_name_index: -1
};
// Not useful for now
common.MsgBase base = 1;
// group name
string group_name = 2;
// privileges
repeated PrivilegeEntity privileges = 3;
// operation type
OperatePrivilegeGroupType type = 4;
}

enum OperatePrivilegeGroupType {
AddPrivilegesToGroup = 0;
RemovePrivilegesFromGroup = 1;
}

enum OperateUserRoleType {
AddUserToRole = 0;
RemoveUserFromRole = 1;
@@ -1483,6 +1548,11 @@ message OperateUserRoleRequest {
OperateUserRoleType type = 4;
}

message PrivilegeGroupInfo {
string group_name = 1;
repeated PrivilegeEntity privileges = 2;
}

message SelectRoleRequest {
option (common.privilege_ext_obj) = {
object_type: Global
@@ -1616,6 +1686,8 @@ message RBACMeta {
repeated milvus.RoleEntity roles = 2;
// (role, object, previledge)
repeated milvus.GrantEntity grants = 3;
// privilege group info
repeated milvus.PrivilegeGroupInfo privilege_groups = 4;
}

message BackupRBACMetaRequest {