terraform-provider-stackgen

sg_external_secret (Resource)

Manages an external secret integration in StackGen Vault. Import by Vault UUID. Deletion is non-forced by default: Vault rejects deletion of an in-use integration with HTTP 409. Set force_delete = true only when it is safe to break dependent secrets. Sensitive metadata remains in Terraform state even if Vault redacts it on read.

Example Usage

# Requires a Vault-supported external-secret format. Check
# data.sg_external_secret_formats for the required metadata keys of your format.
# WARNING: Credential metadata remains in Terraform state even if Vault redacts it
# on read. Use a protected, encrypted state backend and never commit tfstate/tfvars.
resource "sg_external_secret" "example" {
  name        = "example-aws-external"
  description = "External secrets from AWS Secrets Manager"
  subcategory = "aws_secrets_manager"
  metadata    = var.external_secret_metadata
}

variable "external_secret_metadata" {
  description = "Placeholder: supply the required AWS Secrets Manager integration credential keys from the Vault format catalog via a secure variable source."
  type        = map(string)
  sensitive   = true
}

Import

Import an existing sg_external_secret using its external secret UUID:

terraform import sg_external_secret.example '123e4567-e89b-12d3-a456-426614174000'

Operational notes

Vault refuses to delete an in-use external secret (HTTP 409) unless force_delete = true. Prefer removing dependent sg_secret.external_secret_references first. Credential metadata stays in Terraform state even when Vault redacts reads; secure plans and state.

Schema

Required

Optional

Read-Only