Repository navigation
improvement(credentials): resolve agent fallback credentials once, Vanta 401 grace, true refusal codes, headless client-credential modes, and registry cleanups - #9977
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
[High impact] The PR appears safe to merge; no new actionable issue was found. SummaryThis PR improves saved-credential calls and makes client-credentials modes available to headless callers.
|
…nta 401 grace, true refusal codes, headless client-credential modes, and registry cleanups
…S3 saved-credential setup flag
waleedlatif1
force-pushed
the
improvement/credential-refinements
branch
from
November 13, 2026 04:02
3d824dc to
10f3764
Compare
Collaborator
Author
Collaborator
Author
|
@cubic-dev-ai review this PR |
Contributor
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
This was referenced Nov 13, 2026
This branch was successfully 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.
Summary
Follow-ups from the v0.9.55 credential audits.
Behavior fixes
Agent block: resolves its saved Vertex/Bedrock credential once per call instead of once per same-provider fallback attempt. A Bedrock fallback no longer repeats the STS AssumeRole, the authz check and the audit row. Cross-provider candidates never resolve it. Router and Evaluator already work this way.
Vanta: keeps a token minted within the last minute after a 401, the same rule the generic tool path uses. An endpoint that keeps returning 401 can't force a mint on every call, and Vanta limits mints. The 60s constant now lives in one place (
token-request-resilience.ts).Coordinated client credentials: a fresh refusal keeps its real code. A host the egress guard refuses (ServiceNow or Infisical, for example) shows
host_not_allowedon the first call instead ofprovider_unavailable. Replays from the memo still use the stored code.Google keyless refusals: each says what's wrong (wrong impersonated account, scope not covered, service not delegated, not a Google Cloud tool).
TokenServiceAccountValidationErrorgains amessageoption and auserMessage, and generic token resolution holds no Google copy. Codes and statuses are unchanged.Headless client-credentials modes: the provider catalog lists
authMethod,clientIdandclientSecret(required only forclient_credentials) for ServiceNow, Infisical, Shopify, Linear and the Atlassian service account. The CLI checks required fields per auth method. These modes could only be created from the UI before. The change is additive: existing catalog fields and theirrequiredvalues are unchanged.Amplitude and Railway: both use a dropdown, like the other region providers. A DNS failure is
provider_unavailable, not a typo. A default-region Amplitude credential is named "Amplitude"; existing names are kept.S3 saved-credential setup flag removed: the
knowledge-connector-saved-credentialsflag (and itsKNOWLEDGE_CONNECTOR_SAVED_CREDENTIALSfallback) only gated setup during the mixed-version deploy window, and the release that reads these connectors is now live on the app and workers. The saved AWS credential option for S3 connectors is always offered. The credential-service, authorization and key-switch checks on create and access update are unchanged. Docs no longer say "where enabled".Refused hosts in token responses:
host_not_allowednow maps to a 400 telling the caller to reconnect with a public host, instead of a generic 401.Cleanups (no behavior change)
tokenReplacesParamsargument oftokenCredentialOAuthand its stale TSDoc, and reverted the saved-credential contract relaxation that only existed for it.isSavedCredentialPicker: keyed on the saved-credential registry, so ordinary OAuth pickers (Greenhouse, Help Scout, Ramp) no longer match.credentialSuppliedParamsForis identical across all 9,824 block/tool pairs.isTokenServiceAccountFieldRequired(field, authMethod?)) is used by the secret builder, the contract and the catalog.APOLLO_CREDENTIAL_TYPE_PARAM, oneAwsSigningKeystype and helper, one exportedTOKEN_AUTH_METHOD.domainIsFixedChoice:domainIsVendorRegionis renamed to this. It covers fixed vendor choices such as regions and token types.Type of Change
Testing
host_not_allowed.provider_unavailable.vanta-token.integration.ts(23) andcoordinated-client-token.integration.ts(32) pass against a throwaway local Postgres.bun run lintandcheck-block-registry.ts origin/stagingpass.check:openapi,check:cli-api,check:cli-docs,check:mcp-operations,check:tool-metadataandcheck:integration-catalog.check:api-validation:strict,check:test-patterns,check:comment-hygiene,check:explicit-any,check:client-boundary,check:boundaries,check:utils,check:file-names,check:docsandcheck:tool-registry-boundary --check.Checklist
test-auditauthoring gate)