Caputchin
Automatisierung

Terraform oder OpenTofu nutzen

Der offizielle Caputchin-Provider lässt dich dein Konto als Infrastructure-as-Code verwalten: deklarier Teams, Site-Keys, Sicherheitsrichtlinie, Mitglieder und Tokens in .tf-Dateien und wende sie wie jede andere Ressource an. Es ist dieselbe Management-API wie alles andere unter Automatisierung, ausgedrückt als Terraform-Ressourcen.

Er wird einmal veröffentlicht und funktioniert mit sowohl Terraform als auch OpenTofu aus derselben Quelle; das HCL ist identisch, nur das CLI-Binary (terraform oder tofu) und die Registry unterscheiden sich. Überall unten nimm, was du auch ausführst.

Ein Access Token prägen

Der Provider liest seinen Token aus der Umgebungsvariable CAPUTCHIN_MANAGEMENT_TOKEN (empfohlen, damit er aus dem Quellcode bleibt). Beide Token-Arten funktionieren (siehe API-Authentifizierung): ein Personal Access Token für vollständige Konto-Infrastruktur oder ein Troop Access Token, eingeschränkt auf die Teams, die deine Konfiguration verwaltet.

export CAPUTCHIN_MANAGEMENT_TOKEN=cpt_pat_...

Es gibt einen Henne-Ei-Fall: der Provider kann auch Tokens prägen (die Ressourcen caputchin_account_token und caputchin_troop_pat), aber er braucht überhaupt erst einen Token, um sich zu authentifizieren. Präg den ersten von Hand im Dashboard, dann lass Terraform den Rest verwalten.

Den Provider konfigurieren

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

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

Dasselbe source = "caputchin/caputchin" löst sich aus der Terraform Registry und der OpenTofu Registry auf, also ist der Block unter beiden Tools gleich.

Ein ausgearbeitetes Beispiel: ein Team mit einem gegateten Site-Key

Das erstellt ein Team, einen Site-Key darin und schaltet das Spiel-Gate für diesen Key ein:

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
}

Dann, mit beiden Tools:

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

Das secret des Site-Keys ist ein sensitives berechnetes Attribut; lies es aus dem State (terraform output), um deine Backend-Verifizierung zu konfigurieren. Jeder Apply wird deinem Token im Audit-Log auf Apex zugeschrieben, sodass eine Änderung durch Terraform so nachverfolgbar ist wie eine Dashboard-Bearbeitung.

Was du verwalten kannst

Ressourcen decken dieselbe Fläche wie das Dashboard ab: Teams und ihre Mitglieder und Tokens, Site-Keys, Sicherheitseinstellungen, gehostete Verifizierung, Spiel- und White-Label-Anpassung und Konto-Tokens. Data Sources lassen dich bestehende Teams, Sites, Konto-Infos und Statistik in eine Konfiguration einlesen.

Die vollständige Referenz

Jede Ressource und Data Source, mit all ihren Argumenten und Attributen und ihrer Import-Syntax, ist auf der Registry-Seite des Providers. Sie wird aus der Provider-Quelle generiert, also verfolgt sie die veröffentlichte Version exakt:

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

Für die zugrunde liegenden Operationen, die jede Ressource ausführt, sieh dir die interaktive API-Referenz an.

Siehe auch

Auf dieser Seite