安全
谁能动什么,谁动过什么。
访问权限,附带背后的理由。
每个人的页面列出其能访问的一切——组织和每个项目——以及在那里担任的角色,是直接授予还是通过组获得。权限检查只问一个问题,例如此人能否在某个项目上创建任务,并给出决定结果的完整链路,或指出缺失的那一环。
- 一个人能访问的一切,尽在一页
- 任意操作都可检查,附背后的链路
- 答案为否时,指出缺失的那一环

角色由您授予,不由它讨要。
五种角色,从 Project Viewer 到 Org Owner。可授予个人或整个组——作用于整个组织或某个项目,临时授权还可设置截止日期。成员可用 Google、GitHub 或 Microsoft 登录,也可通过您的 Google Workspace 或 Microsoft Entra ID 登录并强制启用 MFA。被拒之门外的人可以申请权限,有权授予的人在收件箱或 Slack 中批准或拒绝。每个组织只能看到自己的。
- 五种角色,从查看者到所有者
- 单点登录,强制启用 MFA
- 权限申请,在收件箱或 Slack 中审批

机密只输一次,妥善保管。
机密只需输入一次,此后不再显示。它用 AES-256-GCM 加密,密钥保存在数据库之外;它属于某个人或整个组织,并关联到使用它的项目。任务通过所在机器上的中转服务按次获取它有权使用的每个凭据;OAuth 令牌集中刷新。
- AES-256-GCM 静态加密,密钥存于数据库之外
- 个人所有,或关联到项目
- 按次获取,OAuth 集中刷新

谁、何时、做了什么,精确到每条命令。
每次 API 写入、任务状态变更和备注都会记为一条事件:谁做的、改了什么、何时。机器上的每条命令都连同结果记入日志,每段会话记录都能打包成一个归档下载。保留期限由运营方设定,任何租户都无法更改。
- 每次写入、每次任务状态变更都有活动事件
- 每台机器一份命令日志
- 会话记录,可导出为一个归档

安全
在哪里运行,谁能看到什么。
多个组织,一个控制平面,彼此隔离。
组织边界贯穿每一张表,因此一套部署可容纳多个租户,每个租户只能看到自己的数据。
- 一个节点终生属于一个组织;在共享机器上,各组织的节点彼此隔离
- 任务只在本组织内、承载其项目的节点上运行,每个角色都限于本组织内
- 保留期限是整个机群统一的一项设置,由运营方掌握,任何租户都无法更改
机器由您挑选。账号归您所有。
代理运行在您选择的机器上:您自己的机器、在您的 AWS 账号里启动的机器,或由 Jaah 为您运行的机器,专属或共享。您的代码去往您自己的代码仓库(GitHub、GitLab、Bitbucket 或 Azure DevOps 上),以及您的代理背后的模型服务商(Anthropic、OpenAI 或 Google),用的是您自己的账号。
- 代理使用您自行添加的模型账号运行
- 变更在您自己的代码仓库中审查和合并
- 凭据由机器上的代理服务交给每次运行
- 每个任务一份独立代码副本,多个代理同时运行