Skip to main content

Prefer the narrowest source

Use one-time access when the provider and capability support it. Save a credential in Darwin Vault only after explicit consent, or resolve an external-vault reference just in time without importing the secret.

Bind access precisely

  • Restrict access to the current user, AI, capability revision, Action, interaction, provider, and requested scopes.
  • Reject scope expansion or a provider change until the user authorizes a new interaction.
  • Treat authentication, Action approval, and payment authority as separate decisions.
  • Make every saved grant revocable without rewriting prior content-free Action receipts.

Keep secrets outside model context

Provider URLs, authorization codes, access and refresh tokens, passwords, TOTP seeds, private keys, and resolved vault values must not appear in prompts, Action results, logs, traces, analytics, or webhooks.

Use external vaults accurately

Resolve opaque item references through documented machine-access boundaries. Never ask for a password-manager master password, unrestricted export, recovery material, browser screen scrape, or access to vaults the integration cannot support.

Confirm the same Action

After OAuth or another browser step, read the same actionId. A popup closing or redirect completing is not proof that access was granted or that the Action resumed.

Test revocation and expiry

Test revoked provider access, rotated external-vault items, denied scopes, expired one-time access, a user closing the browser flow, duplicate callbacks, and an Action restart after authentication.
Last modified on September 22, 2026