Skip to content

Better validation blocks and errors #370

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Emyrk opened this issue Mar 25, 2025 · 0 comments
Open

Better validation blocks and errors #370

Emyrk opened this issue Mar 25, 2025 · 0 comments

Comments

@Emyrk
Copy link
Member

Emyrk commented Mar 25, 2025

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant