只使用正式 CLI 入口:
python3 scripts/jumpserver_api/jms_query.py ...python3 scripts/jumpserver_api/jms_diagnose.py ...python3 scripts/jumpserver_api/jms_report.py ...这是查询与分析 skill。允许本地运行时写入 config-write --confirm 和 select-org --confirm。不执行 JumpServer 业务写操作。
按下面顺序判路由。上面的规则优先于下面的规则。
20260310、看下 / 看看 3 月 10 号 使用情况、帮我看 / 帮我看看某天登录/会话/命令/传输情况、想看上周谁登录最多、过一下 3 月上旬 哪些资产最活跃,以及类似的“时间范围内使用情况 / 概览 / 汇总 / 排行 / TOP”表达。动作:优先使用 python3 scripts/jumpserver_api/jms_report.py daily-usage ...,并由它加载 template/bastion-daily-usage-template.html 和 references/metadata/daily_usage_report_template_fields.json;先把“昨天 / 20260310 / 3月10号 / 上周 / 本月”等时间表达归一化为明确时间窗,再生成并验证完整 HTML 报告;模板细节见 references/report-template-playbook.md。
jms_diagnose.py。动作:先预检,再用 config-status / ping / select-org / inspect / resolve。
jms_query.py。动作:优先 permission-list / permission-get / asset-perm-users;必要时先用 jms_diagnose.py 做访问分析。
jms_query.py。动作:优先 audit-analyze --capability ...,需要明细时再用 audit-list / audit-get / terminal-sessions。
jms_query.py。动作:只做 object-list / object-get;名称不唯一时先解析,不要猜。
jms_diagnose.py inspect --capability ...。动作:优先 capability,不手工拼多条零散查询。
普通路由细节、更多命中说法和反例见 references/routing-playbook.md。
按下面顺序处理模板例外。上面的规则优先于下面的规则。
按下面顺序处理组织。上面的规则优先于下面的规则。
python3 scripts/jumpserver_api/jms_diagnose.py select-org --org-id 00000000-0000-0000-0000-000000000000 --confirm。00000000-0000-0000-0000-000000000000 的可访问性不只看候选组织列表;允许通过显式 select-org / 直连探测确认。00000000-0000-0000-0000-000000000000 的直连探测或显式选择验证失败:直接阻塞并返回 candidate_orgs;不要回退到 {0002} / {0002,0004} 自动规则。{0002} 或 {0002,0004} 时,才自动写入 0002。JMS_ORG_ID 已不可访问:先重新 select-org,不要继续业务命令。candidate_orgs 并要求用户选择查询组织。switchable_orgs,提示用户还可以切换到哪些组织查询。收到请求先做:
自动检查依赖 -> config-status --json -> 必要时 config-write --confirm -> ping -> 按路由和组织优先级选择正式入口
执行规则:
python3 scripts/jumpserver_api/jms_diagnose.py config-status --json。complete=false 时,先补齐配置,再继续。date_from/date_to 时,默认最近 7 天;想查更大范围时优先要求明确时间窗。python3 scripts/jumpserver_api/jms_report.py daily-usage ...;它会负责时间归一化、组织处理、字段元数据取数、模板填充和生成后自检。普通查询优先只选 1 个正式入口。python3 scripts/jumpserver_api/jms_report.py daily-usage ...;不要现场写临时拼装逻辑。若正式入口缺失,应先补齐正式入口,再使用它。command_storage_id 时默认汇总全部可访问 command storage;普通命令审计查询仍沿用默认 storage / 单个 storage / 多 storage 阻塞逻辑。成功时至少回显:
effective_orgswitchable_orgs(当当前组织已生效且仍有其他可切换组织时)模板报告成功时还至少回显:
python3 scripts/jumpserver_api/jms_report.py daily-usage ...template/bastion-daily-usage-template.htmlreferences/metadata/daily_usage_report_template_fields.jsonqueried_command_storage_idsqueried_command_storage_countreport_datedate_fromdate_tovalidation_summary阻塞时至少回显:
effective_orgcandidate_orgs 或 candidate_objects共 1 个版本