Skip to content

feat: 1047 typed credentials - full migration path#2519

Closed
matthiasbruns wants to merge 32 commits into
open-component-model:mainfrom
matthiasbruns:feat/1047_typed_credentials_phase_3_consumers
Closed

feat: 1047 typed credentials - full migration path#2519
matthiasbruns wants to merge 32 commits into
open-component-model:mainfrom
matthiasbruns:feat/1047_typed_credentials_phase_3_consumers

Conversation

@matthiasbruns

@matthiasbruns matthiasbruns commented May 15, 2026

Copy link
Copy Markdown
Contributor

What this PR does / why we need it

This PR basically migrates the whole code-base to the final state of credentials including cli and controllers.

  • updates all interfaces that used credentials map[string]string
  • updates plugin boundary auth parsing
  • updates all consumers and cross references
  • updates cli & controllers
  • updates all tests and integration tests
  • cleans up deprecated consts and helper functions
  • adds a util to convert runtime.Typed into typed credentials in the bindings where needed
  • introduces typed credentials in sigstore

Which issue(s) this PR fixes

Contributes:

Binding release order

Dependency graph (changed → changed only):

blob → (none)
signing → (none)
rsa → (none)
sigstore → signing
repository → blob, credentials
oci → blob, credentials, repository
constructor → blob, credentials, oci, repository
plugin → blob, constructor, credentials, repository, signing
input/dir → blob, constructor, credentials, repository
input/file → blob, constructor, credentials, repository
input/utf8 → blob, constructor, credentials, repository
helm → blob, constructor, credentials, oci, plugin, repository
transfer → blob, credentials, helm, oci, repository, signing

PR plan:

Gate PRs Modules Can review in parallel
1 ✅ PR 1 (#2580) blob, signing, rsa ✅ (3 modules)
2 ✅ PR 2 (#2586) repository, sigstore ✅ (2 modules)
3 PR 3 (#2594) oci
4 PR 4 constructor
5 PR 5 plugin, input/dir, input/file, input/utf8 ✅ (4 modules)
6 PR 6 helm
7 PR 7 transfer, controller ✅ (2 modules)
8 PR 8 cli

@netlify

netlify Bot commented May 15, 2026

Copy link
Copy Markdown

Deploy Preview for ocm-website failed. Why did it fail? →

Name Link
🔨 Latest commit cf56f52
🔍 Latest deploy log https://app.netlify.com/projects/ocm-website/deploys/6a0ef03cb8d907000984f29e

@coderabbitai

coderabbitai Bot commented May 15, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a7523671-e069-483a-8788-3ceae6329c42

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added kind/feature new feature, enhancement, improvement, extension size/l Large labels May 15, 2026
@matthiasbruns matthiasbruns force-pushed the feat/1047_typed_credentials_phase_3_consumers branch 3 times, most recently from 2b31d10 to 5f3c60f Compare May 19, 2026 10:45
@matthiasbruns matthiasbruns changed the title feat: 1047 credentials phase 3 - consumer impl feat: 1047 removal of ResolveTyped - bump credential consumers May 19, 2026
@matthiasbruns matthiasbruns force-pushed the feat/1047_typed_credentials_phase_3_consumers branch from 178160d to 5dfaeb8 Compare May 19, 2026 11:27
Comment thread bindings/go/constructor/construct.go Outdated
@matthiasbruns matthiasbruns changed the title feat: 1047 removal of ResolveTyped - bump credential consumers feat: 1047 removal of ResolveTyped and map credentials - bump credential consumers May 20, 2026
jakobmoellerdev pushed a commit that referenced this pull request May 20, 2026
#### What this PR does / why we need it
This PR migrates the following bindings to runtime.Typed credentials
- blob 
- rsa
- signing

Since we touch central interfaces, this is a breaking change.

The migration path can be observed here:
#2519

#### Which issue(s) this PR fixes
Contributes: 
- open-component-model/ocm-project#1055

#### Testing
Fully tested locally with `go.work` enabled in
open-component-model/ocm-project#1047

---------

Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
ocmbot2 Bot pushed a commit to morri-son/open-component-model that referenced this pull request May 20, 2026
…ent-model#2580)

#### What this PR does / why we need it
This PR migrates the following bindings to runtime.Typed credentials
- blob
- rsa
- signing

Since we touch central interfaces, this is a breaking change.

The migration path can be observed here:
open-component-model#2519

#### Which issue(s) this PR fixes
Contributes:
- open-component-model/ocm-project#1055

#### Testing
Fully tested locally with `go.work` enabled in
open-component-model/ocm-project#1047

---------

Signed-off-by: Matthias Bruns <git@matthiasbruns.com> c7e5118
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>

# Conflicts:
#	bindings/go/oci/go.sum

# Conflicts:
#	bindings/go/credentials/doc.go
#	bindings/go/credentials/graph.go
#	bindings/go/credentials/graph_test.go
#	bindings/go/credentials/interface.go
#	bindings/go/credentials/plugins.go
#	bindings/go/credentials/resolve_direct.go
#	bindings/go/credentials/resolve_direct_test.go
#	bindings/go/credentials/resolve_static.go
#	bindings/go/credentials/resolve_static_test.go
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>

# Conflicts:
#	bindings/go/oci/repository/resource/resource_repository.go
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
@matthiasbruns matthiasbruns force-pushed the feat/1047_typed_credentials_phase_3_consumers branch from c8aaf22 to 0c05929 Compare May 21, 2026 07:41
@matthiasbruns matthiasbruns changed the title feat: 1047 removal of ResolveTyped and map credentials - bump credential consumers feat: 1047 typed credentials - full migration path May 21, 2026
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
matthiasbruns added a commit that referenced this pull request May 21, 2026
#### What this PR does / why we need it
This PR migrates the following bindings to runtime.Typed credentials
- repository
- sigstore

Since we touch central interfaces, this is a breaking change.

For `sigstore`, this PR already introduces typed credentials and
identities and updates all code paths where possible. (identity is
mostly there for documentation, since we delayed the migration to typed
identities)

The migration path can be observed here:
#2519

#### Which issue(s) this PR fixes
Contributes: 
- open-component-model/ocm-project#1055

#### Testing
- breaking change only tested with binding tests
- go.work disabled, task test is green

---------

Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
Signed-off-by: Gerald Morrison (SAP) <gerald.morrison@sap.com>
Co-authored-by: Gerald Morrison (SAP) <gerald.morrison@sap.com>
On-behalf-of: SAP <matthias.bruns@sap.com>
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
skarlso-release-bot Bot pushed a commit to Skarlso/open-component-model that referenced this pull request May 21, 2026
…nent-model#2586)

#### What this PR does / why we need it
This PR migrates the following bindings to runtime.Typed credentials
- repository
- sigstore

Since we touch central interfaces, this is a breaking change.

For `sigstore`, this PR already introduces typed credentials and
identities and updates all code paths where possible. (identity is
mostly there for documentation, since we delayed the migration to typed
identities)

The migration path can be observed here:
open-component-model#2519

#### Which issue(s) this PR fixes
Contributes:
- open-component-model/ocm-project#1055

#### Testing
- breaking change only tested with binding tests
- go.work disabled, task test is green

---------

Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
Signed-off-by: Gerald Morrison (SAP) <gerald.morrison@sap.com>
Co-authored-by: Gerald Morrison (SAP) <gerald.morrison@sap.com> 6c9693c
matthiasbruns added a commit that referenced this pull request May 21, 2026
#### What this PR does / why we need it
This PR migrates the following bindings to runtime.Typed credentials
- oci

Since we cascade the repository breaking changes, set public consts to
private and change the spec, this is a breaking change.

The migration path can be observed here:
#2519

#### Which issue(s) this PR fixes
Contributes: 
- open-component-model/ocm-project#1055

#### Testing
- breaking change only tested with binding tests
- go.work disabled, task test is green

---------

Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
@jakobmoellerdev

Copy link
Copy Markdown
Member

superceded by #2599 as tracker

jakobmoellerdev added a commit that referenced this pull request May 21, 2026
#### What this PR does / why we need it

Migrates the `constructor` binding to use `runtime.Typed` credentials,
following the established pattern from:
- #2580 (blob, rsa, signing)
- #2594 (oci)

Updates the following interfaces from `map[string]string` →
`runtime.Typed`:
- `ResourceInputMethod.ProcessResource`
- `SourceInputMethod.ProcessSource`
- `ResourceDigestProcessor.ProcessResourceDigest`
- `ResourceRepository.DownloadResource`

Also migrates `resolveCredentials` to call `ResolveTyped` and bumps the
`credentials` dependency from `v0.0.10` → `v0.0.11`.

#### Which issue(s) this PR fixes

Contributes:
- open-component-model/ocm-project#1055

Part of the migration path:
#2519

#### Dependencies

This PR depends on #2594 (oci) being merged first.

#### Testing
- All existing constructor binding tests pass (`go test ./...`)
- Breaking change — callers must update mock implementations to accept
`runtime.Typed`

---------

Signed-off-by: Jakob Möller <contact@jakob-moeller.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/feature new feature, enhancement, improvement, extension size/l Large

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants