Repository navigation
improvement(credentials): hold unsaved keyless subjects so trust policies applied later still match - #10011
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
[Medium impact] The PR appears safe to merge, with the earlier reconnect-mode issue fixed and no new actionable findings. SummarySim now holds unsaved keyless subjects for 30 days, so delayed trust policies can keep using the same subject.
The earlier reconnect-mode finding is fixed:
|
…cies applied later still match
…, keep keyless reconnects on their mode, and harden held-subject renewal
a78d52d to
6d01b28
Compare
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 40 files
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
…e keyless-subject usage fence
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
Summary
workload_identity_pending_subject(migration0457, additive), one row per workspace, user and provider. A person keeps at most 20 held subjects per provider in a workspace; the least recently shown are dropped.POST /api/v2/credentials/workload-identity/subjectsstill issues a new subject per call.subjectrenews the proof for a held subject:sim credentials keyless-subject <provider> --subject <subject>.subjectIssuedAtandsubjectHeldUntil.WORKLOAD_IDENTITY_SUBJECT_NOT_PENDING. The CLI's hints now say "renew" for an expired proof./Me) with plainfetch. That bypassed the organization's outbound routing, so the check left from shared IPs and a workspace whose IP access list allows only the organization's dedicated egress IPs returned 403.secureFetchWithValidation, the same guarded and org-routed path the Snowflake and client-credentials verifiers use. The token exchange is unchanged.Type of Change
Testing
workload-identity-pending-subject.integration.ts(real Postgres, provisioned through the versioned migrations) covers:workload-identity-subject-reuse.integration.tspasses. Both suites now serve the Databricks identity fixture through the egress guard.--subject, an empty--subject, and the renewal hints.bun run lint,check:audits(all),check:migrations origin/staging, the drizzle schema sync,check-block-registry.ts origin/stagingandcheck:test-typespass.Checklist
test-auditauthoring gate)