PlanetScale
连接
从终端连接PlanetScale。传入--help查看PlanetScale接受的标志,在无头环境中再加上--no-browser。
polylane cloud connect --provider planetscaleOAuth授权,或来自你的PlanetScale组织设置的服务令牌。
PlanetScale通过OAuth连接:点击Connect with PlanetScale,在PlanetScale上授权读取访问,然后你会被重定向回来,同步已经开始。如果你的PlanetScale账户可以访问多个组织,在提示时选择要连接的那个。令牌在存储前加密,智能体永远看不到它们。
服务令牌替代方案
如果你更喜欢长期凭据,改用服务令牌连接:
- 打开PlanetScale,进入你组织的Settings → Service tokens。
- 点击Create service token,复制token ID和token两个值。
- 授予该令牌对组织及其数据库的读取访问权限(例如
read_databases、read_branches)。 - 把令牌ID和令牌粘贴到Polylane中。如果该令牌可以访问多个组织,还要提供要连接的组织名称。
- Polylane验证令牌并开始同步。
每个连接覆盖一个PlanetScale组织。Polylane发现它的数据库及其分支,包括状态、套餐、区域和模式活动。
故障排除
“Invalid service token”错误
- 令牌ID和令牌都是必需的;仅有令牌无法验证身份。
- 检查该令牌没有在PlanetScale的设置中被删除。
- 确保该令牌具有组织读取访问权限。
“Multiple PlanetScale organizations are reachable”错误
- 该凭据可以访问多个组织,所以请指明要连接的那个。
- 在控制台中通过OAuth连接时,在授权后的提示中选择组织。
- 通过API连接时,把
organization字段设为组织名称。
缺少资源
- PlanetScale可能需要几分钟才能同步一切。
- 从账户头部触发一次手动Sync以刷新。
断开连接
在Polylane中断开该账户,然后从你的PlanetScale组织设置中删除该服务令牌。
从CI作业或任何其他没有浏览器的环境连接PlanetScale。
连接PlanetScale不需要浏览器:控制台调用的同一个端点可以放进CI作业。一次经过身份验证的POST创建连接并启动第一次同步。
前提条件
- 一个具有
cloud_accounts:write和cloud_accounts:read权限范围的Polylane API密钥。参见API密钥与OAuth。 - 你的工作区ID,以
ws_开头。用同一个密钥从GET /v1/workspaces读取它。 - 一对来自你组织的Settings → Service tokens的PlanetScale服务令牌,具有组织读取访问权限(例如
read_databases、read_branches)。控制台的OAuth流程需要浏览器;服务令牌不需要。
创建连接
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "planetscale",
"workspaceId": "ws_0abc123",
"tokenId": "<service-token-id>",
"token": "<service-token>",
"organization": "my-org"
}'
一次调用连接一个PlanetScale组织。
- 只有当令牌恰好能访问一个组织时才可以省略
organization;否则调用会以一个列出可访问组织名称的400失败。
响应列出已连接的内容,第一次同步已经在运行。精简为流程其余部分读取的两个字段:
{
"success": true,
"result": {
"provider": "planetscale",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
已经连接的账户会落在failures而不是accounts中,所以重复调用永远不会产生重复的连接。
等待第一次同步
按id轮询每个返回的账户,直到status达到ready(注册时为new,资源流入时为syncing):
until [ "$(curl -s "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY" | jq -r '.result.status')" = "ready" ]; do
sleep 15
done
给循环一个截止时间,让失败的连接使作业失败而不是挂起。账户变为ready后,它的资源已在拓扑中,Polylane已经开始它的第一次检查。
从API断开连接
删除连接会停止所有同步和检查,并删除Polylane持有的凭据。该调用需要cloud_accounts:delete权限范围:
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
然后按下方Disconnect所述在提供商侧撤销PlanetScale凭据。
断开连接
断开连接会停止所有同步和检查,并删除Polylane持有的凭据。 Polylane会移除PlanetScale的API允许它移除的内容。以下内容会保留,直到你自己移除:
- OAuth grant
polylane cloud disconnect <id>工具
2智能体可以在线程中执行的操作。
支持的资源
2会出现在你的基础设施图中的资源类型。