From e1ccd88ba6c0caaa80079a28f824251d68f27d4a Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 27 Jun 2025 11:14:16 -0500 Subject: [PATCH 1/2] fix: `tags` argument in workspace tags block is optional It was marked as required, which is incorrect. The provider has it as optional. --- workspacetags.go | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/workspacetags.go b/workspacetags.go index d3f6c76..f0134ee 100644 --- a/workspacetags.go +++ b/workspacetags.go @@ -17,18 +17,9 @@ func workspaceTags(modules terraform.Modules, files map[string]*hcl.File) (types for _, mod := range modules { blocks := mod.GetDatasByType("coder_workspace_tags") for _, block := range blocks { - evCtx := block.Context().Inner() - tagsAttr := block.GetAttribute("tags") if tagsAttr.IsNil() { - r := block.HCLBlock().Body.MissingItemRange() - diags = diags.Append(&hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Missing required argument", - Detail: `"tags" attribute is required by coder_workspace_tags blocks`, - Subject: &r, - EvalContext: evCtx, - }) + // Nil tags block is valid, just skip it. continue } From b079c5b649c8e7ea99d908403682a717ee5754f6 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 27 Jun 2025 11:23:26 -0500 Subject: [PATCH 2/2] chore: add some more error context --- extract/parameter.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extract/parameter.go b/extract/parameter.go index 3b5f1d0..0d45a8b 100644 --- a/extract/parameter.go +++ b/extract/parameter.go @@ -252,7 +252,7 @@ func optionalStringEnum[T ~string](block *terraform.Block, key string, def T, va tyAttr := block.GetAttribute(key) return "", &hcl.Diagnostic{ Severity: hcl.DiagError, - Summary: fmt.Sprintf("Invalid %q attribute", key), + Summary: fmt.Sprintf("Invalid %q attribute for block %s", key, block.Label()), Detail: err.Error(), Subject: &(tyAttr.HCLAttribute().Range), //Context: &(block.HCLBlock().DefRange), @@ -275,7 +275,7 @@ func requiredString(block *terraform.Block, key string) (string, *hcl.Diagnostic diag := &hcl.Diagnostic{ Severity: hcl.DiagError, - Summary: fmt.Sprintf("Invalid %q attribute", key), + Summary: fmt.Sprintf("Invalid %q attribute for block %s", key, block.Label()), Detail: fmt.Sprintf("Expected a string, got %q", typeName), Subject: &(tyAttr.HCLAttribute().Range), //Context: &(block.HCLBlock().DefRange), @@ -393,7 +393,7 @@ func required(block *terraform.Block, keys ...string) hcl.Diagnostics { r := block.HCLBlock().Body.MissingItemRange() diags = diags.Append(&hcl.Diagnostic{ Severity: hcl.DiagError, - Summary: fmt.Sprintf("Missing required attribute %q", key), + Summary: fmt.Sprintf("Missing required attribute %q for block %q", key, block.Label()), Detail: fmt.Sprintf("The %s attribute is required", key), Subject: &r, Extra: nil,