Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.rafftechnologies.com/llms.txt

Use this file to discover all available pages before exploring further.

Updated May 8, 2026 The Raff Terraform Provider is published to the Terraform Registry under rafftechnologies/raff. For most users, declaring it in your required_providers block is the only “install” step needed — Terraform downloads it on first terraform init.

Standard install (Terraform Registry)

In any new or existing Terraform module:
terraform {
  required_providers {
    raff = {
      source  = "rafftechnologies/raff"
      version = "~> 0.1"
    }
  }
}

provider "raff" {
  api_key = var.raff_api_key
}
Then:
terraform init
Terraform fetches the provider from the registry and pins it in .terraform.lock.hcl. Re-run terraform init -upgrade to pull a newer version that satisfies the version constraint. The same workflow works with OpenTofu (tofu init).

Version constraints

ConstraintWhat it allows
version = "0.1.0"Exactly 0.1.0
version = "~> 0.1"Any 0.1.x — recommended for most teams
version = "~> 0.1, < 0.5"Any 0.1.x up to but not including 0.5.0
version = ">= 0.1"Any version ≥ 0.1 — use only when you actively track changes
Lock-files (.terraform.lock.hcl) record the exact version terraform init resolved, so collaborators on the same module use the same provider build. Commit the lock file.

Build from source (local development)

Useful when you’re contributing to the provider, testing a pre-release fix, or need to debug locally:
# Clone
git clone https://github.com/rafftechnologies/terraform-provider-raff.git
cd terraform-provider-raff

# Build
go build -o terraform-provider-raff

# Install to local Terraform plugin path
mkdir -p ~/.terraform.d/plugins/registry.terraform.io/rafftechnologies/raff/0.1.0/$(go env GOOS)_$(go env GOARCH)
cp terraform-provider-raff ~/.terraform.d/plugins/registry.terraform.io/rafftechnologies/raff/0.1.0/$(go env GOOS)_$(go env GOARCH)/
Now any Terraform module that requires rafftechnologies/raff 0.1.0 will use your local build instead of the registry version. To switch back to the registry version, delete the local plugin file and re-run terraform init -upgrade.

Verify

terraform providers
Should list rafftechnologies/raff with the resolved version.
terraform plan
Against an empty state, this should connect to the API (using the configured key) and report No changes.

Authentication

The provider needs an API key. Two ways to provide it:
# Block argument
provider "raff" {
  api_key = var.raff_api_key
}
Or, more commonly:
# Environment variable — keeps the key out of .tf files
export RAFF_API_KEY="raff_<your-key>"
Block arguments take precedence over env vars when both are set. See Generate an API key for issuing a scoped key, and Roles, scopes, and the Owner for picking the right role to assign.

Next steps

raff_project

The project resource.

raff_vm

The VM resource.

Provider intro

Quick start and what the provider covers.
Last modified on May 8, 2026