API v2 и реальные пользовательские сценарии
StableКакие публичные маршруты Control Plane важны пользователю, какие новые runtime‑поля появились у БД и как читать autoscaler через API.
Обновлено: 21 марта 2026 г.
Публичный пользовательский интерфейс Control Plane — это API v2. Именно через него работают Console, CLI и внешние интеграции.
Базовые правила
- Base URL обычно выглядит так:
https://<cp-host>/v2 - авторизация передаётся как
Authorization: Bearer <API_KEY> - PostgreSQL‑подключения приложений идут не в Control Plane, а в Gateway:
postgres://...@<gateway-host>:5432/...
Что обычно делает пользователь
1. Создаёт tenant
POST /v2/tenants
В ответе обычно приходят:
tenant;pg_user;pg_password;dsn_template.
2. Создаёт базу внутри tenant
POST /v2/tenants/:tenant/dbs
Минимально достаточно передать:
{
"name": "app",
"size": "L1"
}
Важно:
start_immediatelyотключён;initial_scaleдля обычного managed‑сценария не используется;- база стартует на первом подключении через Gateway автоматически.
3. Получает tenant credentials повторно
GET /v2/tenants/:tenant/credentials
4. Читает состояние ресурсов
GET /v2/tenantsGET /v2/tenants/:tenantGET /v2/tenants/:tenant/dbsGET /v2/tenants/:tenant/dbs/:dbGET /v2/dbs/:id
Именно describe/list запросы теперь особенно полезны, потому что через них виден не только lifecycle базы, но и autoscaler‑состояние.
5. Удаляет ресурсы
DELETE /v2/tenants/:tenant/dbs/:dbDELETE /v2/tenants/:tenant?cascade=true
Удаление асинхронное, поэтому после запроса ресурс может некоторое время находиться в deleting.
6. Получает события каталога
GET /v2/events
Это поток Server‑Sent Events, который Console использует для почти realtime‑обновления состояний.
Что нового видно в ответе БД
Помимо классических полей state, size, current_scale и target_scale, у БД теперь есть полезные runtime‑поля autoscaler:
current_profiletarget_profilecandidate_profilecandidate_worker_idcandidate_writer_termscale_statefreeze_new_checkoutslease_control_epochautoscale_cooldown_untilscale_phase_started_atscale_phase_deadline_atscale_failure_reason
Практически это позволяет через API увидеть:
- идёт ли handoff профиля;
- подготовлен ли candidate writer;
- заморожены ли новые checkout'ы;
- сорвался ли переход и почему.
Как читать эти поля
current_scale/target_scale— writer выключен или включён.current_profile/target_profile— на каком профиле сейчас writer и к какому профилю он идёт.scale_state— стадия handoff.freeze_new_checkouts=true— нормальная controlled‑фаза cutover, а не авария.scale_failure_reason— главный быстрый диагноз, если autoscaler упал вFAILED.
Аккаунты и токены
В API v2 также есть маршруты для аккаунтов и ключей:
POST /v2/accountsPOST /v2/accounts/:account/api-keysGET /v2/account/profilePOST /v2/account/contactGET /v2/api-keys/mePOST /v2/api-keys/rotatePOST /v2/api-keys/revokeGET /v2/billing/summaryPOST /v2/account/delete
Что возвращается для подключения
При создании tenant или чтении credentials пользователь получает три главных поля:
pg_userpg_passworddsn_template
Типовой шаблон выглядит так:
postgres://<pg_user>:<pg_password>@<gateway-host>:5432/<db-name>?sslmode=require
Хороший рабочий сценарий
Самый практичный пользовательский путь для automation выглядит так:
создать tenant -> сохранить pg_user/pg_password/dsn_template -> создать db -> подключить приложение через Gateway -> читать state и scale_state через describe
