Skip to content

Releases: hashicorp/terraform-plugin-framework

v0.4.1

27 Sep 13:49
Compare
Choose a tag to compare

NOTES:

v0.4.0

24 Sep 01:42
Compare
Choose a tag to compare

BREAKING CHANGES:

  • attr.Type implementations must now have a String() method that returns a human-friendly name for the type. (#120)
  • tfsdk: Resource implementations must now include the ImportState(context.Context, ImportResourceStateRequest, *ImportResourceStateResponse) method. If import is not supported, call the ResourceImportStateNotImplemented() function or return an error. (#149)

FEATURES:

  • tfsdk: Support resource import (#149)
  • types: Support Set and SetType (#126)
  • types: Support for Float64, Float64Type, Int64, and Int64Type (#166)

ENHANCEMENTS:

  • Added a tfsdk.ConvertValue helper that will convert any attr.Value into any compatible attr.Type. Compatibility happens at the terraform-plugin-go level; the type that the attr.Value's ToTerraformValue method produces must be compatible with the attr.Type's TerraformType(). Generally, this means that the attr.Type of the attr.Value and the attr.Type being converted to must both produce the same tftypes.Type when their TerraformType() method is called. (#120)

BUG FIXES:

  • attr: Ensure List types implementing attr.TypeWithValidate call ElementType validation only if that type implements attr.TypeWithValidate (#126)
  • tfsdk: (Plan).SetAttribute() and (State).SetAttribute() will now create missing attribute paths instead of silently failing to update. (#165)

v0.3.0

08 Sep 15:08
Compare
Choose a tag to compare

BREAKING CHANGES:

  • Methods on the tfsdk.Config, tfsdk.Plan, and tfsdk.State types now return []*tfprotov6.Diagnostic instead of error (#82)
  • Most uses of []*tfprotov6.Diagnostic have been replaced with a new diag.Diagnostics type. Please update your type signatures, and use one of the diags.New* helper functions instead of constructing *tfprotov6.Diagnostics by hand. (#110)
  • The schema.Attribute and schema.Schema types have been moved to tfsdk.Attribute and tfsdk.Schema. No changes beyond import names are required. (#77)
  • With the release of Go 1.17, Go 1.17 is now the lowest supported version of Go to use with terraform-plugin-framework. (#104)
  • attr.Value implementations must now implement a Type(context.Context) method that returns the attr.Type that created the attr.Value. (#119)

FEATURES:

  • Added support for ModifyPlan functions on Resources. (#90)
  • Introduced first-class diagnostics (diag package). (#110)
  • Support attr.Type validation (#82)
  • tfsdk: Attributes, Data Sources, Providers, and Resources now support configuration validation (#75)

ENHANCEMENTS:

  • Added a tfsdk.ValueAs helper that allows accessing an attr.Value without type assertion, by using the same reflection rules used in the Config.Get, Plan.Get, and State.Get helpers. (#119)
  • Errors from methods on the tfsdk.Config, tfsdk.Plan, and tfsdk.State types now include rich diagnostic information (#82)
  • tfsdk: Validate Attribute defines at least one of Required, Optional, or Computed (#111)

BUG FIXES:

  • tfsdk: Diagnostics returned from (Plan).SetAttribute() and (State).SetAttribute() reflection will now properly include attribute path (#133)
  • tfsdk: Don't attempt validation on the nested attributes of a null or unknown SingleNestedAttribute (#118)
  • tfsdk: Return warning diagnostic when using Attribute or Schema type DeprecationMessage field (#93)

v0.2.0

22 Jul 20:32
Compare
Choose a tag to compare

ENHANCEMENTS:

  • Added tfsdk.NewProtocol6Server to return a tfprotov6.ProviderServer implementation for testing and muxing purposes. (#72)
  • Added support for MapNestedAttributes. (#79)
  • Responses now default to returning the current state, meaning state will only change when provider developers actively change it. Previously, an empty state value would be returned, which caused problems. (#74)

v0.1.0

24 Jun 21:05
Compare
Choose a tag to compare

FEATURES:

  • Added interfaces extending the attr.Type interface to include attribute and element types. (#44)
  • Added state, config, and plan types, and support for getting values from them. (#46)
  • Added support for Object types. (#38)
  • Added support for bools, numbers, and strings. (#29)
  • Added support for defining schemas and attributes. (#27)
  • Added support for lists. (#36)
  • Added support for maps. (#37)
  • Added support for provider, resource, and data source types. (#32)
  • Added the ability to serve providers. (#45)