---
type: how-to
title: Use Terraform ou OpenTofu
summary: Gerencie o Caputchin como infraestrutura como código com o provedor oficial, que funciona de forma idêntica no Terraform e no OpenTofu, com um exemplo prático e um link para a referência completa do registro.
---

O provedor oficial do Caputchin deixa você gerenciar sua conta como infraestrutura como código: declare equipes, chaves de site, política de segurança, membros e tokens em arquivos `.tf` e aplique-os como qualquer outro recurso. É a mesma API de gestão de tudo o mais em [automação](/docs/automation/management-api), expressa como recursos do Terraform.

Ele é publicado uma vez e funciona com **tanto o Terraform quanto o OpenTofu** da mesma fonte; o HCL é idêntico, só o binário da CLI (`terraform` ou `tofu`) e o registro diferem. Em todo lugar abaixo, use o que você roda.

## Acune um token de acesso [#mint-an-access-token]

O provedor lê seu token da variável de ambiente `CAPUTCHIN_MANAGEMENT_TOKEN` (recomendado, para que fique fora do código-fonte). Qualquer tipo de token funciona (veja [autenticação na API](/docs/automation/management-api#mint-an-access-token)): um [token de acesso pessoal](/docs/account-management/personal-access-token) para infraestrutura de conta inteira, ou um [token de acesso de equipe](/docs/troops/tokens) delimitado às equipes que sua configuração gerencia.

```bash
export CAPUTCHIN_MANAGEMENT_TOKEN=cpt_pat_...
```

Há um caso de ovo e galinha: o provedor também consegue *acunhar* tokens (os recursos `caputchin_account_token` e `caputchin_troop_pat`), mas ele precisa de um token para se autenticar antes de tudo. Acune o primeiro na mão no painel, depois deixe o Terraform gerenciar o resto.

## Configure o provedor

```hcl
terraform {
  required_providers {
    caputchin = {
      source  = "caputchin/caputchin"
      version = "~> 0.1"
    }
  }
}

# Token from CAPUTCHIN_MANAGEMENT_TOKEN; endpoint defaults to https://api.caputchin.com.
provider "caputchin" {}
```

O mesmo `source = "caputchin/caputchin"` resolve do Terraform Registry e do OpenTofu Registry, então o bloco é o mesmo sob qualquer ferramenta.

## Um exemplo prático: uma equipe com uma chave de site protegida

Isto cria uma equipe, uma chave de site nela, e liga o portão de jogo para essa chave:

```hcl
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
}
```

Depois, com qualquer ferramenta:

```bash
terraform init && terraform apply
# or
tofu init && tofu apply
```

O `secret` da chave de site é um atributo computado sensível; leia-o do state (`terraform output`) para configurar sua [verificação no backend](/docs/integration-guides/verify-on-your-backend). Todo apply é atribuído ao seu token no [registro de auditoria](/docs/audit-logs/overview) no Apex, então uma mudança pelo Terraform é tão rastreável quanto uma edição no painel.

## O que você pode gerenciar

Os recursos cobrem a mesma superfície do painel: equipes e seus membros e tokens, chaves de site, configurações de segurança, verificação hospedada, personalização de jogo e white-label, e tokens de conta. As data sources deixam você ler equipes, sites, informações de conta e estatísticas existentes para dentro de uma configuração.

## A referência completa

Cada recurso e data source, com todos os seus argumentos e atributos e a sintaxe de import, está na página do provedor no registro. Ela é gerada da fonte do provedor, então acompanha a versão lançada exatamente:

- Terraform Registry: `registry.terraform.io/providers/caputchin/caputchin`
- OpenTofu Registry: `search.opentofu.org/provider/caputchin/caputchin`

Para as operações subjacentes que cada recurso realiza, veja a [referência interativa da API](/docs/api-reference).

## Veja também

- [Gerencie o Caputchin pela API](/docs/automation/management-api): a API HTTP em que o provedor se apoia.
- [Use o servidor MCP](/docs/automation/mcp): a superfície de agente de IA.
- [Equipes](/docs/troops/overview) e [chaves de site](/docs/site-keys/overview): os recursos que você está gerenciando.
