身份验证
使用组织 API 密钥对每个 Partner API 请求进行身份验证。
每个请求都携带一个作为 bearer token 的 API 密钥。
授权:Bearer mor_live_7f3c1a9e…密钥属于 组织,而不是创建它的人。即使那个人离开,它仍会继续工作,组织中的任何管理员都可以看到它的列表并将其撤销。
创建密钥
打开设置
在 Morphic Studio 中,打开组织下拉菜单(左上角的 Morphic 标志),然后选择“设置”。
前往 API 密钥
在左侧边栏中,点击 API 密钥。该选项卡仅对管理员可见。
创建密钥
点击 新密钥,给它起一个你一个月后仍能认出的名字,选择它的权限范围,并且——如果它不应永久存在——设置一个到期时间。
复制密钥
密钥只显示一次。Morphic 只存储它的哈希值,因此无法再次显示。关闭对话框前,请将其放入你的密钥管理器。
任何持有该密钥的人都可以启动会消耗你组织积分的运行。把它当作密码:绝不要提交到代码仓库,绝不要放在浏览器里,也绝不要通过电子邮件或聊天发送。
权限范围
一个密钥只能拥有你授予它的权限范围。超出范围的请求会被拒绝,返回 access_denied.
| 范围 | 允许 |
|---|---|
workflows:read | 读取一个工作流及其所需输入 |
runs:write | 启动运行,以及注册和移除 webhook 端点 |
runs:read | 读取运行状态及其已完成的资产,并列出 webhook 端点 |
一个密钥也可以限制为 特定工作流。启动其他任何内容都会被拒绝,而其他任何运行都会显示为未找到,这正是当一个密钥只用于某个集成时你所需要的。
环境
前缀表示一个密钥属于哪个部署,因此泄露的密钥一眼就能看出所属位置。向另一个部署提交的密钥会被拒绝。
| 前缀 | 环境 | 基础 URL |
|---|---|---|
mor_live_ | 生产环境 | https://api.morphic.com/v1/partner |
mor_test_ | 预发布环境,用于集成工作;那里的运行有上限,而且数据不属于你 | https://api.morphic.today/v1/partner |
额度限制
每个密钥都有一个可花费积分的上限,由创建它的管理员设置:
| 限制项 | 已设置? | 含义 |
|---|---|---|
| 总计 | 始终 | 该密钥最多可花费的积分 |
| 每日 | 可选 | 每个 UTC 日的积分 |
| 每月 | 可选 | 每个 UTC 月的积分 |
一天是一个 UTC 日,一个月是一个 UTC 日历月。会使密钥超出其任一限制的扣费会被拒绝,返回 api_key_credit_limit_reached;错误信息的 error_attributes.period 说明了哪个限制(总计, 每月 或者 每日)。这与组织积分耗尽是不同的情况(credits_exhausted),而且处理方式也不同:管理员会在 Studio 中提高该密钥的限额,而不是为组织充值。若某次启动所用密钥已没有剩余额度,则在获取任何内容之前就会被拒绝。
使用密钥启动的运行,即使有人在 Studio 的聊天中介入并接管,仍然会继续计入该密钥。因此,密钥剩余的预算就是整个运行的预算,而不仅仅是其自动化部分的预算。
轮换
通过重叠进行轮换,切勿通过空档进行:创建新密钥,部署它,确认流量已切换,然后撤销旧密钥。一个组织最多可以同时持有 10 个可用于身份验证的密钥 ,这足以进行轮换,而不会变成一堆没人愿意退役的东西。
撤销会在几秒内生效。已经在运行中的任务会完成,并且仍会计费。