Repository navigation
feat(credentials): saved AWS and Databricks credentials with keyless OIDC - #9763
Draft
waleedlatif1 wants to merge 4 commits into
Draft
waleedlatif1 wants to merge 4 commits into
waleedlatif1 wants to merge 4 commits into
Conversation
…OIDC Adds an optional saved credential to every AWS block and the Databricks block, alongside the existing inline key fields, plus Sim's own workload-identity (OIDC) issuer so a credential can assume a customer's AWS role or federate into a Databricks service principal without any stored secret. Existing workflows are unchanged: the inline fields stay, show, and validate exactly as before until someone selects a saved credential. - Issuer at /oidc/workload (discovery + JWKS), signing key from WORKLOAD_IDENTITY_SIGNING_KEY; 404 and keyless option off when unset - Credential-scoped subjects, HMAC-bound to the preparing user and workspace, so a member cannot reuse another credential's subject - aws-service-account: access keys, keys + AssumeRole (external ID), or keyless AssumeRoleWithWebIdentity; resolved server-side per call - databricks-service-account: PAT, service principal M2M secret, or keyless RFC 8693 token federation - AWS families accept the executor-authorized credential through trusted operation context; clients add the session token only for that pair - S3 get_object signs x-amz-security-token for temporary credentials; inline signatures are byte-identical to before - Tool credential binding honors optional (required: false) policies
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
# Conflicts: # apps/sim/tools/generated/tool-metadata.ts # packages/deployment-config/src/integration-metadata.ts
…ntials - Models can no longer inject a credential selector (or the token, session token, or host derived from one) into a hybrid tool call, which would have swapped an agent tool's inline keys for another workspace credential - Databricks connections own the workspace host (authoritative `domain`) - Drop the advanced credential-ID input: with a single picker, "is a credential selected" can no longer disagree with the active canonical mode - OIDC subject proofs are bound to their provider - Databricks token and identity fetches refuse redirects - Correct the AWS module doc on presigned URLs carrying a session token
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Every AWS block (19) and the Databricks block can now use a saved credential. The inline key fields stay where they are.
Credentials can be keyless: Sim runs its own OIDC issuer (
/oidc/workload), so a credential can assume a customer's AWS role, or federate into a Databricks service principal, without storing any secret.AssumeRoleWithWebIdentity) · access keys that assume a role (optional external ID) · access keysExisting workflows don't change
serializer/saved-credentials.test.tspins this for all 21 blocks.awsClientCredentialsreturns the same{ accessKeyId, secretAccessKey }.get_objectinline signatures and presigned URLs are byte-identical to staging (golden test). The session-token header signature matches AWS SDK SigV4.oauth.required: false. No existing tool uses that value, so only the new hybrid tools are affected.WORKLOAD_IDENTITY_SIGNING_KEY, the issuer returns 404 and the keyless option shows an error. Keys and secrets still work.Security
WORKLOAD_IDENTITY_PREVIOUS_KEYkeeps the old key published during rotation.Deploy notes
WORKLOAD_IDENTITY_SIGNING_KEY(RSA PKCS#8 PEM) for each environment. Trigger workers need it too.<NEXT_PUBLIC_APP_URL>/oidc/workload. Customer trust policies pin it, so setWORKLOAD_IDENTITY_ISSUERexplicitly before anyone relies on it.Known limits
Tests
New suites cover the issuer (JWKS verification, audience, rotation, unconfigured), subject proofs (tamper, other user, other workspace, expiry), the AWS operation seam, the 21-block hybrid serializer contract, S3 signing goldens, the hybrid binding, and the Databricks helpers. Each new guard was reverted once to watch its test go red.