---
type: how-to
title: Usa Terraform o OpenTofu
summary: Gestiona Caputchin como infraestructura como código con el proveedor oficial, que funciona idénticamente en Terraform y OpenTofu, con un ejemplo trabajado y un enlace a la referencia completa del registry.
---

El proveedor oficial de Caputchin te deja gestionar tu cuenta como infraestructura como código: declara equipos, claves de sitio, política de seguridad, miembros y tokens en archivos `.tf` y aplícalos como cualquier otro recurso. Es la misma API de gestión que todo lo demás bajo [automatización](/docs/automation/management-api), expresada como recursos de Terraform.

Se publica una vez y funciona con **Terraform y OpenTofu** desde la misma fuente; el HCL es idéntico, solo difieren el binario de CLI (`terraform` o `tofu`) y el registry. En todo lo de abajo, usa el que corras.

## Acuña un access token [#mint-an-access-token]

El proveedor lee su token de la variable de entorno `CAPUTCHIN_MANAGEMENT_TOKEN` (recomendado, para que se quede fuera del código). Cualquier tipo de token funciona (ver [autenticación de la API](/docs/automation/management-api#mint-an-access-token)): un [personal access token](/docs/account-management/personal-access-token) para infraestructura de toda la cuenta, o un [troop access token](/docs/troops/tokens) acotado a los equipos que tu configuración gestiona.

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

Hay un caso del huevo y la gallina: el proveedor también puede *acuñar* tokens (los recursos `caputchin_account_token` y `caputchin_troop_pat`), pero necesita un token para autenticarse en primer lugar. Acuña el primero a mano en el dashboard, luego deja que Terraform gestione el resto.

## Configura el proveedor

```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" {}
```

El mismo `source = "caputchin/caputchin"` se resuelve desde el Terraform Registry y el OpenTofu Registry, así que el bloque es el mismo bajo cualquiera de las herramientas.

## Un ejemplo trabajado: un equipo con una clave de sitio con gate

Esto crea un equipo, una clave de sitio en él, y activa el gate de juego para esa clave:

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

Luego, con cualquiera de las herramientas:

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

El `secret` de la clave de sitio es un atributo computado sensible; léelo del state (`terraform output`) para configurar tu [verificación de backend](/docs/integration-guides/verify-on-your-backend). Cada apply se atribuye a tu token en el [audit log](/docs/audit-logs/overview) en Apex, así que un cambio a través de Terraform es tan rastreable como una edición en el dashboard.

## Qué puedes gestionar

Los recursos cubren la misma superficie que el dashboard: equipos y sus miembros y tokens, claves de sitio, ajustes de seguridad, verificación alojada, personalización de juego y white-label, y tokens de cuenta. Las data sources te dejan leer equipos, sitios, info de cuenta y estadística existentes hacia una configuración.

## La referencia completa

Cada recurso y data source, con todos sus argumentos y atributos y sintaxis de import, está en la página de registry del proveedor. Se genera a partir de la fuente del proveedor, así que sigue la versión publicada exactamente:

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

Para las operaciones subyacentes que cada recurso realiza, mira la [referencia interactiva de la API](/docs/api-reference).

## Véase también

- [Gestiona Caputchin desde la API](/docs/automation/management-api): la API HTTP sobre la que se asienta el proveedor.
- [Usa el servidor MCP](/docs/automation/mcp): la superficie de agente de IA.
- [Equipos](/docs/troops/overview) y [claves de sitio](/docs/site-keys/overview): los recursos que estás gestionando.
