Convex
接続
ターミナルからConvexを接続します。Convexが受け付けるフラグは--helpで確認でき、ヘッドレス環境では--no-browserを追加します。
polylane cloud connect --provider convexConvexダッシュボードから取得するチームアクセストークンです。
Convexは、Convexダッシュボードで作成したチームアクセストークンで接続します。チームアクセストークンはちょうど1つのチームにスコープされるため、1つのトークンが1つのチームを接続します。トークンは保存前に暗号化され、エージェントが目にすることはありません。
- Convexダッシュボードを開き、Team Settings → Access Tokensに移動します。
- Create access tokenをクリックし、トークンの値をコピーします。
- トークンをPolylaneに貼り付けます。
- Polylaneがトークンを検証し、同期を開始します。
Polylaneはプロジェクトを検出し、各プロジェクト内のクラウドデプロイメントを検出します。本番デプロイメントに加え、プレビュー、開発、カスタムの各デプロイメントと、そのリージョン、URL、デプロイメントクラスです。
チームアクセストークンはチームへの管理アクセスを付与します。同期はチームトークンでプロジェクトとデプロイメントを読み取ります。エージェントやバックグラウンド監視がデプロイメントの関数ログやメトリクスを読むとき、Polylaneはその読み取り(ログビューまたはメトリクスビュー)だけにスコープされた短命のデプロイキーを発行し、その1回の呼び出しに使い、直後に削除します。そのため各キーは、それが担う読み取りの間だけ存在します。Polylaneが読み取るものはすべて管理面にあります。プロジェクトとデプロイメントの一覧、関数ログ、デプロイメントのメトリクスです。
トラブルシューティング
「Not a team access token」エラー
- プロジェクトスコープのトークンとデプロイキーではチームのプロジェクトを一覧できません。Team Settings → Access Tokensでトークンを作成してください。
- Convexダッシュボードでトークンが削除されていないことを確認してください。
リソースが見つからない
- ローカルデプロイメントは個々の開発者のマシンで動作するもので、意図的に同期されません。
- デプロイメントなしで作成されたプロジェクトは、最初のデプロイまでデプロイメントを表示しません。
- 次回のスケジュールされた同期より早く更新するには、手動の同期を実行してください。
監査ログ
- Convexは監査ログAPIを有料プランに限定しています。無料のチームでは、監査ログの読み取りは明確なエラーを返し、エージェントは関数ログとコンテキストグラフにフォールバックします。
接続解除
Polylaneでアカウントを接続解除し、次にConvexのチーム設定からアクセストークンを削除します。
CIジョブや、ブラウザーのないその他の環境からConvexを接続します。
Convexの接続にブラウザーは必要ありません。コンソールが呼び出すのと同じエンドポイントがCIジョブに収まります。認証済みのPOSTを1回行うと、接続が作成され、最初の同期が始まります。
前提条件
cloud_accounts:writeとcloud_accounts:readスコープを持つPolylane APIキー。APIキーとOAuthを参照してください。ws_で始まるワークスペースID。同じキーでGET /v1/workspacesから読み取ります。- Team Settings → Access Tokensから取得したConvexのチームアクセストークン。
接続を作成する
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "convex",
"workspaceId": "ws_0abc123",
"token": "<team-access-token>"
}'
チームアクセストークンはちょうど1つのチームにスコープされるため、1回の呼び出しが1つのチームを接続します。
応答は接続されたものを一覧し、最初の同期はすでに実行中です。フローの残りが読む2つのフィールドに絞ると次のとおりです。
{
"success": true,
"result": {
"provider": "convex",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
すでに接続されているアカウントはaccountsではなくfailuresに入るため、呼び出しを繰り返しても接続が重複することはありません。
最初の同期を待つ
返された各アカウントを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で説明されているとおり、プロバイダー側でConvexの認証情報を取り消します。
接続解除
接続解除すると、すべての同期とチェックが停止し、Polylaneが保持していた認証情報が削除されます。 PolylaneがConvexにセットアップしたものもすべて取り除かれ、何も残りません。
polylane cloud disconnect <id>ツール
3エージェントがスレッドで実行できる操作です。
対応リソース
2インフラグラフに表示されるリソースの種類です。