Caputchin
Автоматизация

Используй 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 apply

secret ключа сайта это чувствительный вычисляемый атрибут; читай его из состояния (terraform output), чтобы настроить свою серверную проверку. Каждый apply приписывается твоему токену в журнале аудита на Apex, так что изменение через Terraform так же отслеживаемо, как и правка в панели.

Чем ты можешь управлять

Ресурсы покрывают ту же поверхность, что и панель: команды и их участников и токены, ключи сайта, настройки безопасности, размещённую проверку, настройку игр и white-label, и токены аккаунта. Источники данных позволяют тебе считать существующие команды, сайты, информацию об аккаунте и статистику в конфигурацию.

Полный справочник

Каждый ресурс и источник данных со всеми его аргументами и атрибутами и синтаксисом импорта на странице реестра провайдера. Она генерируется из исходников провайдера, так что отслеживает выпущенную версию точно:

  • Реестр Terraform: registry.terraform.io/providers/caputchin/caputchin
  • Реестр OpenTofu: search.opentofu.org/provider/caputchin/caputchin

Для нижележащих операций, которые выполняет каждый ресурс, смотри интерактивный справочник API.

См. также

На этой странице