Turso
接続
ターミナルからTursoを接続します。Tursoが受け付けるフラグは--helpで確認でき、ヘッドレス環境では--no-browserを追加します。
polylane cloud connect --provider tursoTursoのアカウント設定またはTurso CLIから取得するプラットフォームAPIトークンです。
Tursoは、プラットフォームAPIトークンで接続します。
- Tursoを開き、アカウント設定のAPI Tokensページに移動するか、CLIから
turso auth api-tokens mint polylaneを実行します。 - プラットフォームAPIトークンをコピーします。
- トークンをPolylaneに貼り付けます。トークンが複数の組織に到達できる場合は、求められたときに接続する組織を選びます。
- Polylaneがトークンを検証し、同期を開始します。
各接続は1つのTurso組織を対象とします。Polylaneはそのデータベースグループとデータベースを、ロケーション、配置、ブランチの親子関係、読み取り/書き込みの状態を含めて検出します。トークンは保存前に暗号化され、エージェントが目にすることはありません。PolylaneはPlatform APIだけを読み取ります。データベースに接続することはなく、データベースの認証情報を保持することもありません。
TursoのPlatform APIは使用量を時系列ではなく請求期間の累積カウンターとして報告するため、データベースにはメトリクスのチャートがありません。監視はそれらのカウンターをポーリングし、代わりに差分を監視します。読み取りと書き込みの量、同期トラフィック、ストレージの増加、データベース数、プランに対するクォータの消費、データベースごとの最も重いクエリが、それぞれアカウント自身の履歴と照らし合わせてチェックされます。
トラブルシューティング
「Invalid Turso API token」エラー
- プラットフォームAPIトークンはデータベースの認証トークンとは異なります。
turso auth api-tokens mintまたはアカウント設定から発行してください。 - Tursoの設定でトークンが取り消されていないことを確認してください。
「Multiple Turso organizations are reachable」エラー
- トークンが複数の組織に到達できるため、接続する組織を指定してください。
- コンソールで接続する場合は、検証後に求められたときに組織を選びます。
- APIで接続する場合は、
organizationフィールドに組織のスラッグを設定します。
リソースが見つからない
- Tursoがすべてを同期するには数分かかることがあります。
- アカウントヘッダーから手動のSyncを実行して更新してください。
接続解除
Polylaneでアカウントを接続解除し、次にTursoのアカウント設定またはturso auth api-tokens revokeでAPIトークンを取り消します。
CIジョブや、ブラウザーのないその他の環境からTursoを接続します。
Tursoの接続にブラウザーは必要ありません。コンソールが呼び出すのと同じエンドポイントがCIジョブに収まります。認証済みのPOSTを1回行うと、接続が作成され、最初の同期が始まります。
前提条件
cloud_accounts:writeとcloud_accounts:readスコープを持つPolylane APIキー。APIキーとOAuthを参照してください。ws_で始まるワークスペースID。同じキーでGET /v1/workspacesから読み取ります。- アカウント設定または
turso auth api-tokens mint polylaneで発行したTursoのプラットフォームAPIトークン。
接続を作成する
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "turso",
"workspaceId": "ws_0abc123",
"token": "<platform-api-token>",
"organization": "my-org-slug"
}'
1回の呼び出しが1つのTurso組織を接続します。
organizationは、トークンがちょうど1つの組織にしか到達しない場合にのみ省略できます。それ以外の場合、呼び出しは到達可能な組織のスラッグを列挙する400で失敗します。
応答は接続されたものを一覧し、最初の同期はすでに実行中です。フローの残りが読む2つのフィールドに絞ると次のとおりです。
{
"success": true,
"result": {
"provider": "turso",
"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で説明されているとおり、プロバイダー側でTursoの認証情報を取り消します。
接続解除
接続解除すると、すべての同期とチェックが停止し、Polylaneが保持していた認証情報が削除されます。 PolylaneがTursoにセットアップしたものもすべて取り除かれ、何も残りません。
polylane cloud disconnect <id>対応リソース
2インフラグラフに表示されるリソースの種類です。