Skip to content

Better validation blocks and errors #370

Open
@Emyrk

Description

@Emyrk

Today the coder terraform provider only allows 1 validation block. There is value if we allow more than one, as it allow tailoring the error message based on the condition.

data "coder_parameter" "favorite_number" {
  name = "favorite_number"
  display_name = "What is your favorite Number?"
  description = "Please enter your favorite number."

  validation {
    min = 0
    error = "The number {value} is less than 0, please select something greater."
  }

  validation {
    max = 100
    error = "The number {value} is greater than 100, please select something less."
  }
}

This is exceptionally useful when invalid is added as an argument.

data "coder_parameter" "favorite_number" {
  name = "favorite_number"
  display_name = "What is your favorite Number?"
  description = "Please enter your favorite number."

  validation {
    min = 0
    error = "The number {value} is less than 0, please select something greater."
  }

  validation {
    max = 100
    error = "The number {value} is greater than 100, please select something less."
  }

  validation {
    error = "That number is superstitious, avoid choosing 13"
    invalid = data.coder_parameter.favorite_number.value == 13
}

!However! this is invalid because you get this error:

│ Error: Self-referential block
│ 
│   on main.tf line 21, in data "coder_parameter" "favorite_number":
│   21:     invalid = data.coder_parameter.favorite_number.value == 13

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions