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 Manages a Raff project — the access-control unit that owns every resource. See Team & Projects — Projects for the model. Every account starts with a Default project that cannot be deleted.

Example

resource "raff_project" "production" {
  name           = "production"
  description    = "Production workloads — customer-facing services"
  default_region = "us-east"
}

resource "raff_project" "customer_acme" {
  name           = "customer-acme"
  description    = "ACME Corp's whitelabel deployment"
  default_region = "us-east"
}

Argument reference

ArgumentTypeRequired?Description
namestringYesProject name. Must be unique across the account
descriptionstringNoFree-form description. Surfaces in the dashboard’s project list and in audit-log entries
default_regionstringNoDefault region for resources created in this project. Currently us-east is the only available region

Attribute reference (computed)

AttributeDescription
idProject UUID — use as project_id on raff_vm and other project-scoped resources
account_idThe account this project belongs to
slugURL-friendly identifier (lowercase, hyphenated) — derived from name
is_defaultWhether this is the account’s Default project
is_activeWhether the project is active (deleted projects show as inactive briefly before disappearing)
created_byUser who created the project
created_atCreation timestamp
updated_atLast modification timestamp

Permissions

The API key used by the provider needs:
  • account.projects.create — to create new projects (Owner, Admin)
  • account.projects.manage — to update existing projects (Owner, Admin)
  • account.projects.delete — to delete projects (Owner only by default; Admin does NOT include this — needs a Custom role)
If terraform apply fails with 403 Forbidden on a project resource, the key’s role is missing the relevant permission.

Importing existing projects

If you have a project that was created via the dashboard or CLI and want to bring it under Terraform management:
terraform import raff_project.production <project-uuid>
Then add a matching resource "raff_project" "production" block to your .tf file. Run terraform plan to confirm Terraform’s view matches the existing state.

Lifecycle

OperationBehavior
terraform apply (create)New project created, gets a fresh UUID
terraform apply (rename / update description)Updates in-place; UUID unchanged
terraform apply (region change)In-place if supported by the API
terraform destroyDeletes the project. Fails if any resources still belong to it (VMs, volumes, IPs, etc.). Move or destroy those first
Trying to destroy the Default projectAlways fails — the Default project is platform-protected

raff_vm

VMs reference projects via project_id.

Projects

The model behind project-scoped access.

Permissions matrix

Which role grants account.projects.delete.
Last modified on May 8, 2026