JingsongLi opened a new pull request, #17: URL: https://github.com/apache/terraform-provider-paimon/pull/17
Imported primary-key tables could fail option-only updates when omitted keys or nullability were treated as empty/default values. Java-normalized policy JSON could also be mistaken for a failed mutation or a content change requiring drop-and-create. This change preserves inherited schema state, configures primary keys through Paimon's Java option, and reconciles equivalent policies without detaching them. ## API and lifecycle changes - Configure primary keys with `options["primary-key"]`; expose normalized `primary_keys` as a computed output. Preserve equivalent option spelling, permit same-value adoption after import, and require explicit `allow_replacement` for immutable/key changes. - Preserve omitted field nullability and keys across updates, including deferred field/key configuration. Rename `catalog_id` to `server_id` and `allow_destructive_changes` to `allow_replacement`, with version-0 resource state migration. - Compare known Java policy AST normalization across create, read, plan and update, including name-based field references, single-child predicates and atomic cast aliases. Keep non-atomic content replacement disabled by default, and avoid reading uncreated destinations during identity replacement. - Treat field defaults as constant strings, reject mixed bearer/DLF configuration, and retain management of options whose removal has not been confirmed. - Bound requests and mutation reconciliation; require and refresh ECS IMDS session tokens; preserve HTTP status against body overrides and suppress credential echoes in diagnostics. Definitively rejected policy creates do not adopt existing policies. ## Compatibility and validation The HCL changes above require configuration updates; resource state metadata is upgraded automatically. `docs/api-compatibility.md` documents the migration and exact Paimon/Iceberg source references. Permission and policy resources remain experimental. Passed locally: - `make check` (vet, race tests, build, formatting and six example validations) - `make test-acceptance` (Terraform 1.13.5 fixture lifecycles, imports, replacement guards, deferred schemas and policy normalization) - `golangci-lint run`, `make check-license`, documentation link checks and `git diff --check` - Two rounds of independent focused review and regression verification This also adds OpenTofu protocol CI, an opt-in real Catalog workflow, and a public Registry installation verifier. Real REST/DLF integration was not run without an isolated endpoint; signed Registry installation was not run without a published release. Local OpenTofu execution was terminated by macOS, so OpenTofu compatibility remains unverified locally. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
