PlanetScale
Подключить
Подключите PlanetScale из терминала. Передайте --help, чтобы увидеть флаги, которые принимает PlanetScale, а также --no-browser для окружений без браузера.
polylane cloud connect --provider planetscaleАвторизация OAuth или сервисный токен из настроек организации 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.
Подключите PlanetScale из CI-задания или любого другого окружения без браузера.
Для подключения PlanetScale браузер не нужен: тот же эндпоинт, который вызывает консоль, помещается в CI-задание. Один аутентифицированный POST создаёт подключение и запускает первую синхронизацию.
Требования
- API-ключ Polylane с областями
cloud_accounts:writeиcloud_accounts:read. См. API-ключи и OAuth. - ID вашего рабочего пространства, который начинается с
ws_. Прочитайте его изGET /v1/workspacesтем же ключом. - Пара сервисного токена PlanetScale из Settings → Service tokens вашей организации с доступом на чтение к организации (например,
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"
Затем отозовите учётные данные PlanetScale на стороне провайдера, как описано ниже в разделе Отключение.
Отключить
Отключение останавливает все синхронизации и проверки и удаляет учётные данные, которые хранил Polylane. Polylane удаляет то, что позволяет удалить API PlanetScale. Следующее остаётся, пока вы не удалите его сами:
- OAuth grant
polylane cloud disconnect <id>Инструменты
2Операции, которые агенты могут выполнять в тредах.
Поддерживаемые ресурсы
2Типы ресурсов, которые появляются в графе вашей инфраструктуры.