Используй Terraform или OpenTofu
Официальный провайдер Caputchin позволяет тебе управлять аккаунтом как infrastructure-as-code: объявляй команды, ключи сайта, политику безопасности, участников и токены в файлах .tf и применяй их как любой другой ресурс. Это тот же API управления, что и всё остальное под автоматизацией, выраженный как ресурсы Terraform.
Он опубликован один раз и работает с обоими, Terraform и OpenTofu, из одного источника; HCL идентичен, различаются только бинарь CLI (terraform или tofu) и реестр. Везде ниже используй тот, что запускаешь.
Выпусти токен доступа
Провайдер читает свой токен из переменной окружения CAPUTCHIN_MANAGEMENT_TOKEN (рекомендуется, чтобы он держался вне исходников). Любой вид токена работает (смотри аутентификацию API): персональный токен доступа для инфраструктуры на весь аккаунт или токен доступа команды с охватом до команд, которыми управляет твоя конфигурация.
export CAPUTCHIN_MANAGEMENT_TOKEN=cpt_pat_...Есть случай курицы и яйца: провайдер также может выпускать токены (ресурсы caputchin_account_token и caputchin_troop_pat), но ему сначала нужен токен для аутентификации. Выпусти первый вручную в панели, затем дай Terraform управлять остальными.
Настрой провайдер
terraform {
required_providers {
caputchin = {
source = "caputchin/caputchin"
version = "~> 0.1"
}
}
}
# Token from CAPUTCHIN_MANAGEMENT_TOKEN; endpoint defaults to https://caputchin.com/api.
provider "caputchin" {}Тот же source = "caputchin/caputchin" разрешается из реестра Terraform и реестра OpenTofu, так что блок одинаков под любым инструментом.
Разобранный пример: команда с ключом сайта за воротами
Это создаёт команду, ключ сайта в ней и включает игровые ворота для этого ключа:
resource "caputchin_troop" "shop" {
name = "shop-team"
}
resource "caputchin_site_key" "shop_frontend" {
name = "shop-frontend"
troop_id = caputchin_troop.shop.id
}
resource "caputchin_site_security_settings" "shop_frontend" {
site_id = caputchin_site_key.shop_frontend.id
require_game = true
}
# The public key is an attribute; the secret is sensitive, in state only.
output "shop_site_key" {
value = caputchin_site_key.shop_frontend.key
}Затем, с любым инструментом:
terraform init && terraform apply
# or
tofu init && tofu applysecret ключа сайта это чувствительный вычисляемый атрибут; читай его из состояния (terraform output), чтобы настроить свою серверную проверку. Каждый apply приписывается твоему токену в журнале аудита на Apex, так что изменение через Terraform так же отслеживаемо, как и правка в панели.
Чем ты можешь управлять
Ресурсы покрывают ту же поверхность, что и панель: команды и их участников и токены, ключи сайта, настройки безопасности, размещённую проверку, настройку игр и white-label, и токены аккаунта. Источники данных позволяют тебе считать существующие команды, сайты, информацию об аккаунте и статистику в конфигурацию.
Полный справочник
Каждый ресурс и источник данных со всеми его аргументами и атрибутами и синтаксисом импорта на странице реестра провайдера. Она генерируется из исходников провайдера, так что отслеживает выпущенную версию точно:
- Реестр Terraform:
registry.terraform.io/providers/caputchin/caputchin - Реестр OpenTofu:
search.opentofu.org/provider/caputchin/caputchin
Для нижележащих операций, которые выполняет каждый ресурс, смотри интерактивный справочник API.
См. также
- Управляй Caputchin через API: HTTP API, на котором сидит провайдер.
- Используй сервер MCP: поверхность ИИ-агента.
- Команды и ключи сайта: ресурсы, которыми ты управляешь.