Add a secret store
Enterprise. Add an AWS Secrets Manager or HashiCorp Vault (KV version 2) store to the environment. Anlyon authenticates to it first, without reading any secret (STS GetCallerIdentity, or Vault auth/token/lookup-self); if that fails nothing is saved and the request answers SECRET_STORE_CHECK_FAILED. The credential is encrypted and never returned. Requests to the store go through the same address checks as action dispatch, so a store on a private address is refused, unless a workspace admin allowed it in the secret store settings on a self-hosted edition.
/api/v2/secret-storesAuthorizationBearer token (Anlyon API key) · headerrequiredWorkspace API key sent as Authorization: Bearer <key>.
better-auth.session_tokenAPI key · cookierequiredBrowser session used by dashboard-only operations.
X-Request-IdstringOptional caller correlation ID. Unsafe or oversized values are replaced.
application/jsonnamestringrequiredtypestringrequiredaws_secrets_managerdescriptionstringconfigAwsSecretStoreConfigrequiredShow propertiesHide properties
regionstringrequiredauthstringrequiredaccess_key signs with the stored keys. assume_role uses them to assume roleArn first.
access_keyassume_roleroleArnstring | nullexternalIdstring | nullcredentialAwsSecretStoreCredentialrequiredShow propertiesHide properties
accessKeyIdstringrequiredsecretAccessKeystringrequiredallowedPathsstring[] | nullcacheTtlSecondsintegernamestringrequiredtypestringrequiredhashicorp_vaultdescriptionstringconfigVaultSecretStoreConfigrequiredShow propertiesHide properties
addressstring<uri>requiredThe Vault origin alone
namespacestring | nullVault Enterprise namespace.
mountstringThe KV version 2 mount.
authstringrequiredtokenapproleauthMountstring | nullThe AppRole auth mount. Default approle.
credentialVaultSecretStoreCredentialrequiredShow propertiesHide properties
tokenstringrequiredroleIdstringrequiredsecretIdstringrequiredallowedPathsstring[] | nullcacheTtlSecondsintegerSecret store settings and health returned; the credential is never exposed.
successbooleanrequiredtruedataSecretStorerequiredA secret store's settings and health. Its credential is never exposed by any API.
Show propertiesHide properties
idstringrequirednamestringrequiredtypestringrequiredaws_secrets_managerhashicorp_vaultdescriptionstring | nullrequiredconfigAwsSecretStoreConfig | VaultSecretStoreConfigrequiredShow propertiesHide properties
regionstringrequiredauthstringrequiredaccess_key signs with the stored keys. assume_role uses them to assume roleArn first.
access_keyassume_roleroleArnstring | nullexternalIdstring | nulladdressstring<uri>requiredThe Vault origin alone
namespacestring | nullVault Enterprise namespace.
mountstringThe KV version 2 mount.
authstringrequiredtokenapproleauthMountstring | nullThe AppRole auth mount. Default approle.
credentialKindstringrequiredWhich kind of credential is stored. The credential itself is never returned.
access_keytokenapproleallowedPathsstring[] | nullrequiredPath prefixes a secret may point at. Null means any path the credential can read.
cacheTtlSecondsintegerrequiredHow long a value read from the store is kept in the API process's memory, never on disk or in a shared cache. 0 reads the store at every dispatch.
healthobject | nullrequiredShow propertiesHide properties
statusstringrequiredactiveunreachablecheckedAtstring<date-time>requiredreasonstring | nullrequiredstore_unreachablestore_deniedreference_not_foundnullcreatedAtstring<date-time>requiredupdatedAtstring<date-time>requiredAccepted, not applied: the change loosens a guardrail, so a workspace admin has to approve it. Location is the request to poll.
successbooleanrequiredtruesignOffRequiredbooleanrequiredtruedataSignOffRequestrequiredA governance change that loosens a guardrail, asked for by an API key, a CLI login or an MCP session, waiting for a workspace admin. Give signOffUrl to a person; poll pollUrl.
Show propertiesHide properties
objectstringrequiredsign_off_requestidstringrequiredstatusstringrequiredpending until a workspace admin decides. applied: approved and in effect. rejected, expired (after 24 hours), cancelled (withdrawn by the credential) and failed (approved but could not be applied, see error): nothing changed.
pendingappliedrejectedexpiredcancelledfailedoperationstringrequiredpolicy.createpolicy.updatepolicy.deletepolicy_file.applyimpact_limit.updateimpact_limit.archivebudget.putbudget.deleteenvironment.resumeaction.createaction.updateaction.importsecret.putsecret_store.createsecret_store.updatesecret_store_settings.updateoauth_app.putenvironmentIdstring<uuid>requiredresourceobject | nullrequiredShow propertiesHide properties
typestringrequiredidstringrequirednamestringsummarystringrequiredchangesSignOffChange[]requiredShow propertiesHide properties
SignOffChangefieldstringrequiredfromany | nullrequiredThe value before. Never a secret value.
toany | nullrequiredThe value after. Never a secret value.
directionstringrequiredtighteninglooseningneutralreasonstringrequireddiffstringrequiredThe changes as plain text
signOffUrlstring<uri>requiredThe console page where a workspace admin approves or rejects it. Give this to a person.
pollUrlstringrequiredpollAfterSecondsintegerrequiredrequestedByobjectrequiredShow propertiesHide properties
typestringrequiredapi_keyoauth_clientsystemidstring | nullrequiredonBehalfOfstring | nullFor a CLI login or an MCP session
createdAtstring<date-time>requiredexpiresAtstring<date-time>requireddecidedAtstring<date-time> | nullrequireddecidedByobject | nullrequiredShow propertiesHide properties
typestringrequireduseridstringrequiredviastringrequiredconsoleemail_linkdecisionNotestring | nullrequiredresultany | nullrequiredWhen applied, what the original request would have returned: the limit, budget, policy or action as it now is.
errorobject | nullrequiredShow propertiesHide properties
codestringrequiredmessagestringrequiredBad Request - Invalid input data
successbooleanrequiredrequestIdstringrequiredCorrelation ID matching the X-Request-Id response header.
errorobjectrequiredShow propertiesHide properties
codestringmessagestringdetailsobjectfixErrorFixHow to get past this error, for a person or an agent. Present on refusals with a known next step, such as a missing scope or role, a plan or billing limit, a halted environment, or a missing secret, connected account, OAuth app or end-user header. Absent when there is no fix to give. Kept in production responses, unlike details.
Show propertiesHide properties
summarystringrequiredOne sentence that says what to do.
commandstringAn exact anlyon CLI command that fixes it. Absent when no command does.
urlstring<uri>An absolute console link where a person fixes it.
docsstring<uri>A docs page that explains it.
Unauthorized - Invalid or missing API key
successbooleanrequiredrequestIdstringrequiredCorrelation ID matching the X-Request-Id response header.
errorobjectrequiredShow propertiesHide properties
codestringmessagestringdetailsobjectfixErrorFixHow to get past this error, for a person or an agent. Present on refusals with a known next step, such as a missing scope or role, a plan or billing limit, a halted environment, or a missing secret, connected account, OAuth app or end-user header. Absent when there is no fix to give. Kept in production responses, unlike details.
Show propertiesHide properties
summarystringrequiredOne sentence that says what to do.
commandstringAn exact anlyon CLI command that fixes it. Absent when no command does.
urlstring<uri>An absolute console link where a person fixes it.
docsstring<uri>A docs page that explains it.
Authenticated credential lacks the required scope or workspace access.
successbooleanrequiredrequestIdstringrequiredCorrelation ID matching the X-Request-Id response header.
errorobjectrequiredShow propertiesHide properties
codestringmessagestringdetailsobjectfixErrorFixHow to get past this error, for a person or an agent. Present on refusals with a known next step, such as a missing scope or role, a plan or billing limit, a halted environment, or a missing secret, connected account, OAuth app or end-user header. Absent when there is no fix to give. Kept in production responses, unlike details.
Show propertiesHide properties
summarystringrequiredOne sentence that says what to do.
commandstringAn exact anlyon CLI command that fixes it. Absent when no command does.
urlstring<uri>An absolute console link where a person fixes it.
docsstring<uri>A docs page that explains it.
Not Found - Resource does not exist
successbooleanrequiredrequestIdstringrequiredCorrelation ID matching the X-Request-Id response header.
errorobjectrequiredShow propertiesHide properties
codestringmessagestringdetailsobjectfixErrorFixHow to get past this error, for a person or an agent. Present on refusals with a known next step, such as a missing scope or role, a plan or billing limit, a halted environment, or a missing secret, connected account, OAuth app or end-user header. Absent when there is no fix to give. Kept in production responses, unlike details.
Show propertiesHide properties
summarystringrequiredOne sentence that says what to do.
commandstringAn exact anlyon CLI command that fixes it. Absent when no command does.
urlstring<uri>An absolute console link where a person fixes it.
docsstring<uri>A docs page that explains it.
The store refused the credential (SECRET_STORE_CHECK_FAILED). Nothing was saved.
successbooleanrequiredrequestIdstringrequiredCorrelation ID matching the X-Request-Id response header.
errorobjectrequiredShow propertiesHide properties
codestringmessagestringdetailsobjectfixErrorFixHow to get past this error, for a person or an agent. Present on refusals with a known next step, such as a missing scope or role, a plan or billing limit, a halted environment, or a missing secret, connected account, OAuth app or end-user header. Absent when there is no fix to give. Kept in production responses, unlike details.
Show propertiesHide properties
summarystringrequiredOne sentence that says what to do.
commandstringAn exact anlyon CLI command that fixes it. Absent when no command does.
urlstring<uri>An absolute console link where a person fixes it.
docsstring<uri>A docs page that explains it.
Too Many Requests - Rate limit exceeded. A workspace's API requests are limited per minute and per UTC clock hour by plan; Retry-After says when to try again, and an hourly refusal names the limit and when the count resets. Successful responses carry the same limits in X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (the minute) and X-RateLimit-Limit-Hour, X-RateLimit-Remaining-Hour, X-RateLimit-Reset-Hour (the hour).
successbooleanrequiredrequestIdstringrequiredCorrelation ID matching the X-Request-Id response header.
errorobjectrequiredShow propertiesHide properties
codestringmessagestringdetailsobjectfixErrorFixHow to get past this error, for a person or an agent. Present on refusals with a known next step, such as a missing scope or role, a plan or billing limit, a halted environment, or a missing secret, connected account, OAuth app or end-user header. Absent when there is no fix to give. Kept in production responses, unlike details.
Show propertiesHide properties
summarystringrequiredOne sentence that says what to do.
commandstringAn exact anlyon CLI command that fixes it. Absent when no command does.
urlstring<uri>An absolute console link where a person fixes it.
docsstring<uri>A docs page that explains it.
The store did not answer (SECRET_STORE_CHECK_FAILED). Nothing was saved.
successbooleanrequiredrequestIdstringrequiredCorrelation ID matching the X-Request-Id response header.
errorobjectrequiredShow propertiesHide properties
codestringmessagestringdetailsobjectfixErrorFixHow to get past this error, for a person or an agent. Present on refusals with a known next step, such as a missing scope or role, a plan or billing limit, a halted environment, or a missing secret, connected account, OAuth app or end-user header. Absent when there is no fix to give. Kept in production responses, unlike details.
Show propertiesHide properties
summarystringrequiredOne sentence that says what to do.
commandstringAn exact anlyon CLI command that fixes it. Absent when no command does.
urlstring<uri>An absolute console link where a person fixes it.
docsstring<uri>A docs page that explains it.

