Comprehensive documentation and best practices for building Terraform providers with terraform-plugin-framework (v1.17.0). Covers providers, resources, schemas, types, validators, testing, and common pitfalls.
Overall
score
97%
Design clear, consistent schemas with proper constraints, validators, and modifiers.
Every attribute must have exactly one of: Required, Optional, or Computed.
Required -- user must provide; cannot be combined with ComputedOptional -- user may provideComputed -- provider sets; user cannot configureOptional + Computed -- user can provide, provider sets a default if notRequired + Computed is invalid and will error.
UseStateForUnknown() on all stable computed attributes (IDs, creation timestamps)RequiresReplace() on immutable attributes that force resource recreationAlways validate user input on Required and Optional attributes:
LengthAtLeast, LengthBetween, OneOf, regex patternsBetween, AtLeast, AtMostExactlyOneOf, AtLeastOneOf, ConflictsWithDescription on every attribute (used for generated provider docs)Sensitive: true on credentials, tokens, passwords, API keysDeprecatedMessage when replacing an attributeGroup related attributes logically: identity first (name, ID), then configuration, then computed/read-only fields.
See Schema for full attribute type reference. See Validators for built-in and custom validator patterns. See Plan Modifiers for modifier patterns.