Caputchin
Automatisation

Utiliser Terraform ou OpenTofu

Le provider officiel Caputchin te permet de gérer ton compte en infrastructure-as-code : déclare des équipes, des clés de site, une politique de sécurité, des membres et des jetons dans des fichiers .tf et applique-les comme n'importe quelle autre ressource. C'est la même API de gestion que tout le reste sous automatisation, exprimée en ressources Terraform.

Il est publié une fois et fonctionne avec Terraform comme OpenTofu depuis la même source ; le HCL est identique, seul le binaire CLI (terraform ou tofu) et le registre diffèrent. Partout ci-dessous, utilise celui que tu exécutes.

Génère un jeton d'accès

Le provider lit son jeton depuis la variable d'environnement CAPUTCHIN_MANAGEMENT_TOKEN (recommandé, pour qu'il reste hors des sources). Les deux types de jeton fonctionnent (voir authentification de l'API) : un Personal Access Token pour l'infrastructure pleine-compte, ou un Troop Access Token limité aux équipes que ta configuration gère.

export CAPUTCHIN_MANAGEMENT_TOKEN=cpt_pat_...

Il y a un cas de l'œuf et la poule : le provider peut aussi générer des jetons (les ressources caputchin_account_token et caputchin_troop_pat), mais il a besoin d'un jeton pour s'authentifier en premier lieu. Génère le premier à la main dans le tableau de bord, puis laisse Terraform gérer le reste.

Configure le provider

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

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

Le même source = "caputchin/caputchin" se résout depuis le Terraform Registry et l'OpenTofu Registry, donc le bloc est le même sous l'un ou l'autre outil.

Un exemple concret : une équipe avec une clé de site gatée

Ceci crée une équipe, une clé de site dedans, et active le gate de jeu pour cette clé :

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
}

Puis, avec l'un ou l'autre outil :

terraform init && terraform apply
# or
tofu init && tofu apply

Le secret de la clé de site est un attribut calculé sensible ; lis-le depuis l'état (terraform output) pour configurer ta vérification backend. Chaque apply est attribué à ton jeton dans le journal d'audit sur Apex, donc un changement via Terraform est aussi traçable qu'une modification dans le tableau de bord.

Ce que tu peux gérer

Les ressources couvrent la même surface que le tableau de bord : les équipes et leurs membres et jetons, les clés de site, les réglages de sécurité, la vérification hébergée, la personnalisation du jeu et de la marque blanche, et les jetons de compte. Les sources de données te laissent lire dans une configuration les équipes, sites, infos de compte et statistiques existants.

La référence complète

Chaque ressource et source de données, avec tous ses arguments et attributs et sa syntaxe d'import, est sur la page de registre du provider. Elle est générée à partir de la source du provider, donc elle suit la version publiée exactement :

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

Pour les opérations sous-jacentes que chaque ressource effectue, vois la référence interactive de l'API.

Voir aussi

Sur cette page