crossplane / crossplane/upjet

Sensitive data injection fails for TF field paths containing wildcards

Open
#589 1 comment 0 reactions 0 assignees View on GitHub
bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.