Fork of charpand/terraform-provider-openprovider carrying the registrar changes offered upstream as PRs 99 to 106; main is the merge of those PRs onto upstream
This repository has been archived on 2026-09-19. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • Go 96.2%
  • Go Template 2.2%
  • Shell 1.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
cinereal 71fecbc52a
fix(domain): warn about the auth code only for a transfer in flight
`ImportState` warned about the transfer authorization code on every import. The
account holds most of the domains it imports outright, and for those the warning
is noise: it names a transfer that did not happen, and the diff it threatens
cannot occur, `auth_code` being optional and not computed. Its advice is worse
than the warning -- `auth_code` carries `RequiresReplace`, so a value added to
keep the import quiet plans a replacement of the domain.

Read the status of the domain and speak only where it is not `ACT`, which is the
one case an authorization code is in play. A lookup which does not answer says
so, rather than falling back to the old text.

Assisted-by: Claude:claude-fable-5-1
Claude-Session: https://claude.ai/code/session_01BpnvvRPKgYsyKzTjLQaq48
2026-09-16 19:22:32 +02:00
.devcontainer chore(deps): update ghcr.io/devcontainers/features/node docker tag to v2 2026-07-26 18:28:22 +02:00
.github chore(docs): centralize AI agent instructions in CLAUDE.md and update references in AGENTS.md, copilot-instructions.md, and coding-agent.md 2026-09-16 15:20:32 +02:00
docs Merge branch 'feat/domains-data-source': feat: add openprovider_domains data source 2026-09-16 19:21:58 +02:00
examples Merge branch 'feat/domains-data-source': feat: add openprovider_domains data source 2026-09-16 19:21:58 +02:00
internal fix(domain): warn about the auth code only for a transfer in flight 2026-09-16 19:22:32 +02:00
scripts fix: correct status code formatting and trap timing in tests 2026-02-08 12:24:29 +01:00
templates Merge branch 'feat/domains-data-source': feat: add openprovider_domains data source 2026-09-16 19:21:58 +02:00
.editorconfig chore: add .editorconfig for consistent coding styles 2026-01-26 22:44:35 +01:00
.gitignore fix: add HTTP status code validation to domain operations 2026-02-08 12:24:29 +01:00
.golangci.yml fix: update golangci-lint configuration to correct version 2026-01-08 23:29:52 +01:00
.goreleaser.yaml Fix GoReleaser archives deprecation 2026-01-22 23:28:01 +01:00
.stats.yml chore: project boilerplate and configuration 2026-01-08 21:23:52 +01:00
AGENTS.md chore(docs): centralize AI agent instructions in CLAUDE.md and update references in AGENTS.md, copilot-instructions.md, and coding-agent.md 2026-09-16 15:20:32 +02:00
API.md docs: Add DNS and SSL usage examples and changelog entries 2026-02-11 21:48:50 +01:00
CHANGELOG.md fix(domain): warn about the auth code only for a transfer in flight 2026-09-16 19:22:32 +02:00
CLAUDE.md chore(docs): centralize AI agent instructions in CLAUDE.md and update references in AGENTS.md, copilot-instructions.md, and coding-agent.md 2026-09-16 15:20:32 +02:00
CODE_OF_CONDUCT.md feat(docs): add Contributor Covenant Code of Conduct 2026-01-26 22:44:35 +01:00
CONTRIBUTING.md fix(ci): rework docs workflow for branch protection compliance 2026-01-25 23:04:32 +01:00
go.mod Merge branch 'feat/domains-data-source': feat: add openprovider_domains data source 2026-09-16 19:21:58 +02:00
go.sum feat: update go modules 2026-09-16 14:48:01 +02:00
HEALTH_CHECK.md chore(docs): update changelog and health check for Renovate migration, Go 1.26, and dependency updates 2026-07-26 14:17:22 +02:00
LICENSE docs: add project documentation and legal 2026-01-08 21:23:52 +01:00
main.go chore(docs): use go tool tfplugindocs 2026-01-23 16:42:12 +01:00
Makefile feat(provider): remove deprecated nameserver block from domain resource and update ns_group logic 2026-01-28 14:06:52 +01:00
mise.toml chore: update dependency versions and refactor test helper argument order 2026-09-16 15:35:03 +02:00
README.md chore: prepare for v1.0.0 release 2026-02-16 11:09:06 +01:00
renovate.json fix: formatted renovate file 2026-07-28 00:01:14 +02:00
SECURITY.md docs: fix email address in documentation 2026-01-08 21:33:53 +01:00
terraform-registry-manifest.json Add GPG signing to release workflow 2026-01-22 23:10:44 +01:00

OpenProvider Terraform Provider

Terraform provider for managing Openprovider domains and customers.

Requirements

  • Terraform >= 1.3

Features

  • Customer Management: Create and manage customer handles (contact information) for domain registrations
  • Domain Management: Register and manage domains with customizable contact handles
  • Nameserver Groups: Configure and manage nameserver groups for domains

Usage

terraform {
  required_providers {
    openprovider = {
      source  = "charpand/openprovider"
      version = ">= 1.0.0"
    }
  }
}

provider "openprovider" {
  username = var.openprovider_username
  password = var.openprovider_password
}

Creating Customers and Domains

# Create a customer (generates a handle like XX123456-XX)
resource "openprovider_customer" "owner" {
  email = "owner@example.com"

  phone {
    country_code = "1"
    area_code    = "555"
    number       = "1234567"
  }

  address {
    street  = "Main Street"
    number  = "100"
    city    = "New York"
    country = "US"
  }

  name {
    first_name = "John"
    last_name  = "Doe"
  }
}

# Use the customer handle in a domain
resource "openprovider_domain" "example" {
  domain       = "example.com"
  owner_handle = openprovider_customer.owner.handle
  period       = 1
}

Using Existing Customer Handles

# Reference an existing customer by handle
data "openprovider_customer" "existing" {
  handle = "XX123456-XX"
}

resource "openprovider_domain" "example" {
  domain       = "example.com"
  owner_handle = data.openprovider_customer.existing.handle
  period       = 1
}

Documentation

Registry docs are generated from templates and examples:

  • Templates live in templates/docs/.
  • Examples live in examples/.
  • Generated docs live in docs/.

To regenerate docs, run (uses go tool tfplugindocs under Go 1.24):

./scripts/docs

Development

./scripts/format
./scripts/lint
./scripts/test

License

This project is licensed under the MIT License - see the LICENSE file for details.