Terraform/OpenTofu provider

To continuously manage your Platform Orchestrator configuration following an IaC approach, these providers are available:

Refer to the provider documentation in the respective registry for all usage details.

The same provider declaration works with Terraform and OpenTofu:

terraform {
  required_providers {
    platform-orchestrator = {
      source  = "stellwerk-labs/platform-orchestrator"
      version = "~> 1.1"
    }
  }
}

Initialize it with either CLI:

terraform init
# or
tofu init

OpenTofu resolves the provider through registry.opentofu.org and verifies its published signature.

Authentication and organization

The provider reads the same environment variables as octl:

export PO_API_URL="https://api.example.com"
export PO_ORG_ID="my-organization"
export PO_AUTH_TOKEN="<service-user-token>"

You can instead set api_url, org_id, and the sensitive auth_token provider arguments or reuse an octl configuration file. Environment variables take precedence over values loaded from the configuration file.

Use a dedicated service user with only the permissions required by the resources in the configuration.

IAM and metadata automation

Provider v1.1.0 adds declarative resources for:

  • configurable organization roles;
  • SCIM group-to-role mappings; and
  • organization metadata-key validation schemas.

It also adds data sources for individual and complete role inventories, the permission catalog, SCIM mappings, and individual or complete metadata-key inventories.

resource "platform-orchestrator_role" "module_maintainer" {
  display_name = "Module Maintainer"
  permissions  = ["module_read", "module_write"]
}

resource "platform-orchestrator_scim_group_mapping" "engineering" {
  group_display_name = "Engineering"
  role_id            = platform-orchestrator_role.module_maintainer.id
}

resource "platform-orchestrator_metadata_key" "cost_center" {
  name        = "cost-center"
  description = "Internal cost-center identifier"
  schema_type = "string"
  pattern     = "^[A-Z0-9-]+$"
}

Role permission sets and SCIM mappings are authoritative. Metadata-key description, format, and pattern can be added, changed, or cleared in place without replacing the key.

Service users are deliberately CLI/API-only. Creating or rotating one returns a one-time bearer token, and managing that lifecycle as a Terraform resource would persist the credential in state.

Refer to the Terraform Registry documentation  or OpenTofu Registry documentation  for every resource, data source, import form, and argument.

Top