Sensitive data injection fails for TF field paths containing wildcards
- Dominant language
- Go
- Stars
- 481
- Forks
- 131
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 11
Description
### What happened?
When a managed resource uses a sensitive secret reference inside a list item (e.g. `spec.forProvider.options[0].configurationSecretRef`), Upjet may attempt to inject secret data into Terraform state using a TF path that contains a wildcard (e.g. `options[*].configuration.`).
This fails with an error similar to:
`cannot set string as terraform attribute for fieldpath "options[*].configuration.": options is not an object`
### How can we reproduce it?
1. Run an Upjet-based provider (e.g. provider-auth0).
2. Create a Connection that sets spec.forProvider.options[0].configurationSecretRef (or any secret ref under options).
3. Reconcile the resource.
4. Observe reconcile failing when Upjet tries to inject secret data into Terraform using a wildcard TF path like options[*].configuration., resulting in the error mentioned.
Contributor guide
Research direction
Start by reproducing the failure in an Upjet-based provider such as provider-auth0 with a secret reference under options[0]. Inspect Upjet’s sensitive-data injection and Terraform path handling where the wildcard path is processed. Done means reconciliation succeeds and secret data is injected for list-item paths without the options-is-not-an-object error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, terraform
- Domain
- backend, devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100