For setup, building, and contribution guidelines, read DEVELOPMENT.md first.
# ALWAYS use Makefile targets:
make test # Unit tests
RECORD=false TESTARGS="-run TestName" make testacc # Acceptance tests
# Recording modes for acceptance tests:
# RECORD=false - Use cassettes (fast, default)
# RECORD=true - Record new cassettes
# RECORD=none - Live API onlyRaw go test bypasses gotestsum and test infrastructure.
For full testing details (unit vs acceptance, RECORD modes, examples), see TESTING.md. The Claude test runner skill also includes expanded test-running guidance.
All schema attributes MUST have Description fields - required for make docs generation.
datadog/fwprovider/- Framework resources, search here for new resource patternsdatadog/*.go- SDKv2 resources (legacy), do NOT use for new resourcesdatadog/internal/- Shared utilities: validators, customtypes, fwutils, planmodifiersdatadog/tests/- Acceptance testsexamples/- HCL examples used by docs generationdocs/- Auto-generated bymake docs, do NOT edit directly
Some docs are manually maintained and excluded from auto generation. Check scripts/generate-docs.sh for the current exclude_files list before editing any docs/ files.
- ALWAYS search
datadog/fwprovider/for existing patterns before implementing new ones - Use Blocks, not Nested Attributes for complex structures
- Avoid ObjectType (breaks docs generation - no field description support)
-
make fmtcheckpasses -
make testpasses
-
make docs && make check-docspasses -
make vetandmake errcheckpass - Acceptance tests pass with
RECORD=nonefor changed resources - No sensitive data in logs or errors
- Changelog:
changelog/improvement,changelog/feature,changelog/bugfix,changelog/note,changelog/documentationorchangelog/no-changelog - Title prefix:
[datadog_resource_name] Description