Skip to content

Confidential relay types, WorkflowExecution proto fields, and package move#1903

Open
nadahalli wants to merge 5 commits intomainfrom
tejaswi/relay-secrets-params
Open

Confidential relay types, WorkflowExecution proto fields, and package move#1903
nadahalli wants to merge 5 commits intomainfrom
tejaswi/relay-secrets-params

Conversation

@nadahalli
Copy link
Contributor

@nadahalli nadahalli commented Mar 17, 2026

Summary

  • Adds WorkflowOwner and WorkflowExecutionID to SecretsRequestParams. The relay DON handler needs these to build a valid vault secrets.get request (owner matching and execution ID validation).
  • Removes MasterPublicKey and Threshold from SecretsResponseResult. The enclave has both from its own config (EnclaveConfig.MasterPublicKey and EnclaveConfig.T, populated from on-chain DON config after DKG). The relay handler is a pass-through for encrypted shares only.
  • Bumps chainlink-protos (cre/go/v1alpha.23) and regenerates WorkflowExecution proto. Adds Owner and ExecutionId fields so workflow-level context flows inside the app-specific proto rather than the generic ComputeRequest type (per vreff's feedback on CC PR Add tests for reading an event #277).

Part of the remote-only secret fetching work where the enclave fetches secrets dynamically at runtime via enclave -> gateway -> relay DON -> VaultDON.

@nadahalli nadahalli requested a review from a team as a code owner March 17, 2026 14:52
Copilot AI review requested due to automatic review settings March 17, 2026 14:52
@github-actions
Copy link

👋 nadahalli, thanks for creating this pull request!

To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team.

Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks!

@github-actions
Copy link

github-actions bot commented Mar 17, 2026

⚠️ API Diff Results - github.com/smartcontractkit/chainlink-common

⚠️ Breaking Changes (1)

package github (1)
  • com/smartcontractkit/chainlink-common/pkg/capabilities/actions/confidentialrelay — 🗑️ Removed

✅ Compatible Changes (5)

package github (1)
  • com/smartcontractkit/chainlink-common/pkg/capabilities/v2/actions/confidentialrelay — ➕ Added
pkg/capabilities/v2/actions/confidentialworkflow.(*WorkflowExecution) (2)
  • GetExecutionId — ➕ Added

  • GetOwner — ➕ Added

pkg/capabilities/v2/actions/confidentialworkflow.WorkflowExecution (2)
  • ExecutionId — ➕ Added

  • Owner — ➕ Added


📄 View full apidiff report

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the confidential relay protocol request type so the relay DON handler can include workflow ownership and execution metadata when building a vault secrets.get request.

Changes:

  • Extend SecretsRequestParams with WorkflowOwner.
  • Extend SecretsRequestParams with WorkflowExecutionID.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Attestation string `json:"attestation,omitempty"`
WorkflowID string `json:"workflow_id"`
WorkflowOwner string `json:"workflow_owner"`
WorkflowExecutionID string `json:"workflow_execution_id"`
@nadahalli nadahalli force-pushed the tejaswi/relay-secrets-params branch from 6ca4d25 to acb562e Compare March 17, 2026 15:05
@nadahalli nadahalli changed the title Add WorkflowOwner and WorkflowExecutionID to SecretsRequestParams Update confidential relay protocol types for remote-only secret fetching Mar 17, 2026
…ublicKey/Threshold from response

SecretsRequestParams: added WorkflowOwner and WorkflowExecutionID.
The relay DON handler needs these to build a valid vault secrets.get
request (owner matching, execution ID validation).

SecretsResponseResult: removed MasterPublicKey and Threshold.
The enclave uses its own config for both (EnclaveConfig.MasterPublicKey
and EnclaveConfig.T from on-chain DON config, populated after DKG).
The relay handler is a pass-through for encrypted shares only.
@nadahalli nadahalli force-pushed the tejaswi/relay-secrets-params branch from acb562e to f480e53 Compare March 17, 2026 15:08
@nadahalli nadahalli requested a review from a team March 17, 2026 15:09
pavel-raykov
pavel-raykov previously approved these changes Mar 17, 2026
DylanTinianov
DylanTinianov previously approved these changes Mar 17, 2026
EnclavePublicKey string `json:"enclave_public_key"`
Attestation string `json:"attestation,omitempty"`
WorkflowID string `json:"workflow_id"`
WorkflowOwner string `json:"workflow_owner"` // Ethereum address (hex, 0x-prefixed)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We explicitly removed Owner from SecretIdentifier.

Is this field accessible or settable by the customer/user?

This field should be only set by our internal framework, and not the user.

Further, going forward, we will change the workflow owner to org_id as owner, so even if we need this, i would prefer to name it as owner

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This field is set by the enclave from attested workflow metadata. The user never touches it. The plumbing is: CRE engine populates WorkflowOwner from the on-chain workflow spec, the enclave includes it in the relay request, and VaultDON uses it to enforce that secret owners match (the check in capability.go lines 113-121 in core).

I can change the name to just owner if that's the preferred direction wrto the org_id migration. The semantics stay the same either way.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, owner name is better going forward.

Adds Owner and ExecutionId fields to WorkflowExecution proto.
These carry workflow-level context in the app-specific proto
rather than the generic ComputeRequest type.

chainlink-protos: cre/go/v1alpha.23
@nadahalli nadahalli changed the title Update confidential relay protocol types for remote-only secret fetching Confidential relay types, WorkflowExecution proto fields, and package move Mar 18, 2026
@nadahalli nadahalli force-pushed the tejaswi/relay-secrets-params branch from 592cd48 to 6976732 Compare March 18, 2026 23:59
Aligns with confidentialworkflow which is already under v2/actions/.
Downstream consumers (CC remote_dispatcher, chainlink relay handler)
need to update their import paths.
@vreff
Copy link
Contributor

vreff commented Mar 19, 2026

Looks like there is failing CI. Also is this an action? Does it go in that folder?

@nadahalli
Copy link
Contributor Author

Looks like there is failing CI. Also is this an action? Does it go in that folder?

failing CI is for some other unrelated thing. Not our changes. Not sure how to fix that.

@nadahalli
Copy link
Contributor Author

Looks like there is failing CI. Also is this an action? Does it go in that folder?

And no, it's not an action. It stays in capabilities. If it has to move, it can be a TODO for after the release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants