Manage App Connections
connectionsA v2 app's Connections: the stored credential (a static header token, or a full generic OAuth2 client) a manifest webhook rule authenticates its delivery target with, bound to a host so the credential can never be exfiltrated to another one. There is no update action: change a connection by deleting and recreating it. Actions: create stores a static or oauth2 connection and returns its metadata, never the secret; list returns the app's connections as metadata plus a non-reversible fingerprint, never any secret; delete is idempotent; consent_url builds (never fetches) the browser URL that completes an oauth2 connection's consent, since that is inherently a human-in-a-browser step an agent key cannot complete. A newly created oauth2 connection starts in pending_auth until the owner opens the consent_url and approves.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | create only. Defaults to `static`. | |
| name | No | create / delete / consent_url. The connection name (lowercase, starting alphanumeric, up to 64 chars) that a manifest webhook rule's `connection` field references. | |
| label | No | create only. Optional owner-facing label. | |
| action | Yes | create: store a webhook connection, a stored credential (static header token or a full generic OAuth2 client) a manifest webhook rule authenticates its target with (app_id+name+allowed_host, plus kind-specific fields). list: the app's connections as metadata plus a non-reversible fingerprint, never any secret (app_id). delete: idempotent (app_id+name). consent_url: build (never fetch) the browser URL that completes an oauth2 connection's owner consent (app_id+name); hand it to the signed-in owner to open, since an agent key cannot complete OAuth consent itself. | |
| app_id | Yes | The app id. | |
| scopes | No | create only (oauth2). Space-delimited scopes for the authorize request. | |
| provider | No | create only. Freeform display label only, e.g. "hubspot"; not validated against any allowlist. | |
| client_id | No | create only, required for kind=oauth2. Your OAuth2 app's client id. | |
| auth_params | No | create only (oauth2). Extra key/values merged into the authorize redirect (e.g. to request offline access). | |
| auth_scheme | No | create only (oauth2). The scheme the access token is sent under. Defaults to "Bearer"; set e.g. "Zoho-oauthtoken" for a non-Bearer provider. | |
| header_name | No | create only (static). The header the credential rides in. Defaults to "Authorization". | |
| allowed_host | No | create only, required for both kinds. The host-binding exfiltration defence: an exact DNS host ("api.hubapi.com") or a single leftmost wildcard ("*.zohoapis.com"). The stored credential is attached to a delivery only when its url host matches; a rule later repointed elsewhere fails delivery rather than sending the secret to the wrong host. | |
| header_value | No | create only, required for kind=static. The header value to send, e.g. "Bearer sk_live_...". Encrypted at rest and never returned by any call. | |
| token_params | No | create only (oauth2). Extra key/values merged into the token POST. | |
| authorize_url | No | create only, required for kind=oauth2. The provider's OAuth2 authorize endpoint (https; rejected if it resolves to a private/loopback/metadata address). | |
| client_secret | No | create only, required for kind=oauth2. Your OAuth2 app's client secret. Encrypted at rest and never returned by any call. | |
| instance_field | No | create only (oauth2). The name of a token-response JSON field holding the API base URL (e.g. "instance_url"). When set, the relay re-binds allowed_host to that host after consent and resolves relative rule urls against it. | |
| token_endpoint | No | create only, required for kind=oauth2. The provider's OAuth2 token endpoint (same https + SSRF rules as authorize_url). |