权限
列出项目权限项定义
请求
GET /openapi/policy/resource-actions?projectName=<项目标识>&envType=<项目类型>
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
projectName | string | 项目标识 | 是 |
envType | string | 项目类型,主机项目为 pm ,其他类型为k8s | 是 |
成功返回说明
参数名 | 类型 | 描述 |
---|---|---|
resource | string | 操作对象 |
alias | string | 操作对象别名 |
rules | []Rules | 操作项 |
操作项参数说明
参数名 | 类型 | 描述 |
---|---|---|
action | string | 操作项定义 |
alias | string | 操作项别名 |
成功返回示例
[
{
"resource": "Workflow",
"alias": "工作流",
"rules": [
{
"action": "get_workflow",
"alias": "查看"
},
{
"action": "create_workflow",
"alias": "新建"
},
{
"action": "edit_workflow",
"alias": "编辑"
},
{
"action": "delete_workflow",
"alias": "删除"
},
{
"action": "run_workflow",
"alias": "执行"
},
{
"action": "debug_workflow",
"alias": "调试"
}
]
},
{
"resource": "Environment",
"alias": "测试环境",
"rules": [
{
"action": "get_environment",
"alias": "查看"
},
{
"action": "create_environment",
"alias": "创建"
},
{
"action": "config_environment",
"alias": "配置"
},
{
"action": "manage_environment",
"alias": "管理服务实例"
},
{
"action": "delete_environment",
"alias": "删除"
},
{
"action": "debug_pod",
"alias": "服务调试"
}
]
},
{
"resource": "ProductionEnvironment",
"alias": "生产环境",
"rules": [
{
"action": "get_production_environment",
"alias": "查看"
},
{
"action": "create_production_environment",
"alias": "创建"
},
{
"action": "config_production_environment",
"alias": "配置"
},
{
"action": "edit_production_environment",
"alias": "管理服务实例"
},
{
"action": "delete_production_environment",
"alias": "删除"
},
{
"action": "production_debug_pod",
"alias": "服务调试"
}
]
},
{
"resource": "Service",
"alias": "测试服务",
"rules": [
{
"action": "get_service",
"alias": "查看"
},
{
"action": "create_service",
"alias": "新建"
},
{
"action": "edit_service",
"alias": "编辑"
},
{
"action": "delete_service",
"alias": "删除"
}
]
},
{
"resource": "ProductionService",
"alias": "生产服务",
"rules": [
{
"action": "get_production_service",
"alias": "查看"
},
{
"action": "create_production_service",
"alias": "新建"
},
{
"action": "edit_production_service",
"alias": "编辑"
},
{
"action": "delete_production_service",
"alias": "删除"
}
]
},
{
"resource": "Build",
"alias": "构建",
"rules": [
{
"action": "get_build",
"alias": "查看"
},
{
"action": "create_build",
"alias": "新建"
},
{
"action": "edit_build",
"alias": "编辑"
},
{
"action": "delete_build",
"alias": "删除"
}
]
},
{
"resource": "Test",
"alias": "测试",
"rules": [
{
"action": "get_test",
"alias": "查看"
},
{
"action": "create_test",
"alias": "新建"
},
{
"action": "edit_test",
"alias": "编辑"
},
{
"action": "delete_test",
"alias": "删除"
},
{
"action": "run_test",
"alias": "执行"
}
]
},
{
"resource": "Scan",
"alias": "代码扫描",
"rules": [
{
"action": "get_scan",
"alias": "查看"
},
{
"action": "create_scan",
"alias": "新建"
},
{
"action": "edit_scan",
"alias": "编辑"
},
{
"action": "delete_scan",
"alias": "删除"
},
{
"action": "run_scan",
"alias": "执行"
}
]
},
{
"resource": "Delivery",
"alias": "版本管理",
"rules": [
{
"action": "get_delivery",
"alias": "查看"
},
{
"action": "create_delivery",
"alias": "创建"
},
{
"action": "delete_delivery",
"alias": "删除"
}
]
}
]
列出项目角色信息
请求
GET /openapi/policy/roles?namespace=<项目标识>
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
namespace | string | 项目标识 | 是 |
成功返回说明
参数名 | 类型 | 描述 |
---|---|---|
id | int | id |
name | string | 名称 |
namespace | string | 项目唯一标识 |
desc | string | 描述 |
type | string | 类型,值为 custom 时标识为自建类型 |
成功返回示例
[
{
"id": 51,
"name": "dev",
"namespace": "test-k8skv-2",
"desc": "",
"type": "custom"
},
{
"id": 1,
"name": "project-admin",
"namespace": "test-k8skv-2",
"desc": "",
"type": "system"
},
{
"id": 2,
"name": "read-only",
"namespace": "test-k8skv-2",
"desc": "",
"type": "system"
},
{
"id": 3,
"name": "read-project-only",
"namespace": "test-k8skv-2",
"desc": "",
"type": "system"
}
]
获取项目角色详情
请求
GET /openapi/policy/roles/:name?namespace=<项目标识>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
name | string | 角色名称 | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
namespace | string | 项目标识 | 是 |
成功返回说明
参数名 | 类型 | 描述 |
---|---|---|
id | int | id |
name | string | 名称 |
namespace | string | 项目唯一标识 |
rules | []Rule | 权限列表 |
desc | string | 描述 |
type | string | 类型,值为 custom 时标识为自建类型 |
Rule 参数说明
参数名 | 类型 | 描述 |
---|---|---|
resource | string | 操作对象 |
verbs | []string | 权限项,具体值参考权限定义接口 |
成功返回示例
{
"id": 51,
"name": "dev",
"namespace": "test-k8skv-2",
"desc": "",
"type": "custom",
"rules": [
{
"resource": "Test",
"verbs": [
"get_test"
]
},
{
"resource": "Scan",
"verbs": [
"get_scan"
]
},
{
"resource": "Delivery",
"verbs": [
"get_delivery"
]
},
{
"resource": "Workflow",
"verbs": [
"get_workflow",
"run_workflow"
]
},
{
"resource": "ProductionEnvironment",
"verbs": [
"get_production_environment"
]
},
{
"resource": "Service",
"verbs": [
"get_service"
]
},
{
"resource": "ProductionService",
"verbs": [
"get_production_service"
]
},
{
"resource": "Build",
"verbs": [
"get_build"
]
},
{
"resource": "Environment",
"verbs": [
"get_environment"
]
}
]
}
创建项目角色
请求
POST /openapi/policy/roles?namespace=<项目标识>
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
namespace | string | 项目标识 | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
name | 角色名称 | string | 是 |
namespace | 项目标识 | string | 是 |
actions | 权限项 | []string | 是 |
Body 参数示例
{
"name": "test",
"actions":
[
"get_test",
"create_test",
"edit_test"
],
"namespace": "test-k8skv-2"
}
成功返回示例
{
"message": "success"
}
编辑项目角色
请求
PUT /openapi/policy/roles/:name?namespace=<项目标识>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
name | string | 角色名称 | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
namespace | string | 项目标识 | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
actions | 权限项 | []string | 是 |
Body 参数示例
{
"actions":
[
"create_test",
"edit_test",
"get_test",
"get_build"
]
}
成功返回示例
{
"message": "success"
}
删除项目角色
请求
DELETE /openapi/policy/roles/:name?namespace=<项目标识>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
name | string | 角色名称 | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
namespace | string | 项目标识 | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
actions | 权限项 | []string | 是 |
Body 参数示例
{
"actions":
[
"create_test",
"edit_test",
"get_test",
"get_build"
]
}
成功返回示例
{
"message": "success"
}
列出项目成员
请求
GET /openapi/policy/role-bindings?namespace=<项目标识>
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
namespace | string | 项目标识 | 是 |
成功返回说明
参数名 | 类型 | 描述 |
---|---|---|
binding_type | string | 成员类型,user 为用户,group 为用户组 |
user_info | UserInfo(#userinfo-1) | 用户成员信息,当binding_type 值为user 时生效 |
group_info | UserInfo(#groupinfo-1) | 用户组成员信息,当binding_type 值为group 时生效 |
roles | []string | 拥有的角色 |
用户成员参数说明
参数名 | 说明 | 类型 |
---|---|---|
uid | uid | string |
name | 用户名 | string |
accout | 账户名 | string |
用户组成员参数说明
参数名 | 说明 | 类型 |
---|---|---|
group_id | group_id | string |
name | 用户组名称 | string |
成功返回示例
[
{
"binding_type": "user",
"user_info": {
"identity_type": "system",
"uid": "d456d705-73a9-11ee-98cf-56ef622fc735",
"account": "demo",
"username": "demo"
},
"roles": [
"prod-test",
"read-project-only"
]
},
{
"binding_type": "user",
"user_info": {
"identity_type": "system",
"uid": "290a3f01-73aa-11ee-98cf-56ef622fc735",
"account": "leo",
"username": "leo"
},
"roles": [
"read-project-only"
]
},
{
"binding_type": "group",
"group_info": {
"group_id": "98256be6-6e53-11ee-a205-9653dd3e9c32",
"name": "XX"
},
"roles": [
"read-project-only"
]
},
{
"binding_type": "group",
"group_info": {
"group_id": "cce58580-5131-11ee-b458-4a4088364d94",
"name": "所有用户"
},
"roles": [
"read-project-only"
]
}
]
增加项目成员
请求
POST /openapi/policy/role-bindings?namespace=<项目标识>
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
namespace | string | 项目标识 | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
role | 角色类型 | string | 是 |
identities | 成员数据列表 | []identities | 是 |
Body 参数示例
成员数据参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
identity_type | 成员类型 | string user 或者 group | 是 |
gid | 用户组id | string | 添加用户组时必填 |
uid | 用户id | string | 添加用户时必填 |
{
"role": "read-project-only",
"identities":
[
{
"identity_type": "group",
"gid": "98256be6-6e53-11ee-a205-9653dd3e9c32"
},
{
"identity_type": "group",
"gid": "cce58580-5131-11ee-b458-4a4088364d94"
},
{
"identity_type": "user",
"uid": "ddd405d5-5131-11ee-b458-4a4088364d94"
}
]
}
成功返回示例
{
"message": "success"
}
更新项目成员角色
请求
POST /openapi/policy/role-bindings/user/:uid?namespace=<项目标识>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
uid | string | 用户id | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
namespace | string | 项目标识 | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
roles | 角色列表 | []string | 是 |
Body 参数示例
{
"roles":
[
"prod-test",
"read-project-only",
"lilian"
]
}
成功返回示例
{
"message": "success"
}
删除项目成员
请求
DELETE /openapi/policy/role-bindings/user/:uid?namespace=<项目标识>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
uid | string | 用户id | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
namespace | string | 项目标识 | 是 |
成功返回示例
{
"message": "success"
}
更新项目用户组成员角色
请求
POST /openapi/policy/role-bindings/group/:gid?namespace=<项目标识>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
gid | string | 用户组id | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
namespace | string | 项目标识 | 是 |
Body 参数说明
参数名 | 说明 | 类型 | 必填 |
---|---|---|---|
roles | 角色列表 | []string | 是 |
Body 参数示例
{
"roles":
[
"prod-test",
"read-project-only",
"lilian"
]
}
成功返回示例
{
"message": "success"
}
删除项目用户组成员
请求
DELETE /openapi/policy/role-bindings/group/:gid?namespace=<项目标识>
路径参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
gid | string | 用户组id | 是 |
Query 参数说明
参数名 | 类型 | 描述 | 必填 |
---|---|---|---|
namespace | string | 项目标识 | 是 |
成功返回示例
{
"message": "success"
}