| name | hap-cli-environments |
| description | 当用户用 hap 命令行操作 HAP、且授权了多个环境或多个账号时,用本 skill 决定在“哪个环境/哪个账号”上执行。只要用户提到要换环境/换账号、说“在另一个环境里试”“用我另一个账号”“别动线上”“切到测试用的那个”,或一个操作具破坏性(删除应用/表/记录、发布、改权限)而当前环境/账号不明确时,都应触发,先确认再动手。不用于:只授权了一个环境、或纯粹查命令参数(那用 hap-cli)。 |
HAP 多环境 / 多账号操作守则
用户可能同时授权了多个 HAP 环境与账号,每个都已登录保存、各有一个名字(见 hap auth accounts)。
“在哪个环境、用哪个账号执行”和命令本身一样重要——选错可能在不该动的环境上造成不可逆后果。
每次操作前
- 先看现状:
hap --json auth accounts,读出当前在用的是哪个(active),以及每个环境/账号的名字、登录地址、账号、组织。
- 把用户的措辞匹配到某个环境/账号:优先按用户说的名字;其次按登录地址/平台(Mingdao SaaS、Nocoly、用户给的私有部署域名)与账号匹配。匹配不唯一就走「停下来问」。
- 切换:整段会话用
hap auth use <名字>;只此一条命令用 hap --profile <名字> <命令>。
什么时候必须停下来问
- 用户没指明用哪个环境/账号,且操作具破坏性(删除应用/工作表/字段/记录、发布、改角色权限、批量写入)。
- 用户的话能匹配到多个环境/账号、或一个都匹配不上。
此时用问答卡片把候选环境/账号列给用户选,不要擅自挑一个执行,更不要默认用线上/正式的那个。
执行时
- 每次跑命令前,在回显里点明「当前环境 / 账号 / 组织 / 登录地址」,让用户能一眼核对。
- 破坏性命令再加一句确认当前不是误选的正式环境。
不该做
- 不要替用户登录或登出(
auth login / auth logout)——除非用户明确要求。
- 不要把一个账号的 token 跨环境/账号复用——切换一律走
auth use / --profile,不手动搬运 token。
命令速查
hap auth accounts
hap --json auth accounts
hap auth use <名字>
hap --profile <名字> <命令>
HAP_PROFILE=<名字> hap <命令>
hap auth whoami
具体命令参数以 hap auth <子命令> --help 为准;要登录/登出或建应用、查数据等本身的操作,回到 hap-cli 及其指向的专门 skill。