com um clique
auth-manager
// 数据权限管理技能:支持资源权限查询与权限申请。 先判定“查询权限”还是“申请权限”,再按资源类型执行对应接口。 当用户提出“申请权限”、“查是否有权限”、“给某资源授权”时使用。
// 数据权限管理技能:支持资源权限查询与权限申请。 先判定“查询权限”还是“申请权限”,再按资源类型执行对应接口。 当用户提出“申请权限”、“查是否有权限”、“给某资源授权”时使用。
数据分析员工(Data Analyst Agent)的唯一总入口:凡与数据资产、取数、指标、表/视图、 治理职责、知识网络等相关的问题,必须先经本 skill 做编排与路由,再进入找表或问数等子流程。 当用户提出数据类问题、需要知识网络选择、或需要在找表与问数之间切换时使用。
向飞书指定用户(通过 user_id)推送消息。 支持文本、卡片、图片、文件等多种消息类型。当用户需要给飞书用户发送推送消息时自动使用。
全局归档协议。只要任务需要写入任何文件(含 PLAN.md、报告、JSON 等归档物),必须按本技能执行 Session→ARCHIVE_ID、TIMESTAMP、双轨路径(根段须为 archives/)、回读校验与状态回执;WebUI 的 archive_grid 必须用 Markdown 中语言标识为 json 的围栏代码块输出。
KWeaver CLI 操作层 — 内化自 kweaver-core。 覆盖认证、平台业务域(config)、知识网络管理与查询、Agent CRUD 与对话、 数据源管理、数据视图、Skill 注册、Vega 可观测、context-loader 语义搜索、通用 API 调用。 仅由 bkn-creator pipeline 内部读取,不独立注册到宿主 skill 系统。
BKN 全生命周期编排入口。自包含 KWeaver CLI 操作层(内化 bkn-kweaver)。 凡涉及创建 BKN、从 PRD/文档提取对象关系、 生成或更新 `.bkn`、做数据视图绑定、环境检查、测试集生成、校验与推送时, 优先使用 bkn-creator 进行流程路由、阶段门禁、子 skill 编排与结果回执。 适用于 BKN 的 create/read/update/delete/extract/copy/validate 场景, 技能包能力补齐/skill 草案生成场景, 以及使用反馈巡检与改进场景(定时任务触发、Agent 对话质量异常、 feedback_brief 传入、知识网络持续优化)。 不应用于纯数据语义查询,该场景应交由 data-semantic 处理。
评分式领域识别。从业务文本判断所属领域。
| name | auth-manager |
| version | 1.3.5 |
| user-invocable | true |
| description | 数据权限管理技能:支持资源权限查询与权限申请。 先判定“查询权限”还是“申请权限”,再按资源类型执行对应接口。 当用户提出“申请权限”、“查是否有权限”、“给某资源授权”时使用。 |
| metadata | {"openclaw":{"skillKey":"auth-manager"}} |
| allowed-tools | Bash(curl *), Bash(kweaver call *) |
| argument-hint | ["权限需求描述,可包含 resource_type/resource_id/resource_name/applicant_id/applicant_name/applicant_account"] |
渐进式加载: 核心概念 → 认证与 Token → 申请人发现 → 资源发现 → 部门查询(独立) → 用户组查询(独立) → 用户组成员查询(独立) → 应用账户查询(独立) → 管理控制台用户搜索(独立) → 用户角色查询(独立) → 申请参考 → 查询参考 → 数字员工查询(独立) → 行列规则接口(独立) 文档指南: README.md · 共享约束: core/core-constraints.md
本 skill 是权限管理统一入口,负责意图识别、参数校验、接口路由;HTTP 字段与示例在 references/,枚举清单在 resources/。
| 能力 | 说明 | API 端点 |
|---|---|---|
| 资源发现 | 当缺 resource_id 时按名称检索候选资源并回填 ID | 见 references/resource-discovery.md |
| 申请人发现 | 当缺 applicant_id 时按用户名/账号检索候选并回填 ID | 见 references/applicant-discovery.md |
| 部门查询 | 查询指定成员可见部门列表,支撑按部门检索前置定位 | 见 references/department-discovery.md |
| 用户组查询 | 按关键词分页检索用户组 | 见 references/group-discovery.md |
| 用户组成员查询 | 按用户组查询成员列表 | 见 references/group-members-discovery.md |
| 应用账户查询 | 分页检索应用账户(app) | 见 references/app-account-discovery.md |
| 数字员工查询 | 查询数字员工列表与详情,支撑 digital_employee 检索 | 见 references/digital-human-discovery.md |
| 管理控制台用户搜索 | 支持全量/按部门搜索用户,支撑申请人定位 | 见 references/console-user-search.md |
| 用户角色查询 | 支持按用户查角色、按角色查成员 | 见 references/user-role-discovery.md |
| 行列规则接口 | 查询 data_model 视图行列规则增删改查 | 见 references/data-model-row-column-rules.md |
| 权限查询 | 批量校验是否具备所列操作 | /api/auth-service/v1/data-resource/operations |
| 权限申请 | 申请资源操作权限 | /api/auth-service/v1/data-auth/apply |
| 资源类型 | 校验 resource_type / object_type | resources/resource.md |
| 操作枚举 | 校验 auth_operations / action | resources/operations.md |
| 访问者类型 | 校验申请人 / subject 类型 | resources/accessors.md |
技能接受以下入参,大模型在调用技能时建议按此结构传递:
{
"query": "用户权限诉求(必须)",
"context": "补充上下文,可包含资源ID、申请人、时间等(可选)"
}
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
query | string | 是 | 第一优先级:识别「查询权限」或「申请权限」 |
context | string | 否 | 填充 resource_id、resource_name、resource_type、applicant_id、applicant_name、applicant_account、resources、action 等,不替代 query 的意图判定 |
| 场景 | query | context |
|---|---|---|
| 申请某类资源权限(数据视图 / 知识网络 / 行列规则等) | ✅ 须体现「申请 / 授权 / 开通」等 | ✅ 建议含 resource_type + (resource_id 或 resource_name) + (applicant_id 或 applicant_name/applicant_account) + 操作列表 |
| 批量查询是否具备指定操作 | ✅ 须体现「查询权限 / 是否可查 / 能否操作」等 | ✅ 建议含 (resources 或 resource_name) + object_type + 待校验 action |
| 仅澄清枚举(读文档) | ✅ 说明查阅目的 | 可选 |
重要:不得混用职责。
| 入参 | 职责 |
|---|---|
query | 意图路由:只用于判定走申请还是查询(及是否属于本 skill) |
context | 字段补齐:提供调用接口所需的结构化信息,不改变 query 已确定的入口 |
query 始终必填,决定流程入口。context 在缺参时补齐;不得单独凭 context 反转 query 的「申请 / 查询」判定。resource_id 时先做资源发现:通过资源检索接口获取候选并回填 ID(见 references/resource-discovery.md)。applicant_id 时先做申请人发现:通过用户名/账号检索接口获取候选并回填 ID(见 references/applicant-discovery.md)。core/core-constraints.md 为准。Authorization: Bearer <access_token>(获取与携带方式见 references/authentication.md)http://127.0.0.1:8155)Content-Type: application/json摘要:用 kweaver call 时,可 kweaver auth login 从磁盘凭据自动带 Token;也可设置 KWEAVER_TOKEN + KWEAVER_BASE_URL 用环境变量静态 Token(CI 常用)。用 curl/Postman/脚本 时把 Token 放进 Authorization: Bearer … 或读自定义变量(详见上文链接)。
详细约束(单一事实来源): core/core-constraints.md
resource_type、auth_operations、applicant_type 等与文档及 enum.go 一致,禁止同义词。data_view_row_column_rule 的 row_rules 须对照 examples/row-rules.md。/data-auth/apply 前,需先按 references/auth-query.md 校验申请人是否已具备目标操作;若已具备则直接返回“无需申请”。401/403/Unauthorized/token expired 时,必须先刷新 token,再重试原请求 1 次。本节步骤一~三在上下文已校验时可跳过重复执行(如 Token 仍有效),但不可跳过进度输出;步骤四起不得省略。
kweaver auth whoami / kweaver auth status 显示 active 且未过期)。满足时不得重复登录,但必须本步输出进度:「步骤一(Token 预检):已跳过(上下文已校验)」或 「已校验通过(复用上下文)」,并一句指明依据。kweaver auth status。active:继续后续流程。references/authentication.md 的“预检与刷新标准流程”先刷新再继续。KWEAVER_TOKEN 静态凭据:不支持 refresh 换发,失效时需替换新 token。401/403/Unauthorized/token expired:先执行 token 刷新,再按同参数重试原请求一次。目标:在查询/申请分流前完成安全拦截,并判定流程入口。
写操作与安全拦截(必须在本节内最先执行,先于模糊澄清、查询/申请分流及其它任何路由)
下列为本 skill 独立安全拦截 · 写操作 规则:在权限治理与行列规则治理域内界定敏感字面初检、治理写操作例外与业务数据写操作硬拦截。
query、context、补充说明、粘贴的 SQL/命令片段、多轮合并后的当前任务描述。\b…\b(避免 alternative 误命中 alter),并额外将连续写法 insertinto 视为命中(不分词)。完整清单——删/破坏/撤销类:delete、drop、rm、del、remove、truncate、clear、purge、erase、destroy、cancel、unset、discard、shutdown;改类:update、alter、modify、edit、change、revise、rewrite、replace、set、rename;增/建/导入类:insert、add、create、new、append、import、save。推荐正则(i 忽略大小写):(?i)(\b(delete|drop|rm|del|remove|truncate|clear|purge|erase|destroy|cancel|unset|discard|shutdown|update|alter|modify|edit|change|revise|rewrite|replace|set|rename|insert|add|create|new|append|import|save)\b|insertinto)。删除、移除、清空、清空数据、清除、销毁、作废、撤销、卸掉、删掉、剔除;改类:修改、更新、编辑、变更、改动、修订、改写、替换、重命名、调整;增/导入类:新增、添加、新建、插入、追加、导入、创建、保存;DDL/运维与权限类:建表、删表、改表、授权、回收权限、索引、库表、停机。说明:子串命中不单独决定拦截;是否与放行语义冲突以整体治理意图判定为准。effect 判断等 → 查询分支。data_query、view_detail、rule_apply 等),走 /data-auth/apply → 申请分支。data_view_row_column_rule / data-view-row-column-rules 的规则对象做创建、更新、删除或列表/详情查询(见 references/data-model-row-column-rules.md);整句主体为规则而非业务表行记录。DELETE / UPDATE / INSERT / TRUNCATE DML 或可类比写语句的,同等处理;建表 / 删表 / 改表(非行列规则对象)、停机、回收权限(本 skill 主流程未提供对应接口时按越界处理)亦按硬拦截。不因句中出现「申请」「查询」「授权」「规则」等词而放行上述业务数据写操作。不触发本条、仍可经「治理写操作例外」的典型情形:全句仅为权限查询/申请/规则 CRUD/发现检索,且「删除」「更新」仅出现在规则名、权限操作名、审计对象名等名词性固定业务用词中(如「删除规则」「更新规则配置」指行列规则对象),且整句无执行业务记录删改或裸 DML 的义务或指令语气。查询权限:检查是否有权、是否具备某些操作 → 查询分支。
申请权限:授权、申请、开通 → 申请分支。
同轮两者皆有时先澄清顺序,默认先查后申。
仅查阅枚举/文档、不涉及 HTTP 时:在进度中标注 「阶段:文档查阅」,可不走查询/申请分支 HTTP。
诉求不在本 skill 范围(如工商企业问数、纯组织详情而无权限语义、或命中上文业务数据写操作硬拦截)时:在进度中标注 **「阶段:范围外」**或 「阶段:安全拦截」,说明边界并停止,不得假走权限接口。
resource_type、applicant_type、auth_operations、expired_at + (resource_id 或 resource_name) + (applicant_id 或 applicant_name/applicant_account)。action + (resources 或 (resource_name + object_type))。applicant_id 与当前用户 ID 不一致时执行存在性校验。applicant_type=digital_employee:通过 GET /api/dip-studio/v1/digital-human/{id} 校验。applicant_type:通过 user-management / authorization 相关接口校验。resource_id、applicant_id、auth_operations 补齐后执行。/api/auth-service/v1/data-resource/operations 按同资源、同操作、同申请人进行预检(subject=applicant)。effect=true:直接返回“该用户已具备权限,无需重复申请”。effect=false:继续调用 /api/auth-service/v1/data-auth/apply 发起申请。POST …/data-resource/operations 或 POST …/data-auth/apply。references/auth-query.md)。references/auth-apply.md)。resources[].object_id 时,按 references/resource-discovery.md 检索并回填;多候选须澄清。object_type、action 与 resources/resource.md、resources/operations.md。resources、action;可选 subject。POST /api/auth-service/v1/data-resource/operations;失败即停,保留原始错误。effect、最小口径(资源 ID/类型、操作列表、访问者),标注 流程完成。resource_id 时,按 references/resource-discovery.md 检索并回填。applicant_id 时,按 references/applicant-discovery.md 检索并回填。applicant_type=digital_employee 且仅有名称时,按 references/digital-human-discovery.md 确认 ID。resource_type=data_view_row_column_rule 时,对照 examples/row-rules.md 校验 row_rules / resource_attributes。applicant_id 与当前用户不一致时执行(见上文 2.1)。effect=true 则返回「无需申请」并标注 流程完成。POST …/data-auth/apply;失败即停,保留原始错误。推荐模板:
## 📋 任务进度清单(阶段:总控制台)
- [x] 已完成 · 步骤N(步骤名称)
- [ ] 待完成 · 步骤N+1(步骤名称)
## 📋 任务进度清单(阶段:查询)
- [x] 已完成 · 步骤5(资源发现)
- [x] 已完成 · 步骤6(枚举与类型校验)
- [ ] 进行中 · 步骤7(构造查询请求体)
- [ ] 待完成 · 步骤8(调用权限查询接口)
- [ ] 待完成 · 步骤9(总结交付)
## 📋 任务进度清单(阶段:申请)
- [x] 已完成 · 步骤5(资源发现)
- [x] 已完成 · 步骤6(申请人发现)
- [ ] 进行中 · 步骤10(申请前权限预检)
- [ ] 待完成 · 步骤11(构造并调用申请接口)
- [ ] 待完成 · 步骤12(总结交付)
data_view:GET /api/mdl-data-model/v1/data-views?name=<resource_name>。knowledge_network:GET /api/bkn-backend/v1/knowledge-networks?name_pattern=<resource_name>&offset=0&limit=20。resource_id。applicant_id 时必走)GET /api/user-management/v1/account-match?account=<applicant_account>。GET /api/user-management/v1/search-in-org-tree?keyword=<applicant_name>&type=user&role=<role>&offset=0&limit=20。applicant_id。applicant_id 与当前用户一致,可跳过存在性校验并继续申请流程。GET /api/user-management/v1/console/search-users/{fields}。name 非必填;可使用 department_id、account、code 等条件检索。role 为必填 query 参数,且服务端会校验当前 token 用户是否拥有该角色。department_id 缺失或 -1(未分配组)时,仅 super_admin/sys_admin/sec_admin/audit_admin 可用。GET /api/user-management/v1/users/{user_ids}/{fields}(fields 包含 roles,且 query 必填 role)。GET /api/user-management/v1/role-members/{roles}。super_admin/sys_admin/audit_admin/sec_admin/org_manager/org_audit/normal_user)。GET /api/user-management/v1/management/department-members/{member_id}/departments。GET /api/user-management/v1/management/groups。GET /api/user-management/v1/management/group-members/{group_id}。GET /api/user-management/v1/apps。GET /api/dip-studio/v1/digital-human。GET /api/dip-studio/v1/digital-human/{id}。applicant_type=digital_employee 且仅有名称时,先查询候选再确认 ID。/data-auth/apply)resource_type:见 resources/resource.md。resource_id、auth_operations 为数组;expired_at 为秒级时间戳。data_view_row_column_rule:必填 resource_attributes;row_rules 见 examples/row-rules.md。data_view:可传 apply_type(可为空字符串)。/data-resource/operations)resources、action;可选 subject。object_type / action 取值见 resources/resource.md、resources/operations.md。effect 语义见 references/auth-query.md。auth-manager/
├── README.md # 文档指南与分层索引
├── SKILL.md # 本文件 - 主入口
├── core/
│ ├── core.md # 核心概念 (L1)
│ └── core-constraints.md # 共享约束(单一事实来源)
├── references/ # HTTP 模板与示例 (L2)
│ ├── authentication.md # Token 获取与 Authorization 携带
│ ├── applicant-discovery.md # 用户名/账号到 applicant_id 的检索与回填
│ ├── resource-discovery.md # 资源名到 resource_id 的检索与回填
│ ├── department-discovery.md # 部门查询(独立)
│ ├── group-discovery.md # 用户组查询(独立)
│ ├── group-members-discovery.md # 用户组成员查询(独立)
│ ├── app-account-discovery.md # 应用账户查询(独立)
│ ├── console-user-search.md # 管理控制台用户搜索(全量/按部门)
│ ├── user-role-discovery.md # 用户角色查询(按用户/按角色)
│ ├── digital-human-discovery.md # 数字员工列表/详情查询(独立)
│ ├── data-model-row-column-rules.md # data_model 视图行列规则增删改查(独立)
│ ├── auth-apply.md # 申请接口模板
│ └── auth-query.md # 查询接口模板
├── resources/
│ ├── resource.md
│ ├── operations.md
│ └── accessors.md
└── examples/
└── row-rules.md
用户请求
│
├─ 仅需了解能力与端点 ──▶ core/core.md
│
├─ Token / Bearer / kweaver CLI ──▶ references/authentication.md
│
├─ 缺申请人ID(用户名/账号补齐) ──▶ references/applicant-discovery.md
│
├─ 缺资源ID(资源名补齐) ──▶ references/resource-discovery.md
│
├─ 查部门 / 组 / 组成员 / 应用账户 ──▶ references/department-discovery.md, references/group-discovery.md, references/group-members-discovery.md, references/app-account-discovery.md
│
├─ 查全部用户 / 按部门查用户 ──▶ references/console-user-search.md
│
├─ 查询用户角色 / 角色成员 ──▶ references/user-role-discovery.md
│
├─ 申请权限 / 构造 apply 体 ──▶ references/auth-apply.md + resources/*
│
├─ 批量查询是否可操作 ──▶ references/auth-query.md + resources/*
│
├─ 搜索数字员工(独立) ──▶ references/digital-human-discovery.md
│
├─ 查询行列规则 CRUD(独立) ──▶ references/data-model-row-column-rules.md
│
├─ 行列规则 row_rules ──▶ examples/row-rules.md + core/core-constraints.md
│
└─ 争议或完整门禁 ──▶ SKILL.md + core/core-constraints.md
| 文档 | 用途 |
|---|---|
| README.md | 分层阅读指南 |
| core/core.md | 核心概念与快速参考 (L1) |
| core/core-constraints.md | 共享约束(与实现对齐) |
| references/authentication.md | Token 获取、Bearer 与 kweaver call 自动注入 |
| references/applicant-discovery.md | 用户名/账号到 applicant_id 的检索与回填 |
| references/resource-discovery.md | 资源名到 resource_id 的检索与回填 |
| references/department-discovery.md | 部门查询(独立) |
| references/group-discovery.md | 用户组查询(独立) |
| references/group-members-discovery.md | 用户组成员查询(独立) |
| references/app-account-discovery.md | 应用账户查询(独立) |
| references/console-user-search.md | 管理控制台用户搜索(全量/按部门) |
| references/user-role-discovery.md | 用户角色查询(按用户/按角色) |
| references/digital-human-discovery.md | 数字员工列表与详情查询(独立) |
| references/data-model-row-column-rules.md | data_model 视图行列规则增删改查(独立) |
| references/auth-apply.md | 权限申请 HTTP 模板 |
| references/auth-query.md | 权限批量校验 HTTP 模板 |
| resources/resource.md | resource_type / object_type |
| resources/operations.md | auth_operations / action |
| resources/accessors.md | 申请人 / 访问者类型 |
| examples/row-rules.md | row_rules 示例 |
idrm-go-common/rest/authorization/enum.go | 枚举源码 |
/auth-manager 给用户申请 data_view 的 data_query 权限
/auth-manager 申请 knowledge_network 的查询与详情权限
/auth-manager 给某 data_view 申请行列规则权限(rule_apply)
/auth-manager 检查某个 data_view 是否具备 view_detail 权限
/auth-manager 查询“销售订单明细视图”当前用户是否有 data_query(未提供资源ID)
/auth-manager 给账号 zhangsan 开通“销售订单明细视图”的 data_query 权限(未提供用户ID)
/auth-manager 查询某个部门下的用户并按账号筛选
/auth-manager 根据角色查询成员用户(super_admin,sys_admin)
/auth-manager 查询应用账户列表(app)并定位目标账户
用户输入:
/auth-manager 查询“销售订单明细视图”我是否有 data_query 权限
技能执行(对应「阶段:查询」进度清单):
1) 步骤一~四:Token 预检 → 意图=查询 → 参数校验 → 路由查询分支
2) 步骤5:发现缺少 resources[].object_id,触发资源发现
3) 调用 GET /api/mdl-data-model/v1/data-views?name=销售订单明细视图
4) 若仅 1 个候选:回填 object_id,构造 resources=[{object_id, object_type=data_view}]
5) 步骤6~8:枚举校验 → 构造请求体 → POST …/data-resource/operations,action=["data_query"]
6) 步骤9:返回 effect=true/false,标注流程完成
用户输入:
/auth-manager 给账号 zhangsan 开通“销售订单明细视图”的 data_query 权限
技能执行(对应「阶段:申请」进度清单):
1) 步骤一~四:Token 预检 → 意图=申请 → 参数校验 → 路由申请分支
2) 步骤5:发现缺少 resource_id,触发资源发现并回填 resource_id
3) 步骤6:发现缺少 applicant_id,调用 GET /api/user-management/v1/account-match?account=zhangsan
4) 回填 applicant_id 与 applicant_name(若缺失)
5) 步骤10:申请前权限预检(subject=applicant)
6) 步骤11~12:构造 apply 体 → POST …/data-auth/apply → 返回申请结果,标注流程完成