The connection resource allows exposing internal services from your internal infra structure to users.
Types of Connections
The definition of this resource represent how clients will be able to interact with internal resources.
Each type/subtype may represent a distinct implementation:
application/<subtype> - An alias to map distinct types of shell applications (e.g.: python, ruby, etc)
application/tcp - Forward TCP connections
This type requires the following environment variables:
HOST: ip or dns of the internal service
PORT: the port of the internal service
custom - Any custom shell application
database/<subtype> - Allow connecting to databases through multiple clients (Webapp, cli, IDE’s)
Each <subtype> has distinct environment variables that are allowed to be configured, refer to our documentation for more information.
Tags
Tags are key/value pairs that are attached to objects such as Connections. Tags are intended to be used to specify identifying attributes of objects that are meaningful and relevant to users, but do not directly imply semantics to the core system.
Equality- or inequality-based requirements allow filtering by tags keys and values. Matching objects must satisfy all of the specified tag constraints, though they may have additional tags as well. Three kinds of operators are admitted =,!=. The first represent equality, while the last represents inequality. For example:
environment = productiontier != frontend
The former selects all resources with key equal to environment and value equal to production. The latter selects all resources with key equal to tier and value distinct from frontend. One could filter for resources in production excluding frontend using the comma operator: environment=production,tier!=frontend
Attributes associated with this connection. Includes Hoop-managed
attributes (e.g. the active protection profile attribute); omitting a
managed name on update detaches the connection from it.
Is the shell command that is going to be executed when interacting with this connection.
This value is required if the connection is going to be used from the Webapp.
JitAccessDurationSec is the fixed access duration in seconds enforced by a JIT access request rule.
When set, the user cannot choose a custom duration and must request access for this exact window.
MCPOAuthFlowID adopts a completed MCP OAuth login into a durable grant
for this connection. Write-only, and only meaningful for the "mcpproxy"
subtype.
The login runs before the connection exists, so the token it obtained is
keyed by the flow rather than by connection. Passing the flow id here at
save time joins the two: the gateway stores the refresh token against
this connection and renews the access token at every session open,
instead of relying on the frozen HEADER_AUTHORIZATION value alone, which
stops working when the provider's token expires.
Write-only is enforced by ToOpenApi, which never populates this field —
not by a struct tag. swag reads readonly and has no writeonly
counterpart (field_parser.go only consults readOnlyTag), so the tag that
used to sit here was inert and the published spec advertised the field
as readable. The omitempty keeps it out of every response body.
Secrets are environment variables that are going to be exposed
in the runtime of the connection:
{ envvar:[env-key]: [base64-val] } - Expose the value as environment variable
{ filesystem:[env-key]: [base64-val] } - Expose the value as a temporary file path creating the value in the filesystem
The value could also represent an integration with a external provider:
{ envvar:[env-key]: _aws:[secret-name]:[secret-key] } - Obtain the value dynamically in the AWS secrets manager and expose as environment variable
{ envvar:[env-key]: _envjson:[json-env-name]:[json-env-key] } - Obtain the value dynamically from a JSON env in the agent runtime. Example: MYENV={"KEY": "val"}
Attributes associated with this connection. Includes Hoop-managed
attributes (e.g. the active protection profile attribute); omitting a
managed name on update detaches the connection from it.
Is the shell command that is going to be executed when interacting with this connection.
This value is required if the connection is going to be used from the Webapp.
EffectiveFeatures reports which features will actually act on this connection,
resolving attribute-based associations as well as direct ones.
Null means "unknown", never "nothing is active" — the two must not be confused by
a caller deciding whether to warn a user. It is null on the list endpoint, which
does not resolve it, and on the detail endpoint when resolution failed (the
gateway logs the failure).
Deliberately not omitempty: an absent key and an explicit null are different
contracts, and the one documented here is null.
JitAccessDurationSec is the fixed access duration in seconds enforced by a JIT access request rule.
When set, the user cannot choose a custom duration and must request access for this exact window.
Hoop-managed attributes associated with this connection (e.g. the
active protection profile attribute). Computed on reads; manage the
association through the attributes field.
MCPOAuthFlowID adopts a completed MCP OAuth login into a durable grant
for this connection. Write-only, and only meaningful for the "mcpproxy"
subtype.
The login runs before the connection exists, so the token it obtained is
keyed by the flow rather than by connection. Passing the flow id here at
save time joins the two: the gateway stores the refresh token against
this connection and renews the access token at every session open,
instead of relying on the frozen HEADER_AUTHORIZATION value alone, which
stops working when the provider's token expires.
Write-only is enforced by ToOpenApi, which never populates this field —
not by a struct tag. swag reads readonly and has no writeonly
counterpart (field_parser.go only consults readOnlyTag), so the tag that
used to sit here was inert and the published spec advertised the field
as readable. The omitempty keeps it out of every response body.
MCPOAuthGranted reports that a durable MCP OAuth grant exists for this
connection, so its credential is renewed from a refresh token at every
session open rather than frozen at the value it was authorized with.
The edit screen cannot infer this from the env vars. A brokered OAuth
login and a pasted token both end up as one HEADER_AUTHORIZATION, and
MCP_AUTH collapses "oauth" to "static" because that is all the agent
needs to know (see services.MCPOAuthGrantSubType). Without this field
the form has to guess which mode the admin chose, guesses "static", and
an OAuth connection reopens offering to replace a token it should be
offering to re-authorize.
Presence only — no token, no expiry, nothing the grant holds.
MCPOAuthWarning reports that the connection was saved but the MCP OAuth
login named by mcp_oauth_flow_id was not attached to it. Present only on
the create/update response that produced it.
The save succeeded and the connection still works on its frozen
HEADER_AUTHORIZATION, so this is not an error status. What it is not is
silent: without a grant the credential is never renewed, the connection
stops working the moment the provider expires that token, and the admin
needs to hear it at save time rather than from a failing session days
later.
Example:
"the oauth login authorized https://a.example/mcp but the connection points at https://b.example/mcp"
Secrets are environment variables that are going to be exposed
in the runtime of the connection:
{ envvar:[env-key]: [base64-val] } - Expose the value as environment variable
{ filesystem:[env-key]: [base64-val] } - Expose the value as a temporary file path creating the value in the filesystem
The value could also represent an integration with a external provider:
{ envvar:[env-key]: _aws:[secret-name]:[secret-key] } - Obtain the value dynamically in the AWS secrets manager and expose as environment variable
{ envvar:[env-key]: _envjson:[json-env-name]:[json-env-key] } - Obtain the value dynamically from a JSON env in the agent runtime. Example: MYENV={"KEY": "val"}
SecretsUpdatedAt is the timestamp of the last replacement of any inline
secret value for this connection. Null when no inline secret has been
modified since the write-only secrets feature was introduced. References
to external providers (AWS Secrets Manager, Vault, IAM RDS) do not
affect this field.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Hoop.dev - Automated Access and Data Protection","colors":{"primary":"#3E63DD","light":"#8DA2EF","dark":"#3E63DD"},"logo":{"light":"https://mintcdn.com/hoopdev/ndV-rRL4ZXZJLXJY/logo/light.svg?fit=max\u0026auto=format\u0026n=ndV-rRL4ZXZJLXJY\u0026q=85\u0026s=0091927110c2d4309aac8b7862009f98","dark":"https://mintcdn.com/hoopdev/ndV-rRL4ZXZJLXJY/logo/dark.svg?fit=max\u0026auto=format\u0026n=ndV-rRL4ZXZJLXJY\u0026q=85\u0026s=97a884bf002c59bb6af3ddd2b6f3c39f","href":"https://hoop.dev"},"favicon":"https://mintcdn.com/hoopdev/sPLs9WFJMpxuZaYG/favicon.svg?fit=max\u0026auto=format\u0026n=sPLs9WFJMpxuZaYG\u0026q=85\u0026s=de046db57ba72a7e5d7c005a63e5a0c8","appearance":{"default":"light"},"navbar":{"links":[{"href":"https://use.hoop.dev","label":"Sign In"}],"primary":{"type":"button","label":"Get started","href":"https://hoop.dev/start"}},"footer":{"socials":{"x":"https://x.com/hoopdotdev","github":"https://github.com/hoophq","linkedin":"https://www.linkedin.com/company/hoopdev"},"links":[{"header":"Legacy","items":[{"label":"Hoop Gateway","href":"https://hoop.dev/docs/gateway/overview"}]}]},"fonts":{"heading":{"family":"Inter","weight":700},"body":{"family":"Inter"}},"styling":{"codeblocks":"dark","latex":false},"errors":{"404":{"redirect":true}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hoopdev","hasAudioNarration":false,"actualSubdomain":"hoopdev","customDomains":["mintlify.hoop.dev"],"gitSource":{"type":"github","owner":"hoophq","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4d4c5a3796f569fcccad9","collectionId":"2babc989-86f4-4a46-9d06-7f34cfa3e0bb","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4d4c5a3796f569fcccad9"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4d4c5a3796f569fcccad9","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API Reference","count":262},{"language":"default","tag":"Documentation","count":58},{"language":"default","tag":"Sidecar","count":44},{"language":"default","tag":"Reference","count":40},{"language":"default","tag":"Sidecars","count":30},{"language":"default","tag":"Connections","count":25},{"language":"default","tag":"Server Management","count":21},{"language":"default","tag":"Protocols","count":19},{"language":"default","tag":"Runbooks","count":16},{"language":"default","tag":"Sessions","count":15}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--hoop-heading:#0F1631;--hoop-body:#1A1A1A;--hoop-muted:#6E6E6E;--hoop-indigo:#3E63DD;--hoop-indigo-text:#3A5BC7;--hoop-indigo-soft:#E6EDFE;--hoop-indigo-dark:#9EB1FF;--hoop-gray-100:#F7F7F7;--hoop-gray-200:#EBEBEB;--hoop-gray-300:#DEDEDE;--hoop-gray-400:#C4C4C4;--hoop-sans:'Inter', system-ui, -apple-system, sans-serif;--hoop-mono:'JetBrains Mono', 'SF Mono', monospace;--sand-100:#F7F7F7;--sand-100-rgb:247, 247, 247;--sand-200:#EBEBEB;--sand-300:#DEDEDE;--sand-400:#C4C4C4;--sand-500:#8E8E8E;--sand-500-rgb:142, 142, 142;--warm-gold:#8DA2EF;--warm-gold-rgb:141, 162, 239;--bronze:#5A5A5A;--bronze-rgb:90, 90, 90;--bronze-dark:#333333;--bronze-dark-rgb:51, 51, 51;--espresso:#0F1631;--espresso-rgb:15, 22, 49;--error:#6E6E6E;--error-rgb:110, 110, 110;--success:#30A46C;--success-rgb:48, 164, 108;--prompt:#8DA2EF;--gradient-dark-start:#0F1631;--gradient-dark-start-rgb:15, 22, 49;--gradient-dark-mid:#141B38;--gradient-dark-end:#1A2142;--mono:'JetBrains Mono', 'SF Mono', monospace;--sans:'Inter', system-ui, -apple-system, sans-serif;--display:'Inter', system-ui, sans-serif}:root:not(.dark) #body-content,:root:not(.dark) #body-content blockquote,:root:not(.dark) #body-content dd,:root:not(.dark) #body-content li,:root:not(.dark) #body-content p,:root:not(.dark) #body-content span,:root:not(.dark) #body-content td{color:var(--hoop-body)!important}:root:not(.dark) #body-content h1,:root:not(.dark) #body-content h2,:root:not(.dark) #body-content h3,:root:not(.dark) #body-content h4,:root:not(.dark) #body-content h5,:root:not(.dark) #body-content h6,:root:not(.dark) #body-content strong{color:var(--hoop-heading)!important;letter-spacing:-.03em}.prose strong{font-weight:600}:root:not(.dark) #header #page-title,:root:not(.dark) #header h1{color:var(--hoop-heading)!important;font-weight:700!important;font-size:2.75rem!important;line-height:1.04!important;letter-spacing:-.04em!important}:root.dark #header #page-title,:root.dark #header h1{font-weight:700!important;font-size:2.75rem!important;line-height:1.04!important;letter-spacing:-.04em!important}#header #page-title~p,#header p:first-of-type{font-size:1.2rem!important;line-height:1.5!important;color:#5a6178!important}:root.dark #header #page-title~p,:root.dark #header p:first-of-type{color:#9ba1b8!important}#page-title{margin-bottom:.75rem!important}#header{padding-bottom:.5rem}:root.dark #body-content h2,:root:not(.dark) #body-content h2{margin-top:2.75rem!important;margin-bottom:1rem!important}:root.dark #body-content h3,:root:not(.dark) #body-content h3{margin-top:2rem!important}html[data-current-path=\"/introduction/getting-started\"] #header #page-title{font-size:3.25rem!important;line-height:1!important;letter-spacing:-.045em!important}html[data-current-path=\"/introduction/getting-started\"] #header #page-title~p,html[data-current-path=\"/introduction/getting-started\"] #header p:first-of-type{font-size:1.35rem!important;max-width:40ch}html[data-current-path=\"/introduction/getting-started\"] #header{padding-bottom:1rem}:root:not(.dark) #body-content a{color:var(--hoop-indigo-text)!important;text-decoration-color:transparent;text-underline-offset:2px;transition:text-decoration-color .15s ease}:root:not(.dark) #body-content a:hover{text-decoration-color:var(--hoop-indigo-text)}:root:not(.dark) #body-content :not(pre)>code{background:var(--hoop-indigo-soft);color:var(--hoop-indigo-text)!important;border-radius:4px;padding:2px 6px;font-size:.875em}:root:not(.dark) #body-content table thead th{color:var(--hoop-heading)!important;font-weight:600}:root:not(.dark) #sidebar a{color:#333;transition:color .15s ease}#sidebar a,.card{border-radius:0!important}:root:not(.dark) #sidebar a:hover{color:var(--hoop-heading)}:root:not(.dark) #sidebar a[data-active=true]{color:var(--hoop-indigo-text);font-weight:500}:root:not(.dark) #navbar{border-bottom:1px solid var(--hoop-gray-200)}:root:not(.dark) .card{border:1px solid var(--hoop-gray-200);transition:border-color .15s ease}:root:not(.dark) .card:hover{border-color:var(--hoop-indigo)}:root:not(.dark) .code-block{border-radius:8px;border:1px solid var(--hoop-gray-200)}:root:not(.dark) #footer{border-top:1px solid var(--hoop-gray-200)}:root:not(.dark) .tabs [data-active=true]{color:var(--hoop-indigo-text);border-color:var(--hoop-indigo)}:root.dark #body-content a{color:var(--hoop-indigo-dark)!important}:root.dark #sidebar a[data-active=true]{color:var(--hoop-indigo-dark);font-weight:500}:root.dark .card:hover{border-color:var(--hoop-indigo)}[class*=rounded-]:not([class*=rounded-full]){border-radius:0!important}#body-content input:not([type=checkbox]):not([type=radio]),#navbar [class~=\"group/search\"],input[type=email],input[type=password],input[type=search],input[type=text],input[type=url]{border-radius:9999px!important}#navbar a [class*=rounded-],#navbar a[class*=rounded-],#navbar button,#navbar button [class*=rounded-],#sidebar a div[class~=rounded-md],.feedback-toolbar a[class*=rounded-],[class*=chat-assistant] div[class*=rounded-],button[class][class*=rounded-]{border-radius:9999px!important}[data-badge]{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}::selection{background:rgba(62,99,221,.15)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--hoop-gray-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--hoop-gray-400)}"}],"page":{"pagePath":"api-reference/connections/create-connection","slug":"/api-reference/connections/create-connection","pageMetadata":{"title":"Create Connection","description":"The connection resource allows exposing internal services from your internal infra structure to users.\n\n### Types of Connections\n\nThe definition of this resource represent how clients will be able to interact with internal resources.\n\nEach type/subtype may represent a distinct implementation:\n\n- `application/\u003csubtype>` - An alias to map distinct types of shell applications (e.g.: python, ruby, etc)\n- `application/tcp` - Forward TCP connections\n\n This type requires the following environment variables:\n - `HOST`: ip or dns of the internal service\n - `PORT`: the port of the internal service\n\n- `custom` - Any custom shell application\n- `database/\u003csubtype>` - Allow connecting to databases through multiple clients (Webapp, cli, IDE's)\n\nEach `\u003csubtype>` has distinct environment variables that are allowed to be configured, refer to our [documentation](https://hoop.dev/docs) for more information.\n\n### Tags\n\nTags are key/value pairs that are attached to objects such as Connections. Tags are intended to be used to specify identifying attributes of objects that are meaningful and relevant to users, but do not directly imply semantics to the core system.\n\n```json\n{\n \"connection_tags\": {\n \"environment\": \"production\",\n \"component\": \"backend\"\n }\n}\n```\n\nEquality- or inequality-based requirements allow filtering by tags keys and values. Matching objects must satisfy all of the specified tag constraints, though they may have additional tags as well. Three kinds of operators are admitted `=`,`!=`. The first represent equality, while the last represents inequality. For example:\n\n```\nenvironment = production\ntier != frontend\n```\n\nThe former selects all resources with key equal to `environment` and value equal to `production`. The latter selects all resources with key equal to `tier` and value distinct from `frontend`. One could filter for resources in production excluding frontend using the comma operator: environment=production,tier!=frontend\n","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /connections","href":"/api-reference/connections/create-connection","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n h3: \"h3\",\n li: \"li\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n }, {CodeBlock} = _components;\n if (!CodeBlock) _missingMdxReference(\"CodeBlock\", true);\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"The connection resource allows exposing internal services from your internal infra structure to users.\"\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Types of Connections\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"The definition of this resource represent how clients will be able to interact with internal resources.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Each type/subtype may represent a distinct implementation:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"application/\u003csubtype>\"\n }), \" - An alias to map distinct types of shell applications (e.g.: python, ruby, etc)\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"application/tcp\"\n }), \" - Forward TCP connections\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"This type requires the following environment variables:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"HOST\"\n }), \": ip or dns of the internal service\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"PORT\"\n }), \": the port of the internal service\"]\n }), \"\\n\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"custom\"\n }), \" - Any custom shell application\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"database/\u003csubtype>\"\n }), \" - Allow connecting to databases through multiple clients (Webapp, cli, IDE’s)\"]\n }), \"\\n\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Each \", _jsx(_components.code, {\n children: \"\u003csubtype>\"\n }), \" has distinct environment variables that are allowed to be configured, refer to our \", _jsx(_components.a, {\n href: \"https://hoop.dev/docs\",\n children: \"documentation\"\n }), \" for more information.\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Tags\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Tags are key/value pairs that are attached to objects such as Connections. Tags are intended to be used to specify identifying attributes of objects that are meaningful and relevant to users, but do not directly imply semantics to the core system.\"\n }), \"\\n\", _jsx(CodeBlock, {\n numberOfLines: \"6\",\n language: \"json\",\n children: _jsx(_components.pre, {\n className: \"shiki shiki-themes github-light-default dark-plus\",\n style: {\n backgroundColor: \"#ffffff\",\n \"--shiki-dark-bg\": \"#0B0C0E\",\n color: \"#1f2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n language: \"json\",\n children: _jsxs(_components.code, {\n language: \"json\",\n numberOfLines: \"6\",\n children: [_jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"connection_tags\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": {\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"environment\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"production\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"component\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"backend\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \" }\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"}\"\n })\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Equality- or inequality-based requirements allow filtering by tags keys and values. Matching objects must satisfy all of the specified tag constraints, though they may have additional tags as well. Three kinds of operators are admitted \", _jsx(_components.code, {\n children: \"=\"\n }), \",\", _jsx(_components.code, {\n children: \"!=\"\n }), \". The first represent equality, while the last represents inequality. For example:\"]\n }), \"\\n\", _jsx(CodeBlock, {\n numberOfLines: \"3\",\n language: \"text\",\n children: _jsx(_components.pre, {\n className: \"shiki shiki-themes github-light-default dark-plus\",\n style: {\n backgroundColor: \"#ffffff\",\n \"--shiki-dark-bg\": \"#0B0C0E\",\n color: \"#1f2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n language: \"text\",\n children: _jsxs(_components.code, {\n language: \"text\",\n numberOfLines: \"3\",\n children: [_jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n children: \"environment = production\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n children: \"tier != frontend\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {})\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The former selects all resources with key equal to \", _jsx(_components.code, {\n children: \"environment\"\n }), \" and value equal to \", _jsx(_components.code, {\n children: \"production\"\n }), \". The latter selects all resources with key equal to \", _jsx(_components.code, {\n children: \"tier\"\n }), \" and value distinct from \", _jsx(_components.code, {\n children: \"frontend\"\n }), \". One could filter for resources in production excluding frontend using the comma operator: environment=production,tier!=frontend\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Create Connection","description":"The connection resource allows exposing internal services from your internal infra structure to users.\n\n### Types of Connections\n\nThe definition of this resource represent how clients will be able to interact with internal resources.\n\nEach type/subtype may represent a distinct implementation:\n\n- `application/\u003csubtype>` - An alias to map distinct types of shell applications (e.g.: python, ruby, etc)\n- `application/tcp` - Forward TCP connections\n\n This type requires the following environment variables:\n - `HOST`: ip or dns of the internal service\n - `PORT`: the port of the internal service\n\n- `custom` - Any custom shell application\n- `database/\u003csubtype>` - Allow connecting to databases through multiple clients (Webapp, cli, IDE's)\n\nEach `\u003csubtype>` has distinct environment variables that are allowed to be configured, refer to our [documentation](https://hoop.dev/docs) for more information.\n\n### Tags\n\nTags are key/value pairs that are attached to objects such as Connections. Tags are intended to be used to specify identifying attributes of objects that are meaningful and relevant to users, but do not directly imply semantics to the core system.\n\n```json\n{\n \"connection_tags\": {\n \"environment\": \"production\",\n \"component\": \"backend\"\n }\n}\n```\n\nEquality- or inequality-based requirements allow filtering by tags keys and values. Matching objects must satisfy all of the specified tag constraints, though they may have additional tags as well. Three kinds of operators are admitted `=`,`!=`. The first represent equality, while the last represents inequality. For example:\n\n```\nenvironment = production\ntier != frontend\n```\n\nThe former selects all resources with key equal to `environment` and value equal to `production`. The latter selects all resources with key equal to `tier` and value distinct from `frontend`. One could filter for resources in production excluding frontend using the comma operator: environment=production,tier!=frontend\n","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /connections","href":"/api-reference/connections/create-connection","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/hoopdev/0abad469b68aca32/scripts.js","/docs/_mintlify/custom/hoopdev/8b86904971d4ca88/scripts/process-connections.js"],"openApiReferenceData":{"operation":{"description":"The connection resource allows exposing internal services from your internal infra structure to users.\n\n### Types of Connections\n\nThe definition of this resource represent how clients will be able to interact with internal resources.\n\nEach type/subtype may represent a distinct implementation:\n\n- `application/\u003csubtype>` - An alias to map distinct types of shell applications (e.g.: python, ruby, etc)\n- `application/tcp` - Forward TCP connections\n\n This type requires the following environment variables:\n - `HOST`: ip or dns of the internal service\n - `PORT`: the port of the internal service\n\n- `custom` - Any custom shell application\n- `database/\u003csubtype>` - Allow connecting to databases through multiple clients (Webapp, cli, IDE's)\n\nEach `\u003csubtype>` has distinct environment variables that are allowed to be configured, refer to our [documentation](https://hoop.dev/docs) for more information.\n\n### Tags\n\nTags are key/value pairs that are attached to objects such as Connections. Tags are intended to be used to specify identifying attributes of objects that are meaningful and relevant to users, but do not directly imply semantics to the core system.\n\n```json\n{\n \"connection_tags\": {\n \"environment\": \"production\",\n \"component\": \"backend\"\n }\n}\n```\n\nEquality- or inequality-based requirements allow filtering by tags keys and values. Matching objects must satisfy all of the specified tag constraints, though they may have additional tags as well. Three kinds of operators are admitted `=`,`!=`. The first represent equality, while the last represents inequality. For example:\n\n```\nenvironment = production\ntier != frontend\n```\n\nThe former selects all resources with key equal to `environment` and value equal to `production`. The latter selects all resources with key equal to `tier` and value distinct from `frontend`. One could filter for resources in production excluding frontend using the comma operator: environment=production,tier!=frontend\n","requestBody":"9eeea958-5fd2-45a9-ad48-53a21ff65e96","responses":{"201":"7c0bb7d9-5c72-4752-ab92-1bfd13889057","400":"0a619dae-ac5d-46e7-ac7c-96866fc5239f","409":"cf4459d5-2ab6-4e9b-9e4c-1cc197df91ca","422":"363c6e94-2032-4a83-8c6e-e9cacddaff33","500":"eff2815c-a480-4cda-a232-a3e26bc11a06"},"summary":"Create Connection","tags":["Connections"],"method":"post","type":"path","servers":["c5efafea-4145-40ab-80dd-addab83f0f79"],"security":[],"path":"/connections","baseUrlOptions":["https://use.hoop.dev/api"],"title":"Create Connection","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"properties":{"access_mode_connect":{"description":"Toggle Port Forwarding\n* enabled - Enable to perform port forwarding for this connection\n* disabled - Disable port forwarding for this connection","enum":["enabled","disabled"],"type":"string","isRequired":true,"uniqueKey":"access_mode_connect","typeLabel":"enum\u003cstring>"},"access_mode_exec":{"description":"Toggle Ad Hoc Executions\n* enabled - Enable to run ad-hoc executions for this connection\n* disabled - Disable ad-hoc executions for this connection","enum":["enabled","disabled"],"type":"string","isRequired":true,"uniqueKey":"access_mode_exec","typeLabel":"enum\u003cstring>"},"access_mode_runbooks":{"description":"Toggle Ad Hoc Runbooks Executions\n* enabled - Enable to run runbooks for this connection\n* disabled - Disable runbooks execution for this connection","enum":["enabled","disabled"],"type":"string","isRequired":true,"uniqueKey":"access_mode_runbooks","typeLabel":"enum\u003cstring>"},"access_schema":{"description":"Toggle Introspection Schema\n* enabled - Enable the instrospection schema in the webapp\n* disabled - Disable the instrospection schema in the webapp","enum":["enabled","disabled"],"type":"string","isRequired":true,"uniqueKey":"access_schema","typeLabel":"enum\u003cstring>"},"agent_id":{"description":"The agent associated with this connection","example":"1837453e-01fc-46f3-9e4c-dcf22d395393","format":"uuid","type":"string","isRequired":true,"uniqueKey":"agent_id","typeLabel":"string\u003cuuid>"},"name":{"description":"Name of the connection. This attribute is immutable when updating it","example":"pgdemo","type":"string","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"type":{"description":"Type represents the main type of the connection:\n* database - Database protocols\n* application - Custom applications\n* custom - Shell applications","enum":["database","application","custom"],"example":"database","type":"string","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"access_max_duration":{"description":"Maximum duration in seconds for JIT access sessions on this connection","example":3600,"type":"integer","uniqueKey":"access_max_duration","typeLabel":"integer"},"attributes":{"description":"Attributes associated with this connection. Includes Hoop-managed\nattributes (e.g. the active protection profile attribute); omitting a\nmanaged name on update detaches the connection from it.","example":["production","pii"],"items":{"type":"string","uniqueKey":"attributes.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"attributes","typeLabel":"string[]"},"command":{"description":"Is the shell command that is going to be executed when interacting with this connection.\nThis value is required if the connection is going to be used from the Webapp.","example":["/bin/bash"],"items":{"type":"string","uniqueKey":"command.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"command","typeLabel":"string[]"},"connection_tags":{"additionalProperties":{"type":"string","uniqueKey":"connection_tags.additionalProperties","typeLabel":"string"},"description":"Tags to identify the connection\n* keys must contain between 1 and 64 alphanumeric characters, it may include (-), (_), (/), or (.) characters and it must not end with (-), (/) or (-).\n* values must contain between 1 and 256 alphanumeric characters, it may include space, (-), (_), (/), (+), (@), (:), (=) or (.) characters.","example":{"environment":"prod","tier":"frontend"},"type":"object","uniqueKey":"connection_tags","typeLabel":"object"},"default_database":{"description":"Default databases returns the configured value of the attribute secrets->'DB'","type":"string","uniqueKey":"default_database","typeLabel":"string"},"force_approve_groups":{"description":"Groups that can force approve requests for this connection","example":["sre-team"],"items":{"type":"string","uniqueKey":"force_approve_groups.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"force_approve_groups","typeLabel":"string[]"},"guardrail_rules":{"description":"The guard rail association id rules","example":["5701046A-7B7A-4A78-ABB0-A24C95E6FE54","B19BBA55-8646-4D94-A40A-C3AFE2F4BAFD"],"items":{"type":"string","uniqueKey":"guardrail_rules.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"guardrail_rules","typeLabel":"string[]"},"jira_issue_template_id":{"description":"The jira issue templates ids associated to the connection","example":"B19BBA55-8646-4D94-A40A-C3AFE2F4BAFD","type":"string","uniqueKey":"jira_issue_template_id","typeLabel":"string"},"jit_access_duration_sec":{"description":"JitAccessDurationSec is the fixed access duration in seconds enforced by a JIT access request rule.\nWhen set, the user cannot choose a custom duration and must request access for this exact window.","example":1800,"type":"integer","uniqueKey":"jit_access_duration_sec","typeLabel":"integer"},"mandatory_metadata_fields":{"description":"MandatoryMetadataFields are fields that must be present in the metadata for this connection for every session.","example":["environment","tier"],"items":{"type":"string","uniqueKey":"mandatory_metadata_fields.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"mandatory_metadata_fields","typeLabel":"string[]"},"mcp_oauth_flow_id":{"description":"MCPOAuthFlowID adopts a completed MCP OAuth login into a durable grant\nfor this connection. Write-only, and only meaningful for the \"mcpproxy\"\nsubtype.\n\nThe login runs before the connection exists, so the token it obtained is\nkeyed by the flow rather than by connection. Passing the flow id here at\nsave time joins the two: the gateway stores the refresh token against\nthis connection and renews the access token at every session open,\ninstead of relying on the frozen HEADER_AUTHORIZATION value alone, which\nstops working when the provider's token expires.\n\nWrite-only is enforced by ToOpenApi, which never populates this field —\nnot by a struct tag. swag reads `readonly` and has no `writeonly`\ncounterpart (field_parser.go only consults readOnlyTag), so the tag that\nused to sit here was inert and the published spec advertised the field\nas readable. The omitempty keeps it out of every response body.","example":"7c8a1234-5678-9abc-def0-123456789abc","type":"string","uniqueKey":"mcp_oauth_flow_id","typeLabel":"string"},"min_review_approvals":{"description":"Minimum number of approvals required to execute this connection","example":2,"type":"integer","uniqueKey":"min_review_approvals","typeLabel":"integer"},"redact_enabled":{"description":"When this option is enabled it will allow managing the redact types through the attribute `redact_types`","type":"boolean","uniqueKey":"redact_enabled","typeLabel":"boolean"},"redact_types":{"description":"Redact Types is a list of info types that will used to redact the output of the connection.\nPossible values are described in the DLP documentation: https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference","example":["EMAIL_ADDRESS"],"items":{"type":"string","uniqueKey":"redact_types.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"redact_types","typeLabel":"string[]"},"resource_name":{"description":"Resource to which this connection belongs to, it'll be created if it doesn't exist","example":"pgdemo","type":"string","uniqueKey":"resource_name","typeLabel":"string"},"reviewers":{"description":"Reviewers is a list of groups that must approve access to the connection before the user can execute it","example":["dba-group"],"items":{"type":"string","uniqueKey":"reviewers.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"reviewers","typeLabel":"string[]"},"secret":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"secret.additionalProperties","typeLabel":"any"},"description":"Secrets are environment variables that are going to be exposed\nin the runtime of the connection:\n* { envvar:[env-key]: [base64-val] } - Expose the value as environment variable\n* { filesystem:[env-key]: [base64-val] } - Expose the value as a temporary file path creating the value in the filesystem\n\nThe value could also represent an integration with a external provider:\n* { envvar:[env-key]: _aws:[secret-name]:[secret-key] } - Obtain the value dynamically in the AWS secrets manager and expose as environment variable\n* { envvar:[env-key]: _envjson:[json-env-name]:[json-env-key] } - Obtain the value dynamically from a JSON env in the agent runtime. Example: MYENV={\"KEY\": \"val\"}","type":"object","uniqueKey":"secret","typeLabel":"object"},"subtype":{"description":"Sub Type is the underline implementation of the connection:\n* postgres - Implements Postgres protocol\n* mysql - Implements MySQL protocol\n* mongodb - Implements MongoDB Wire Protocol\n* mssql - Implements Microsoft SQL Server Protocol\n* oracledb - Implements Oracle Database Protocol\n* tcp - Forwards a TCP connection\n* ssh - Forwards a SSH connection\n* httpproxy - Forwards a HTTP connection\n* dynamodb - AWS DynamoDB experimental integration\n* cloudwatch - AWS CloudWatch experimental integration","example":"postgres","type":"string","uniqueKey":"subtype","typeLabel":"string"},"tags":{"description":"DEPRECATED: Tags to classify the connection","example":["prod"],"items":{"type":"string","uniqueKey":"tags.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"tags","typeLabel":"string[]"}},"required":["access_mode_connect","access_mode_exec","access_mode_runbooks","access_schema","agent_id","name","type"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"agent_id":"1837453e-01fc-46f3-9e4c-dcf22d395393","name":"pgdemo","type":"database","access_max_duration":3600,"attributes":["production","pii"],"command":["/bin/bash"],"connection_tags":{"environment":"prod","tier":"frontend"},"default_database":"\u003cstring>","force_approve_groups":["sre-team"],"guardrail_rules":["5701046A-7B7A-4A78-ABB0-A24C95E6FE54","B19BBA55-8646-4D94-A40A-C3AFE2F4BAFD"],"jira_issue_template_id":"B19BBA55-8646-4D94-A40A-C3AFE2F4BAFD","jit_access_duration_sec":1800,"mandatory_metadata_fields":["environment","tier"],"mcp_oauth_flow_id":"7c8a1234-5678-9abc-def0-123456789abc","min_review_approvals":2,"redact_enabled":true,"redact_types":["EMAIL_ADDRESS"],"resource_name":"pgdemo","reviewers":["dba-group"],"secret":{},"subtype":"postgres","tags":["prod"]}}},"exampleType":"generated"}},"description":"The request body resource","required":true,"x-originalParamName":"request","exampleType":"generated"},"responses":{"7c0bb7d9-5c72-4752-ab92-1bfd13889057":{"content":{"application/json":{"schema":{"properties":{"access_mode_connect":{"description":"Toggle Port Forwarding\n* enabled - Enable to perform port forwarding for this connection\n* disabled - Disable port forwarding for this connection","enum":["enabled","disabled"],"type":"string","isRequired":true,"uniqueKey":"access_mode_connect","typeLabel":"enum\u003cstring>"},"access_mode_exec":{"description":"Toggle Ad Hoc Executions\n* enabled - Enable to run ad-hoc executions for this connection\n* disabled - Disable ad-hoc executions for this connection","enum":["enabled","disabled"],"type":"string","isRequired":true,"uniqueKey":"access_mode_exec","typeLabel":"enum\u003cstring>"},"access_mode_runbooks":{"description":"Toggle Ad Hoc Runbooks Executions\n* enabled - Enable to run runbooks for this connection\n* disabled - Disable runbooks execution for this connection","enum":["enabled","disabled"],"type":"string","isRequired":true,"uniqueKey":"access_mode_runbooks","typeLabel":"enum\u003cstring>"},"access_schema":{"description":"Toggle Introspection Schema\n* enabled - Enable the instrospection schema in the webapp\n* disabled - Disable the instrospection schema in the webapp","enum":["enabled","disabled"],"type":"string","isRequired":true,"uniqueKey":"access_schema","typeLabel":"enum\u003cstring>"},"agent_id":{"description":"The agent associated with this connection","example":"1837453e-01fc-46f3-9e4c-dcf22d395393","format":"uuid","type":"string","isRequired":true,"uniqueKey":"agent_id","typeLabel":"string\u003cuuid>"},"name":{"description":"Name of the connection. This attribute is immutable when updating it","example":"pgdemo","type":"string","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"type":{"description":"Type represents the main type of the connection:\n* database - Database protocols\n* application - Custom applications\n* custom - Shell applications","enum":["database","application","custom"],"example":"database","type":"string","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"access_max_duration":{"description":"Maximum duration in seconds for JIT access sessions on this connection","example":3600,"type":"integer","uniqueKey":"access_max_duration","typeLabel":"integer"},"attributes":{"description":"Attributes associated with this connection. Includes Hoop-managed\nattributes (e.g. the active protection profile attribute); omitting a\nmanaged name on update detaches the connection from it.","example":["production","pii"],"items":{"type":"string","uniqueKey":"attributes.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"attributes","typeLabel":"string[]"},"command":{"description":"Is the shell command that is going to be executed when interacting with this connection.\nThis value is required if the connection is going to be used from the Webapp.","example":["/bin/bash"],"items":{"type":"string","uniqueKey":"command.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"command","typeLabel":"string[]"},"connection_tags":{"additionalProperties":{"type":"string","uniqueKey":"connection_tags.additionalProperties","typeLabel":"string"},"description":"Tags to identify the connection\n* keys must contain between 1 and 64 alphanumeric characters, it may include (-), (_), (/), or (.) characters and it must not end with (-), (/) or (-).\n* values must contain between 1 and 256 alphanumeric characters, it may include space, (-), (_), (/), (+), (@), (:), (=) or (.) characters.","example":{"environment":"prod","tier":"frontend"},"type":"object","uniqueKey":"connection_tags","typeLabel":"object"},"default_database":{"description":"Default databases returns the configured value of the attribute secrets->'DB'","type":"string","uniqueKey":"default_database","typeLabel":"string"},"effective_features":{"type":"object","description":"EffectiveFeatures reports which features will actually act on this connection,\nresolving attribute-based associations as well as direct ones.\n\nNull means \"unknown\", never \"nothing is active\" — the two must not be confused by\na caller deciding whether to warn a user. It is null on the list endpoint, which\ndoes not resolve it, and on the detail endpoint when resolution failed (the\ngateway logs the failure).\n\nDeliberately not omitempty: an absent key and an explicit null are different\ncontracts, and the one documented here is null.","properties":{"access_request":{"type":"object","description":"AccessRequest reports approval coverage, split by access type.","properties":{"command":{"description":"Command is true when an access request rule of type \"command\" resolves.","example":true,"type":"boolean","uniqueKey":"effective_features.access_request.command","typeLabel":"boolean"},"jit":{"description":"Jit is true when an access request rule of type \"jit\" resolves. The duration it\nenforces, when any, is reported by the connection's jit_access_duration_sec.","example":false,"type":"boolean","uniqueKey":"effective_features.access_request.jit","typeLabel":"boolean"},"legacy_reviewers":{"description":"LegacyReviewers is true when the pre-rules review plugin has approver groups\nconfigured. It still applies on top of both access types.","example":false,"type":"boolean","uniqueKey":"effective_features.access_request.legacy_reviewers","typeLabel":"boolean"}},"uniqueKey":"effective_features.access_request","typeLabel":"object"},"ai_session_analyzer":{"description":"AISessionAnalyzer is true when an analyzer rule resolves for this connection.","example":false,"type":"boolean","uniqueKey":"effective_features.ai_session_analyzer","typeLabel":"boolean"},"data_masking":{"description":"DataMasking is true when any data masking rule resolves for this connection AND\nthe gateway has an active masking provider. Note that redact_enabled on the\nconnection is a legacy display field that no runtime code reads.","example":true,"type":"boolean","uniqueKey":"effective_features.data_masking","typeLabel":"boolean"},"guardrails":{"description":"Guardrails is true when any guardrail rule resolves for this connection.","example":true,"type":"boolean","uniqueKey":"effective_features.guardrails","typeLabel":"boolean"},"jira_templates":{"description":"JiraTemplates is true when the connection has a Jira issue template. Projection\nof jira_issue_template_id — no attribute-based path exists for it.","example":false,"type":"boolean","uniqueKey":"effective_features.jira_templates","typeLabel":"boolean"},"mandatory_metadata":{"description":"MandatoryMetadata is true when the connection requires metadata fields before a\nsession starts. Projection of mandatory_metadata_fields — no attribute-based path\nexists for it.","example":false,"type":"boolean","uniqueKey":"effective_features.mandatory_metadata","typeLabel":"boolean"}},"uniqueKey":"effective_features","typeLabel":"object"},"force_approve_groups":{"description":"Groups that can force approve requests for this connection","example":["sre-team"],"items":{"type":"string","uniqueKey":"force_approve_groups.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"force_approve_groups","typeLabel":"string[]"},"guardrail_rules":{"description":"The guard rail association id rules","example":["5701046A-7B7A-4A78-ABB0-A24C95E6FE54","B19BBA55-8646-4D94-A40A-C3AFE2F4BAFD"],"items":{"type":"string","uniqueKey":"guardrail_rules.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"guardrail_rules","typeLabel":"string[]"},"id":{"description":"Unique ID of the resource","example":"5364ec99-653b-41ba-8165-67236e894990","format":"uuid","readOnly":true,"type":"string","uniqueKey":"id","typeLabel":"string\u003cuuid>"},"jira_issue_template_id":{"description":"The jira issue templates ids associated to the connection","example":"B19BBA55-8646-4D94-A40A-C3AFE2F4BAFD","type":"string","uniqueKey":"jira_issue_template_id","typeLabel":"string"},"jit_access_duration_sec":{"description":"JitAccessDurationSec is the fixed access duration in seconds enforced by a JIT access request rule.\nWhen set, the user cannot choose a custom duration and must request access for this exact window.","example":1800,"type":"integer","uniqueKey":"jit_access_duration_sec","typeLabel":"integer"},"managed_attributes":{"description":"Hoop-managed attributes associated with this connection (e.g. the\nactive protection profile attribute). Computed on reads; manage the\nassociation through the attributes field.","example":["hoop_protection_profile-soc2_type2"],"items":{"type":"string","uniqueKey":"managed_attributes.items.[INDEX]","typeLabel":"string"},"readOnly":true,"type":"array","uniqueKey":"managed_attributes","typeLabel":"string[]"},"managed_by":{"description":"Managed By is a read only field that indicates who is managing this resource.\nWhen this attribute is set, this resource is considered immutable","example":"","readOnly":true,"type":"string","uniqueKey":"managed_by","typeLabel":"string"},"mandatory_metadata_fields":{"description":"MandatoryMetadataFields are fields that must be present in the metadata for this connection for every session.","example":["environment","tier"],"items":{"type":"string","uniqueKey":"mandatory_metadata_fields.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"mandatory_metadata_fields","typeLabel":"string[]"},"mcp_oauth_flow_id":{"description":"MCPOAuthFlowID adopts a completed MCP OAuth login into a durable grant\nfor this connection. Write-only, and only meaningful for the \"mcpproxy\"\nsubtype.\n\nThe login runs before the connection exists, so the token it obtained is\nkeyed by the flow rather than by connection. Passing the flow id here at\nsave time joins the two: the gateway stores the refresh token against\nthis connection and renews the access token at every session open,\ninstead of relying on the frozen HEADER_AUTHORIZATION value alone, which\nstops working when the provider's token expires.\n\nWrite-only is enforced by ToOpenApi, which never populates this field —\nnot by a struct tag. swag reads `readonly` and has no `writeonly`\ncounterpart (field_parser.go only consults readOnlyTag), so the tag that\nused to sit here was inert and the published spec advertised the field\nas readable. The omitempty keeps it out of every response body.","example":"7c8a1234-5678-9abc-def0-123456789abc","type":"string","uniqueKey":"mcp_oauth_flow_id","typeLabel":"string"},"mcp_oauth_granted":{"description":"MCPOAuthGranted reports that a durable MCP OAuth grant exists for this\nconnection, so its credential is renewed from a refresh token at every\nsession open rather than frozen at the value it was authorized with.\n\nThe edit screen cannot infer this from the env vars. A brokered OAuth\nlogin and a pasted token both end up as one HEADER_AUTHORIZATION, and\nMCP_AUTH collapses \"oauth\" to \"static\" because that is all the agent\nneeds to know (see services.MCPOAuthGrantSubType). Without this field\nthe form has to guess which mode the admin chose, guesses \"static\", and\nan OAuth connection reopens offering to replace a token it should be\noffering to re-authorize.\n\nPresence only — no token, no expiry, nothing the grant holds.","example":true,"readOnly":true,"type":"boolean","uniqueKey":"mcp_oauth_granted","typeLabel":"boolean"},"mcp_oauth_warning":{"description":"MCPOAuthWarning reports that the connection was saved but the MCP OAuth\nlogin named by mcp_oauth_flow_id was not attached to it. Present only on\nthe create/update response that produced it.\n\nThe save succeeded and the connection still works on its frozen\nHEADER_AUTHORIZATION, so this is not an error status. What it is not is\nsilent: without a grant the credential is never renewed, the connection\nstops working the moment the provider expires that token, and the admin\nneeds to hear it at save time rather than from a failing session days\nlater.","example":"the oauth login authorized https://a.example/mcp but the connection points at https://b.example/mcp","readOnly":true,"type":"string","uniqueKey":"mcp_oauth_warning","typeLabel":"string"},"min_review_approvals":{"description":"Minimum number of approvals required to execute this connection","example":2,"type":"integer","uniqueKey":"min_review_approvals","typeLabel":"integer"},"redact_enabled":{"description":"When this option is enabled it will allow managing the redact types through the attribute `redact_types`","type":"boolean","uniqueKey":"redact_enabled","typeLabel":"boolean"},"redact_types":{"description":"Redact Types is a list of info types that will used to redact the output of the connection.\nPossible values are described in the DLP documentation: https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference","example":["EMAIL_ADDRESS"],"items":{"type":"string","uniqueKey":"redact_types.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"redact_types","typeLabel":"string[]"},"resource_name":{"description":"Resource to which this connection belongs to, it'll be created if it doesn't exist","example":"pgdemo","type":"string","uniqueKey":"resource_name","typeLabel":"string"},"reviewers":{"description":"Reviewers is a list of groups that must approve access to the connection before the user can execute it","example":["dba-group"],"items":{"type":"string","uniqueKey":"reviewers.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"reviewers","typeLabel":"string[]"},"secret":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"secret.additionalProperties","typeLabel":"any"},"description":"Secrets are environment variables that are going to be exposed\nin the runtime of the connection:\n* { envvar:[env-key]: [base64-val] } - Expose the value as environment variable\n* { filesystem:[env-key]: [base64-val] } - Expose the value as a temporary file path creating the value in the filesystem\n\nThe value could also represent an integration with a external provider:\n* { envvar:[env-key]: _aws:[secret-name]:[secret-key] } - Obtain the value dynamically in the AWS secrets manager and expose as environment variable\n* { envvar:[env-key]: _envjson:[json-env-name]:[json-env-key] } - Obtain the value dynamically from a JSON env in the agent runtime. Example: MYENV={\"KEY\": \"val\"}","type":"object","uniqueKey":"secret","typeLabel":"object"},"secrets_updated_at":{"description":"SecretsUpdatedAt is the timestamp of the last replacement of any inline\nsecret value for this connection. Null when no inline secret has been\nmodified since the write-only secrets feature was introduced. References\nto external providers (AWS Secrets Manager, Vault, IAM RDS) do not\naffect this field.","example":"2025-01-15T10:30:00Z","readOnly":true,"type":"string","uniqueKey":"secrets_updated_at","typeLabel":"string"},"status":{"description":"Status is a read only field that informs if the connection is available for interaction\n* online - The agent is connected and alive\n* offline - The agent is not connected","enum":["online","offline"],"readOnly":true,"type":"string","uniqueKey":"status","typeLabel":"enum\u003cstring>"},"subtype":{"description":"Sub Type is the underline implementation of the connection:\n* postgres - Implements Postgres protocol\n* mysql - Implements MySQL protocol\n* mongodb - Implements MongoDB Wire Protocol\n* mssql - Implements Microsoft SQL Server Protocol\n* oracledb - Implements Oracle Database Protocol\n* tcp - Forwards a TCP connection\n* ssh - Forwards a SSH connection\n* httpproxy - Forwards a HTTP connection\n* dynamodb - AWS DynamoDB experimental integration\n* cloudwatch - AWS CloudWatch experimental integration","example":"postgres","type":"string","uniqueKey":"subtype","typeLabel":"string"},"tags":{"description":"DEPRECATED: Tags to classify the connection","example":["prod"],"items":{"type":"string","uniqueKey":"tags.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"tags","typeLabel":"string[]"}},"required":["access_mode_connect","access_mode_exec","access_mode_runbooks","access_schema","agent_id","name","type"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"access_mode_connect":"enabled","access_mode_exec":"enabled","access_mode_runbooks":"enabled","access_schema":"enabled","agent_id":"1837453e-01fc-46f3-9e4c-dcf22d395393","name":"pgdemo","type":"database","access_max_duration":3600,"attributes":["production","pii"],"command":["/bin/bash"],"connection_tags":{"environment":"prod","tier":"frontend"},"default_database":"\u003cstring>","effective_features":{"access_request":{"command":true,"jit":false,"legacy_reviewers":false},"ai_session_analyzer":false,"data_masking":true,"guardrails":true,"jira_templates":false,"mandatory_metadata":false},"force_approve_groups":["sre-team"],"guardrail_rules":["5701046A-7B7A-4A78-ABB0-A24C95E6FE54","B19BBA55-8646-4D94-A40A-C3AFE2F4BAFD"],"id":"5364ec99-653b-41ba-8165-67236e894990","jira_issue_template_id":"B19BBA55-8646-4D94-A40A-C3AFE2F4BAFD","jit_access_duration_sec":1800,"managed_attributes":["hoop_protection_profile-soc2_type2"],"managed_by":"","mandatory_metadata_fields":["environment","tier"],"mcp_oauth_flow_id":"7c8a1234-5678-9abc-def0-123456789abc","mcp_oauth_granted":true,"mcp_oauth_warning":"the oauth login authorized https://a.example/mcp but the connection points at https://b.example/mcp","min_review_approvals":2,"redact_enabled":true,"redact_types":["EMAIL_ADDRESS"],"resource_name":"pgdemo","reviewers":["dba-group"],"secret":{},"secrets_updated_at":"2025-01-15T10:30:00Z","status":"online","subtype":"postgres","tags":["prod"]}}},"exampleType":"generated"}},"description":"Created","exampleType":"generated"},"0a619dae-ac5d-46e7-ac7c-96866fc5239f":{"content":{"application/json":{"schema":{"properties":{"message":{"example":"the error description","type":"string","uniqueKey":"message","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"the error description"}}},"exampleType":"generated"}},"description":"Bad Request","exampleType":"generated"},"cf4459d5-2ab6-4e9b-9e4c-1cc197df91ca":{"content":{"application/json":{"schema":{"properties":{"message":{"example":"the error description","type":"string","uniqueKey":"message","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"the error description"}}},"exampleType":"generated"}},"description":"Conflict","exampleType":"generated"},"363c6e94-2032-4a83-8c6e-e9cacddaff33":{"content":{"application/json":{"schema":{"properties":{"message":{"example":"the error description","type":"string","uniqueKey":"message","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"the error description"}}},"exampleType":"generated"}},"description":"Unprocessable Entity","exampleType":"generated"},"eff2815c-a480-4cda-a232-a3e26bc11a06":{"content":{"application/json":{"schema":{"properties":{"message":{"example":"the error description","type":"string","uniqueKey":"message","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"the error description"}}},"exampleType":"generated"}},"description":"Internal Server Error","exampleType":"generated"}},"security":{},"servers":{"c5efafea-4145-40ab-80dd-addab83f0f79":{"url":"https://use.hoop.dev/api"}}},"originalFileLocation":"https://use.hoop.dev/api/openapiv3.json"},"subdomain":"hoopdev","siteName":"Hoop.dev - Automated Access and Data Protection","title":"Create Connection - Hoop.dev - Automated Access and Data Protection","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T13:08:49.858Z","originalFileLocation":"api-reference/connections/create-connection.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The connection resource allows exposing internal services from your internal infra structure to users. ### Types of Connections The definition of this resource represent how clients will be able to interact with internal resources. Each type/subtype may represent a distinct implementation: - application/ - An alias to map distinct types of shell applications (e.g.: python, ruby, etc) - application/tcp - Forward TCP connections This type requires the following environment variables: - HOST: ip or dns of the internal service - PORT: the port of the internal service - custom - Any custom shell application - database/ - Allow connecting to databases through multiple clients (Webapp, cli, IDE\u0026#x27;s) Each has distinct environment variables that are allowed to be configured, refer to our documentation for more information. ### Tags Tags are key/value pairs that are attached to objects such as Connections. Tags are intended to be used to specify identifying attributes of objects that are meaningful and relevant to users, but do not directly imply semantics to the core system. json { \u0026quot;connection_tags\u0026quot;: { \u0026quot;environment\u0026quot;: \u0026quot;production\u0026quot;, \u0026quot;component\u0026quot;: \u0026quot;backend\u0026quot; } } Equality- or inequality-based requirements allow filtering by tags keys and values. Matching objects must satisfy all of the specified tag constraints, though they may have additional tags as well. Three kinds of operators are admitted =,!=. The first represent equality, while the last represents inequality. For example: environment = production tier != frontend The former selects all resources with key equal to environment and value equal to production. The latter selects all resources with key equal to tier and value distinct from frontend. One could filter for resources in production excluding frontend using the comma operator: environment=production,tier!=frontend\">\u003cmeta data-mint-head name=\"application-name\" content=\"Hoop.dev - Automated Access and Data Protection\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/hoopdev/jvt1FQ1AzCynh7ga/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/hoopdev/jvt1FQ1AzCynh7ga/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/hoopdev/jvt1FQ1AzCynh7ga/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/hoopdev/jvt1FQ1AzCynh7ga/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/hoopdev/jvt1FQ1AzCynh7ga/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/hoopdev/jvt1FQ1AzCynh7ga/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/hoopdev/jvt1FQ1AzCynh7ga/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/hoopdev/jvt1FQ1AzCynh7ga/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/hoopdev/jvt1FQ1AzCynh7ga/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Connection - Hoop.dev - Automated Access and Data Protection\">\u003cmeta data-mint-head property=\"og:description\" content=\"The connection resource allows exposing internal services from your internal infra structure to users. ### Types of Connections The definition of this resource represent how clients will be able to interact with internal resources. Each type/subtype may represent a distinct implementation: - application/ - An alias to map distinct types of shell applications (e.g.: python, ruby, etc) - application/tcp - Forward TCP connections This type requires the following environment variables: - HOST: ip or dns of the internal service - PORT: the port of the internal service - custom - Any custom shell application - database/ - Allow connecting to databases through multiple clients (Webapp, cli, IDE\u0026#x27;s) Each has distinct environment variables that are allowed to be configured, refer to our documentation for more information. ### Tags Tags are key/value pairs that are attached to objects such as Connections. Tags are intended to be used to specify identifying attributes of objects that are meaningful and relevant to users, but do not directly imply semantics to the core system. json { \u0026quot;connection_tags\u0026quot;: { \u0026quot;environment\u0026quot;: \u0026quot;production\u0026quot;, \u0026quot;component\u0026quot;: \u0026quot;backend\u0026quot; } } Equality- or inequality-based requirements allow filtering by tags keys and values. Matching objects must satisfy all of the specified tag constraints, though they may have additional tags as well. Three kinds of operators are admitted =,!=. The first represent equality, while the last represents inequality. For example: environment = production tier != frontend The former selects all resources with key equal to environment and value equal to production. The latter selects all resources with key equal to tier and value distinct from frontend. One could filter for resources in production excluding frontend using the comma operator: environment=production,tier!=frontend\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Hoop.dev - Automated Access and Data Protection\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://mintlify.hoop.dev/docs/api-reference/connections/create-connection\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hoopdev.mintlify.app/_mintlify/api/og/v2?division=Connections\u0026amp;title=Create+Connection\u0026amp;description=The+connection+resource+allows+exposing+internal+services+from+your+internal+infra+structure+to+users.%0A%0A%23%23%23+Types+of+Connections%0A%0AThe+definition+of+this+resourc\u0026amp;theme=cd9e830ca75131fdfc692d5c\u0026amp;signature=4b4d8479bd8fe65306ea7c98089f69511f21e564de4f701c64fb816e96152b29\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create Connection - Hoop.dev - Automated Access and Data Protection\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The connection resource allows exposing internal services from your internal infra structure to users. ### Types of Connections The definition of this resource represent how clients will be able to interact with internal resources. Each type/subtype may represent a distinct implementation: - application/ - An alias to map distinct types of shell applications (e.g.: python, ruby, etc) - application/tcp - Forward TCP connections This type requires the following environment variables: - HOST: ip or dns of the internal service - PORT: the port of the internal service - custom - Any custom shell application - database/ - Allow connecting to databases through multiple clients (Webapp, cli, IDE\u0026#x27;s) Each has distinct environment variables that are allowed to be configured, refer to our documentation for more information. ### Tags Tags are key/value pairs that are attached to objects such as Connections. Tags are intended to be used to specify identifying attributes of objects that are meaningful and relevant to users, but do not directly imply semantics to the core system. json { \u0026quot;connection_tags\u0026quot;: { \u0026quot;environment\u0026quot;: \u0026quot;production\u0026quot;, \u0026quot;component\u0026quot;: \u0026quot;backend\u0026quot; } } Equality- or inequality-based requirements allow filtering by tags keys and values. Matching objects must satisfy all of the specified tag constraints, though they may have additional tags as well. Three kinds of operators are admitted =,!=. The first represent equality, while the last represents inequality. For example: environment = production tier != frontend The former selects all resources with key equal to environment and value equal to production. The latter selects all resources with key equal to tier and value distinct from frontend. One could filter for resources in production excluding frontend using the comma operator: environment=production,tier!=frontend\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hoopdev.mintlify.app/_mintlify/api/og/v2?division=Connections\u0026amp;title=Create+Connection\u0026amp;description=The+connection+resource+allows+exposing+internal+services+from+your+internal+infra+structure+to+users.%0A%0A%23%23%23+Types+of+Connections%0A%0AThe+definition+of+this+resourc\u0026amp;theme=cd9e830ca75131fdfc692d5c\u0026amp;signature=4b4d8479bd8fe65306ea7c98089f69511f21e564de4f701c64fb816e96152b29\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/hoopdev/jvt1FQ1AzCynh7ga/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Hoop.dev - Automated Access and Data Protection\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3E63DD\">\u003clink data-mint-head rel=\"canonical\" href=\"https://mintlify.hoop.dev/docs/api-reference/connections/create-connection\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/connections/create-connection.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://mintlify.hoop.dev/#organization\",\"name\":\"Hoop.dev - Automated Access and Data Protection\",\"url\":\"https://mintlify.hoop.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hoopdev/ndV-rRL4ZXZJLXJY/logo/light.svg?fit=max\u0026auto=format\u0026n=ndV-rRL4ZXZJLXJY\u0026q=85\u0026s=0091927110c2d4309aac8b7862009f98\"}},{\"@type\":\"WebSite\",\"@id\":\"https://mintlify.hoop.dev/docs#website\",\"name\":\"Hoop.dev - Automated Access and Data Protection\",\"url\":\"https://mintlify.hoop.dev/docs\",\"publisher\":{\"@id\":\"https://mintlify.hoop.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://mintlify.hoop.dev/docs/api-reference/connections/create-connection#webpage\",\"url\":\"https://mintlify.hoop.dev/docs/api-reference/connections/create-connection\",\"name\":\"Create Connection\",\"description\":\"The connection resource allows exposing internal services from your internal infra structure to users. ### Types of Connections The definition of this resource represent how clients will be able to interact with internal resources. Each type/subtype may represent a distinct implementation: - application/ - An alias to map distinct types of shell applications (e.g.: python, ruby, etc) - application/tcp - Forward TCP connections This type requires the following environment variables: - HOST: ip or dns of the internal service - PORT: the port of the internal service - custom - Any custom shell application - database/ - Allow connecting to databases through multiple clients (Webapp, cli, IDE's) Each has distinct environment variables that are allowed to be configured, refer to our documentation for more information. ### Tags Tags are key/value pairs that are attached to objects such as Connections. Tags are intended to be used to specify identifying attributes of objects that are meaningful and relevant to users, but do not directly imply semantics to the core system. json { \\\"connection_tags\\\": { \\\"environment\\\": \\\"production\\\", \\\"component\\\": \\\"backend\\\" } } Equality- or inequality-based requirements allow filtering by tags keys and values. Matching objects must satisfy all of the specified tag constraints, though they may have additional tags as well. Three kinds of operators are admitted =,!=. The first represent equality, while the last represents inequality. For example: environment = production tier != frontend The former selects all resources with key equal to environment and value equal to production. The latter selects all resources with key equal to tier and value distinct from frontend. One could filter for resources in production excluding frontend using the comma operator: environment=production,tier!=frontend\",\"dateModified\":\"2026-10-30T13:08:49.858Z\",\"isPartOf\":{\"@id\":\"https://mintlify.hoop.dev/docs#website\"},\"breadcrumb\":{\"@id\":\"https://mintlify.hoop.dev/docs/api-reference/connections/create-connection#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://mintlify.hoop.dev/docs/api-reference/connections/create-connection#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Connections\",\"item\":\"https://mintlify.hoop.dev/docs/api-reference/connections/list-active-connection-credentials\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create Connection\",\"item\":\"https://mintlify.hoop.dev/docs/api-reference/connections/create-connection\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://mintlify.hoop.dev/docs/api-reference/connections/create-connection#apireference\",\"headline\":\"Create Connection\",\"name\":\"Create Connection\",\"description\":\"The connection resource allows exposing internal services from your internal infra structure to users. ### Types of Connections The definition of this resource represent how clients will be able to interact with internal resources. Each type/subtype may represent a distinct implementation: - application/ - An alias to map distinct types of shell applications (e.g.: python, ruby, etc) - application/tcp - Forward TCP connections This type requires the following environment variables: - HOST: ip or dns of the internal service - PORT: the port of the internal service - custom - Any custom shell application - database/ - Allow connecting to databases through multiple clients (Webapp, cli, IDE's) Each has distinct environment variables that are allowed to be configured, refer to our documentation for more information. ### Tags Tags are key/value pairs that are attached to objects such as Connections. Tags are intended to be used to specify identifying attributes of objects that are meaningful and relevant to users, but do not directly imply semantics to the core system. json { \\\"connection_tags\\\": { \\\"environment\\\": \\\"production\\\", \\\"component\\\": \\\"backend\\\" } } Equality- or inequality-based requirements allow filtering by tags keys and values. Matching objects must satisfy all of the specified tag constraints, though they may have additional tags as well. Three kinds of operators are admitted =,!=. The first represent equality, while the last represents inequality. For example: environment = production tier != frontend The former selects all resources with key equal to environment and value equal to production. The latter selects all resources with key equal to tier and value distinct from frontend. One could filter for resources in production excluding frontend using the comma operator: environment=production,tier!=frontend\",\"url\":\"https://mintlify.hoop.dev/docs/api-reference/connections/create-connection\",\"mainEntityOfPage\":{\"@id\":\"https://mintlify.hoop.dev/docs/api-reference/connections/create-connection#webpage\"},\"dateModified\":\"2026-10-30T13:08:49.858Z\",\"publisher\":{\"@id\":\"https://mintlify.hoop.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://mintlify.hoop.dev/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Hoop.dev - Automated Access and Data Protection\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Hoop.dev - Automated Access and Data Protection","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/introduction/getting-started"}]},{"anchor":"Hoop Gateway","icon":"server","hidden":true,"pages":[{"title":"Hoop Gateway","href":"/gateway/overview"}]},{"anchor":"Community","icon":"github","href":"https://github.com/hoophq/hoop/discussions"},{"anchor":"Blog","icon":"newspaper","href":"https://hoop.dev/blog"},{"anchor":"API Reference","icon":"square-terminal","groups":[{"group":"Server Management","pages":[{"title":"Get MCP OAuth Authorization Server Metadata","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /.well-known/oauth-authorization-server","href":"/api-reference/server-management/get-mcp-oauth-authorization-server-metadata"},{"title":"HealthCheck","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /healthz","href":"/api-reference/server-management/healthcheck"},{"title":"Register MCP OAuth Client","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /mcp/oauth/register","href":"/api-reference/server-management/register-mcp-oauth-client"},{"title":"Get Organization Analytics Mode","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /orgs/analytics-mode","href":"/api-reference/server-management/get-organization-analytics-mode"},{"title":"Update Organization Analytics Mode","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /orgs/analytics-mode","href":"/api-reference/server-management/update-organization-analytics-mode"},{"title":"Get Organization Hide Role Info","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /orgs/hide-role-info","href":"/api-reference/server-management/get-organization-hide-role-info"},{"title":"Update Organization Hide Role Info","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /orgs/hide-role-info","href":"/api-reference/server-management/update-organization-hide-role-info"},{"title":"Update Org License","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /orgs/license","href":"/api-reference/server-management/update-org-license"},{"title":"Sign License","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /orgs/license/sign","href":"/api-reference/server-management/sign-license"},{"title":"Get Organization Onboarding Status","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /orgs/onboarding","href":"/api-reference/server-management/get-organization-onboarding-status"},{"title":"Get Organization Protection Profile","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /orgs/protection-profile","href":"/api-reference/server-management/get-organization-protection-profile"},{"title":"Update Organization Protection Profile","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /orgs/protection-profile","href":"/api-reference/server-management/update-organization-protection-profile"},{"title":"Get Public Server Info","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /publicserverinfo","href":"/api-reference/server-management/get-public-server-info"},{"title":"Get Authentication Configuration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /serverconfig/auth","href":"/api-reference/server-management/get-authentication-configuration"},{"title":"Update Authentication Configuration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /serverconfig/auth","href":"/api-reference/server-management/update-authentication-configuration"},{"title":"Generate API Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /serverconfig/auth/apikey","href":"/api-reference/server-management/generate-api-key"},{"title":"Get MCP OAuth 2.1 Resource Server Configuration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /serverconfig/mcp-auth","href":"/api-reference/server-management/get-mcp-oauth-21-resource-server-configuration"},{"title":"Update MCP OAuth 2.1 Resource Server Configuration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /serverconfig/mcp-auth","href":"/api-reference/server-management/update-mcp-oauth-21-resource-server-configuration"},{"title":"Get Server Miscellaneous Configuration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /serverconfig/misc","href":"/api-reference/server-management/get-server-miscellaneous-configuration"},{"title":"Update Server Miscellaneous Configuration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /serverconfig/misc","href":"/api-reference/server-management/update-server-miscellaneous-configuration"},{"title":"Get Server Info","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /serverinfo","href":"/api-reference/server-management/get-server-info"}]},{"group":"Access Request Rules","pages":[{"title":"List Access Request Rules","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /access-requests/rules","href":"/api-reference/access-request-rules/list-access-request-rules"},{"title":"Create Access Request Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /access-requests/rules","href":"/api-reference/access-request-rules/create-access-request-rule"},{"title":"Get Access Request Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /access-requests/rules/{name}","href":"/api-reference/access-request-rules/get-access-request-rule"},{"title":"Update Access Request Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /access-requests/rules/{name}","href":"/api-reference/access-request-rules/update-access-request-rule"},{"title":"Delete Access Request Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /access-requests/rules/{name}","href":"/api-reference/access-request-rules/delete-access-request-rule"}]},{"group":"Agents","pages":[{"title":"List Agent Tags","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /agent-tags","href":"/api-reference/agents/list-agent-tags"},{"title":"List Agent Keys","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /agents","href":"/api-reference/agents/list-agent-keys"},{"title":"Create Agent Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /agents","href":"/api-reference/agents/create-agent-key"},{"title":"Get Agent Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /agents/{nameOrID}","href":"/api-reference/agents/get-agent-key"},{"title":"Delete Agent Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /agents/{nameOrID}","href":"/api-reference/agents/delete-agent-key"},{"title":"Update Agent Tags","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /agents/{nameOrID}/tags","href":"/api-reference/agents/update-agent-tags"}]},{"group":"AI Agents","pages":[{"title":"List AI Agents","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /ai-agents","href":"/api-reference/ai-agents/list-ai-agents"},{"title":"Create AI Agent","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /ai-agents","href":"/api-reference/ai-agents/create-ai-agent"},{"title":"Get AI Agent","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /ai-agents/{nameOrID}","href":"/api-reference/ai-agents/get-ai-agent"},{"title":"Update AI Agent","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /ai-agents/{nameOrID}","href":"/api-reference/ai-agents/update-ai-agent"},{"title":"Revoke AI Agent","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /ai-agents/{nameOrID}","href":"/api-reference/ai-agents/revoke-ai-agent"},{"title":"Reactivate AI Agent","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /ai-agents/{nameOrID}/reactivate","href":"/api-reference/ai-agents/reactivate-ai-agent"}]},{"group":"AI","pages":[{"title":"Get AI Session Analyzer Provider","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /ai/session-analyzer/providers","href":"/api-reference/ai/get-ai-session-analyzer-provider"},{"title":"Upsert AI Session Analyzer Provider","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /ai/session-analyzer/providers","href":"/api-reference/ai/upsert-ai-session-analyzer-provider"},{"title":"Delete AI Session Analyzer Provider","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /ai/session-analyzer/providers","href":"/api-reference/ai/delete-ai-session-analyzer-provider"},{"title":"List AI Session Analyzer Rules","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /ai/session-analyzer/rules","href":"/api-reference/ai/list-ai-session-analyzer-rules"},{"title":"Create AI Session Analyzer Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /ai/session-analyzer/rules","href":"/api-reference/ai/create-ai-session-analyzer-rule"},{"title":"Get AI Session Analyzer Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /ai/session-analyzer/rules/{name}","href":"/api-reference/ai/get-ai-session-analyzer-rule"},{"title":"Update AI Session Analyzer Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /ai/session-analyzer/rules/{name}","href":"/api-reference/ai/update-ai-session-analyzer-rule"},{"title":"Delete AI Session Analyzer Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /ai/session-analyzer/rules/{name}","href":"/api-reference/ai/delete-ai-session-analyzer-rule"},{"title":"Get AI Session Analyzer System Prompt","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /ai/session-analyzer/system-prompt","href":"/api-reference/ai/get-ai-session-analyzer-system-prompt"},{"title":"Get AI Session Analyzer Rule by Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /connections/{nameOrId}/ai-session-analyzer-rule","href":"/api-reference/ai/get-ai-session-analyzer-rule-by-connection"}]},{"group":"API Keys","pages":[{"title":"List API Keys","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /api-keys","href":"/api-reference/api-keys/list-api-keys"},{"title":"Create API Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /api-keys","href":"/api-reference/api-keys/create-api-key"},{"title":"Get API Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /api-keys/{nameOrID}","href":"/api-reference/api-keys/get-api-key"},{"title":"Update API Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /api-keys/{nameOrID}","href":"/api-reference/api-keys/update-api-key"},{"title":"Revoke API Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /api-keys/{nameOrID}","href":"/api-reference/api-keys/revoke-api-key"},{"title":"Reactivate API Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /api-keys/{nameOrID}/reactivate","href":"/api-reference/api-keys/reactivate-api-key"}]},{"group":"Approvals","pages":[{"title":"Get Approval List","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /approvals","href":"/api-reference/approvals/get-approval-list"},{"title":"Count Approvals","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /approvals/count","href":"/api-reference/approvals/count-approvals"},{"title":"Get Approval","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /approvals/{id}","href":"/api-reference/approvals/get-approval"},{"title":"Update Approval Status","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /approvals/{id}","href":"/api-reference/approvals/update-approval-status"},{"title":"Get Approval List","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /reviews","href":"/api-reference/approvals/get-approval-list-1"},{"title":"Get Approval","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /reviews/{id}","href":"/api-reference/approvals/get-approval-1"},{"title":"Update Approval Status","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /reviews/{id}","href":"/api-reference/approvals/update-approval-status-1"},{"title":"Update Approval Status By Sid","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /sessions/{session_id}/approval","href":"/api-reference/approvals/update-approval-status-by-sid"},{"title":"Update Approval Status By Sid","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /sessions/{session_id}/review","href":"/api-reference/approvals/update-approval-status-by-sid-1"}]},{"group":"Attributes","pages":[{"title":"List Attributes","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /attributes","href":"/api-reference/attributes/list-attributes"},{"title":"Create Attribute","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /attributes","href":"/api-reference/attributes/create-attribute"},{"title":"Get Attribute","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /attributes/{name}","href":"/api-reference/attributes/get-attribute"},{"title":"Update Attribute","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /attributes/{name}","href":"/api-reference/attributes/update-attribute"},{"title":"Delete Attribute","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /attributes/{name}","href":"/api-reference/attributes/delete-attribute"}]},{"group":"Audit Logs","pages":[{"title":"List security audit logs","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /audit/logs","href":"/api-reference/audit-logs/list-security-audit-logs"}]},{"group":"Authentication","pages":[{"title":"OIDC | Login Callback","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /callback","href":"/api-reference/authentication/oidc-|-login-callback"},{"title":"Local | Login","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /localauth/login","href":"/api-reference/authentication/local-|-login"},{"title":"Local | Register User","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /localauth/register","href":"/api-reference/authentication/local-|-register-user"},{"title":"OIDC | Login","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /login","href":"/api-reference/authentication/oidc-|-login"},{"title":"SAML | Login Callback","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /saml/callback","href":"/api-reference/authentication/saml-|-login-callback"},{"title":"SAML | Login","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /saml/login","href":"/api-reference/authentication/saml-|-login"},{"title":"OIDC | Signup","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /signup","href":"/api-reference/authentication/oidc-|-signup"}]},{"group":"Connections","pages":[{"title":"List Active Connection Credentials","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /connection-credentials","href":"/api-reference/connections/list-active-connection-credentials"},{"title":"List Connections","description":"List all connections.","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /connections","href":"/api-reference/connections/list-connections"},{"title":"Create Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /connections","href":"/api-reference/connections/create-connection"},{"title":"List Connection Tags","description":"List all Connection Tags.","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /connections-tags","href":"/api-reference/connections/list-connection-tags"},{"title":"Get Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /connections/{nameOrID}","href":"/api-reference/connections/get-connection"},{"title":"Update Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /connections/{nameOrID}","href":"/api-reference/connections/update-connection"},{"title":"Delete Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /connections/{nameOrID}","href":"/api-reference/connections/delete-connection"},{"title":"Patch Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json patch /connections/{nameOrID}","href":"/api-reference/connections/patch-connection"},{"title":"Get Table Columns","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /connections/{nameOrID}/columns","href":"/api-reference/connections/get-table-columns"},{"title":"Get Active Connection Credentials","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /connections/{nameOrID}/credentials","href":"/api-reference/connections/get-active-connection-credentials"},{"title":"Create Connection Credentials","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /connections/{nameOrID}/credentials","href":"/api-reference/connections/create-connection-credentials"},{"title":"Close Connection Credentials Session","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /connections/{nameOrID}/credentials/{credentialID}/close","href":"/api-reference/connections/close-connection-credentials-session"},{"title":"Revoke Connection Credentials","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /connections/{nameOrID}/credentials/{credentialID}/revoke","href":"/api-reference/connections/revoke-connection-credentials"},{"title":"Resume Connection Credentials Request","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /connections/{nameOrID}/credentials/{sessionID}","href":"/api-reference/connections/resume-connection-credentials-request"},{"title":"List Databases","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /connections/{nameOrID}/databases","href":"/api-reference/connections/list-databases"},{"title":"Update Data Masking Rule Connections","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /connections/{nameOrID}/datamasking-rules","href":"/api-reference/connections/update-data-masking-rule-connections"},{"title":"Get Federation Configuration for a Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /connections/{nameOrID}/federation","href":"/api-reference/connections/get-federation-configuration-for-a-connection"},{"title":"Upsert Federation Configuration for a Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /connections/{nameOrID}/federation","href":"/api-reference/connections/upsert-federation-configuration-for-a-connection"},{"title":"Delete Federation Configuration for a Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /connections/{nameOrID}/federation","href":"/api-reference/connections/delete-federation-configuration-for-a-connection"},{"title":"List Database Tables","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /connections/{nameOrID}/tables","href":"/api-reference/connections/list-database-tables"},{"title":"Test Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /connections/{nameOrID}/test","href":"/api-reference/connections/test-connection"},{"title":"List MCP Server Catalog","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /mcp-catalog","href":"/api-reference/connections/list-mcp-server-catalog"},{"title":"Start the OAuth login flow for an MCP connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /mcp-oauth/authorize","href":"/api-reference/connections/start-the-oauth-login-flow-for-an-mcp-connection"},{"title":"OAuth callback for MCP connection login","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /mcp-oauth/callback","href":"/api-reference/connections/oauth-callback-for-mcp-connection-login"},{"title":"Retrieve the token obtained by an MCP OAuth login","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /mcp-oauth/token/{flowID}","href":"/api-reference/connections/retrieve-the-token-obtained-by-an-mcp-oauth-login"}]},{"group":"Federation","pages":[{"title":"Report the user's per-user federation connection status","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /connections/{nameOrID}/federation/oauth","href":"/api-reference/federation/report-the-users-per-user-federation-connection-status"},{"title":"Disconnect a user's Google account from a connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /connections/{nameOrID}/federation/oauth","href":"/api-reference/federation/disconnect-a-users-google-account-from-a-connection"},{"title":"Start the Google OAuth consent flow for a connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /connections/{nameOrID}/federation/oauth/authorize","href":"/api-reference/federation/start-the-google-oauth-consent-flow-for-a-connection"},{"title":"Google OAuth callback for connection federation","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /federation/oauth/callback","href":"/api-reference/federation/google-oauth-callback-for-connection-federation"},{"title":"Test a Federation Configuration End-to-End","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /federation/test","href":"/api-reference/federation/test-a-federation-configuration-end-to-end"}]},{"group":"Data Masking Rules","pages":[{"title":"List Data Masking Rules","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /datamasking-rules","href":"/api-reference/data-masking-rules/list-data-masking-rules"},{"title":"Create Data Masking Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /datamasking-rules","href":"/api-reference/data-masking-rules/create-data-masking-rule"},{"title":"Get Data Masking Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /datamasking-rules/{id}","href":"/api-reference/data-masking-rules/get-data-masking-rule"},{"title":"Update Data Masking Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /datamasking-rules/{id}","href":"/api-reference/data-masking-rules/update-data-masking-rule"},{"title":"Delete Data Masking Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /datamasking-rules/{id}","href":"/api-reference/data-masking-rules/delete-data-masking-rule"}]},{"group":"AWS","pages":[{"title":"List DB Role Jobs","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /dbroles/jobs","href":"/api-reference/aws/list-db-role-jobs"},{"title":"Create Database Role Job","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /dbroles/jobs","href":"/api-reference/aws/create-database-role-job"},{"title":"Get DB Role Job","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /dbroles/jobs/{id}","href":"/api-reference/aws/get-db-role-job"},{"title":"Update IAM Access Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /integrations/aws/iam/accesskeys","href":"/api-reference/aws/update-iam-access-key"},{"title":"Delete IAM Access Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /integrations/aws/iam/accesskeys","href":"/api-reference/aws/delete-iam-access-key"},{"title":"Get Caller Identity","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /integrations/aws/iam/userinfo","href":"/api-reference/aws/get-caller-identity"},{"title":"List AWS Accounts","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /integrations/aws/organizations","href":"/api-reference/aws/list-aws-accounts"},{"title":"Create RDS Root Password","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /integrations/aws/rds/credentials","href":"/api-reference/aws/create-rds-root-password"},{"title":"List Database Instances","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /integrations/aws/rds/describe-db-instances","href":"/api-reference/aws/list-database-instances"}]},{"group":"Live Events","pages":[{"title":"Stream Live Events","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /events/stream","href":"/api-reference/live-events/stream-live-events"}]},{"group":"Feature Flags","pages":[{"title":"List Feature Flags","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /feature-flags","href":"/api-reference/feature-flags/list-feature-flags"},{"title":"Update Feature Flag","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /feature-flags/{name}","href":"/api-reference/feature-flags/update-feature-flag"}]},{"group":"Features","pages":[{"title":"OpenAI Chat Completions","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /features/ask-ai/v1/chat/completions","href":"/api-reference/features/openai-chat-completions"},{"title":"Feature Update","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /orgs/features","href":"/api-reference/features/feature-update"},{"title":"Get Webhooks Dashboard","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /webhooks-dashboard","href":"/api-reference/features/get-webhooks-dashboard"}]},{"group":"Guard Rails","pages":[{"title":"List Guard Rail Rules","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /guardrails","href":"/api-reference/guard-rails/list-guard-rail-rules"},{"title":"Create Guard Rail Rules","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /guardrails","href":"/api-reference/guard-rails/create-guard-rail-rules"},{"title":"Get Guard Rail Rules","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /guardrails/{id}","href":"/api-reference/guard-rails/get-guard-rail-rules"},{"title":"Update Guard Rail Rules","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /guardrails/{id}","href":"/api-reference/guard-rails/update-guard-rail-rules"},{"title":"Delete a Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /guardrails/{id}","href":"/api-reference/guard-rails/delete-a-rule"}]},{"group":"Jira","pages":[{"title":"Get Jira Integration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /integrations/jira","href":"/api-reference/jira/get-jira-integration"},{"title":"Update Jira Integration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /integrations/jira","href":"/api-reference/jira/update-jira-integration"},{"title":"Create Jira Integration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /integrations/jira","href":"/api-reference/jira/create-jira-integration"},{"title":"Get Asset Field Configurations","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /integrations/jira/assets/fieldconfigs","href":"/api-reference/jira/get-asset-field-configurations"},{"title":"Get Asset Objects","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /integrations/jira/assets/objects","href":"/api-reference/jira/get-asset-objects"},{"title":"List Issue Templates","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /integrations/jira/issuetemplates","href":"/api-reference/jira/list-issue-templates"},{"title":"Create Issue Templates","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /integrations/jira/issuetemplates","href":"/api-reference/jira/create-issue-templates"},{"title":"Get Issue Templates","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /integrations/jira/issuetemplates/{id}","href":"/api-reference/jira/get-issue-templates"},{"title":"Update Issue Templates","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /integrations/jira/issuetemplates/{id}","href":"/api-reference/jira/update-issue-templates"},{"title":"Delete Issue Templates","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /integrations/jira/issuetemplates/{id}","href":"/api-reference/jira/delete-issue-templates"}]},{"group":"Machine Identities","pages":[{"title":"List Machine Identities","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /machineidentities","href":"/api-reference/machine-identities/list-machine-identities"},{"title":"Create Machine Identity","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /machineidentities","href":"/api-reference/machine-identities/create-machine-identity"},{"title":"Get Machine Identity","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /machineidentities/{name}","href":"/api-reference/machine-identities/get-machine-identity"},{"title":"Update Machine Identity","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /machineidentities/{name}","href":"/api-reference/machine-identities/update-machine-identity"},{"title":"Delete Machine Identity","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /machineidentities/{name}","href":"/api-reference/machine-identities/delete-machine-identity"},{"title":"List Machine Identity Credentials","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /machineidentities/{name}/credentials","href":"/api-reference/machine-identities/list-machine-identity-credentials"},{"title":"Rotate Machine Identity Credential","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /machineidentities/{name}/credentials/{connectionName}/rotate","href":"/api-reference/machine-identities/rotate-machine-identity-credential"}]},{"group":"Session Metrics","pages":[{"title":"Get Session Metrics","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /metrics/sessions","href":"/api-reference/session-metrics/get-session-metrics"}]},{"group":"User Management","pages":[{"title":"Handle Organization Invitation","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /orgs/invitations","href":"/api-reference/user-management/handle-organization-invitation"},{"title":"List Service Accounts","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /serviceaccounts","href":"/api-reference/user-management/list-service-accounts"},{"title":"Create Service Account","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /serviceaccounts","href":"/api-reference/user-management/create-service-account"},{"title":"Update Service Account","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /serviceaccounts/{subject}","href":"/api-reference/user-management/update-service-account"},{"title":"Get UserInfo","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /userinfo","href":"/api-reference/user-management/get-userinfo"},{"title":"List Users","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /users","href":"/api-reference/user-management/list-users"},{"title":"Create User","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /users","href":"/api-reference/user-management/create-user"},{"title":"List User Groups","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /users/groups","href":"/api-reference/user-management/list-user-groups"},{"title":"Create User Group","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /users/groups","href":"/api-reference/user-management/create-user-group"},{"title":"Delete User Group","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /users/groups/{name}","href":"/api-reference/user-management/delete-user-group"},{"title":"Answer Signup Origin Survey","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /users/self/signup-origin","href":"/api-reference/user-management/answer-signup-origin-survey"},{"title":"Patch User Slack ID","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json patch /users/self/slack","href":"/api-reference/user-management/patch-user-slack-id"},{"title":"Get User","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /users/{emailOrID}","href":"/api-reference/user-management/get-user"},{"title":"Update User","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /users/{emailOrID}","href":"/api-reference/user-management/update-user"},{"title":"Delete User","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /users/{emailOrID}","href":"/api-reference/user-management/delete-user"}]},{"group":"Organization Management","pages":[{"title":"Get Org Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /orgs/keys","href":"/api-reference/organization-management/get-org-key"},{"title":"Create Org Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /orgs/keys","href":"/api-reference/organization-management/create-org-key"},{"title":"Revoke Org Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /orgs/keys","href":"/api-reference/organization-management/revoke-org-key"}]},{"group":"Plugins","pages":[{"title":"List Plugins","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /plugins","href":"/api-reference/plugins/list-plugins"},{"title":"Create Plugin","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /plugins","href":"/api-reference/plugins/create-plugin"},{"title":"Get Plugin","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /plugins/{name}","href":"/api-reference/plugins/get-plugin"},{"title":"Update Plugin","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /plugins/{name}","href":"/api-reference/plugins/update-plugin"},{"title":"Update Plugin Config","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /plugins/{name}/config","href":"/api-reference/plugins/update-plugin-config"},{"title":"Get Plugin Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /plugins/{name}/conn/{id}","href":"/api-reference/plugins/get-plugin-connection"},{"title":"Upsert Plugin Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /plugins/{name}/conn/{id}","href":"/api-reference/plugins/upsert-plugin-connection"},{"title":"Delete Plugin Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /plugins/{name}/conn/{id}","href":"/api-reference/plugins/delete-plugin-connection"}]},{"group":"Runbooks","pages":[{"title":"Runbook Exec","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /plugins/runbooks/connections/{name}/exec","href":"/api-reference/runbooks/runbook-exec"},{"title":"List Runbooks By Connection","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /plugins/runbooks/connections/{name}/templates","href":"/api-reference/runbooks/list-runbooks-by-connection"},{"title":"List Runbooks","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /plugins/runbooks/templates","href":"/api-reference/runbooks/list-runbooks"},{"title":"List Runbooks","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /runbooks","href":"/api-reference/runbooks/list-runbooks-1"},{"title":"Get Runbook Configuration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /runbooks/configurations","href":"/api-reference/runbooks/get-runbook-configuration"},{"title":"Update Runbook Configuration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /runbooks/configurations","href":"/api-reference/runbooks/update-runbook-configuration"},{"title":"Create Runbook Configuration Entry","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /runbooks/configurations","href":"/api-reference/runbooks/create-runbook-configuration-entry"},{"title":"Update Runbook Configuration Entry","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /runbooks/configurations/{id}","href":"/api-reference/runbooks/update-runbook-configuration-entry"},{"title":"Delete Runbook Configuration Entry","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /runbooks/configurations/{id}","href":"/api-reference/runbooks/delete-runbook-configuration-entry"},{"title":"Create Runbook File","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /runbooks/configurations/{id}/files","href":"/api-reference/runbooks/create-runbook-file"},{"title":"Runbook Exec","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /runbooks/exec","href":"/api-reference/runbooks/runbook-exec-1"},{"title":"List Runbook Rules","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /runbooks/rules","href":"/api-reference/runbooks/list-runbook-rules"},{"title":"Create Runbook Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /runbooks/rules","href":"/api-reference/runbooks/create-runbook-rule"},{"title":"Get Runbook Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /runbooks/rules/{id}","href":"/api-reference/runbooks/get-runbook-rule"},{"title":"Update Runbook Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /runbooks/rules/{id}","href":"/api-reference/runbooks/update-runbook-rule"},{"title":"Delete Runbook Rule","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /runbooks/rules/{id}","href":"/api-reference/runbooks/delete-runbook-rule"}]},{"group":"Proxy Manager","pages":[{"title":"ProxyManager Connect","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /proxymanager/connect","href":"/api-reference/proxy-manager/proxymanager-connect"},{"title":"ProxyManager Disconnect","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /proxymanager/disconnect","href":"/api-reference/proxy-manager/proxymanager-disconnect"},{"title":"ProxyManager Status","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /proxymanager/status","href":"/api-reference/proxy-manager/proxymanager-status"}]},{"group":"Reports","pages":[{"title":"Get Compliance Report","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /reports/compliance","href":"/api-reference/reports/get-compliance-report"},{"title":"Session Reports","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /reports/sessions","href":"/api-reference/reports/session-reports"}]},{"group":"Resources","pages":[{"title":"Lists resources","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /resources","href":"/api-reference/resources/lists-resources"},{"title":"Creates a resource","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /resources","href":"/api-reference/resources/creates-a-resource"},{"title":"Applies a batch of resource plans","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /resources/apply","href":"/api-reference/resources/applies-a-batch-of-resource-plans"},{"title":"Tests connectivity for multiple resources","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /resources/health","href":"/api-reference/resources/tests-connectivity-for-multiple-resources"},{"title":"Creates a batch of resource plans","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /resources/plan","href":"/api-reference/resources/creates-a-batch-of-resource-plans"},{"title":"Gets a resource","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /resources/{name}","href":"/api-reference/resources/gets-a-resource"},{"title":"Updates a resource","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /resources/{name}","href":"/api-reference/resources/updates-a-resource"},{"title":"Deletes a resource","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /resources/{name}","href":"/api-reference/resources/deletes-a-resource"},{"title":"Applies a resource plan","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /resources/{name}/apply","href":"/api-reference/resources/applies-a-resource-plan"},{"title":"Tests connectivity for a resource","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /resources/{name}/health","href":"/api-reference/resources/tests-connectivity-for-a-resource"},{"title":"Creates a resource plan","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /resources/{name}/plan","href":"/api-reference/resources/creates-a-resource-plan"}]},{"group":"Rulepacks","pages":[{"title":"List Rulepacks","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /rulepacks","href":"/api-reference/rulepacks/list-rulepacks"},{"title":"Get Rulepack","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /rulepacks/{id}","href":"/api-reference/rulepacks/get-rulepack"},{"title":"Apply Rulepack to Connections","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /rulepacks/{id}/apply","href":"/api-reference/rulepacks/apply-rulepack-to-connections"}]},{"group":"Search","pages":[{"title":"Search","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /search","href":"/api-reference/search/search"}]},{"group":"Server Logs","pages":[{"title":"List Server Logs","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /server-logs","href":"/api-reference/server-logs/list-server-logs"},{"title":"Stream Server Logs","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /server-logs/stream","href":"/api-reference/server-logs/stream-server-logs"}]},{"group":"Sessions","pages":[{"title":"List Sessions","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sessions","href":"/api-reference/sessions/list-sessions"},{"title":"Exec","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sessions","href":"/api-reference/sessions/exec"},{"title":"Analyze an exec before the run forms","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sessions/analyze","href":"/api-reference/sessions/analyze-an-exec-before-the-run-forms"},{"title":"Create a provisioned session using API Key","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sessions/provision","href":"/api-reference/sessions/create-a-provisioned-session-using-api-key"},{"title":"Retry RDP PII analysis","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sessions/{id}/rdp-detections/retry","href":"/api-reference/sessions/retry-rdp-pii-analysis"},{"title":"Get Session","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sessions/{session_id}","href":"/api-reference/sessions/get-session"},{"title":"Download Session","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sessions/{session_id}/download","href":"/api-reference/sessions/download-session"},{"title":"Download Session Input Command","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sessions/{session_id}/download/input","href":"/api-reference/sessions/download-session-input-command"},{"title":"Approved Exec","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sessions/{session_id}/exec","href":"/api-reference/sessions/approved-exec"},{"title":"Kill Session","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sessions/{session_id}/kill","href":"/api-reference/sessions/kill-session"},{"title":"Update Session Metadata","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json patch /sessions/{session_id}/metadata","href":"/api-reference/sessions/update-session-metadata"},{"title":"Get RDP session PII detections","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sessions/{session_id}/rdp-detections","href":"/api-reference/sessions/get-rdp-session-pii-detections"},{"title":"Get RDP session frames","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sessions/{session_id}/rdp-frames","href":"/api-reference/sessions/get-rdp-session-frames"},{"title":"Stream Session Result","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sessions/{session_id}/result/stream","href":"/api-reference/sessions/stream-session-result"},{"title":"Stream Session Events","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sessions/{session_id}/stream","href":"/api-reference/sessions/stream-session-events"}]},{"group":"Sidecars","pages":[{"title":"List Sidecar Deleted Names","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sidecar-deleted-names","href":"/api-reference/sidecars/list-sidecar-deleted-names"},{"title":"Clear Sidecar Deleted Name","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /sidecar-deleted-names/{name}","href":"/api-reference/sidecars/clear-sidecar-deleted-name"},{"title":"List Sidecar Service Accounts","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sidecar-service-accounts","href":"/api-reference/sidecars/list-sidecar-service-accounts"},{"title":"Create Sidecar Service Account","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sidecar-service-accounts","href":"/api-reference/sidecars/create-sidecar-service-account"},{"title":"Get Sidecar Service Account","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sidecar-service-accounts/{id}","href":"/api-reference/sidecars/get-sidecar-service-account"},{"title":"Update Sidecar Service Account","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /sidecar-service-accounts/{id}","href":"/api-reference/sidecars/update-sidecar-service-account"},{"title":"Delete Sidecar Service Account","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /sidecar-service-accounts/{id}","href":"/api-reference/sidecars/delete-sidecar-service-account"},{"title":"List Sidecars","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sidecars","href":"/api-reference/sidecars/list-sidecars"},{"title":"Create Sidecar","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sidecars","href":"/api-reference/sidecars/create-sidecar"},{"title":"Sidecar Configuration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sidecars/configuration","href":"/api-reference/sidecars/sidecar-configuration"},{"title":"Import Sidecar Configuration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /sidecars/configuration","href":"/api-reference/sidecars/import-sidecar-configuration"},{"title":"Record Sidecar Session Events","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sidecars/events","href":"/api-reference/sidecars/record-sidecar-session-events"},{"title":"Sidecar Handshake","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sidecars/handshake","href":"/api-reference/sidecars/sidecar-handshake"},{"title":"Start a sidecar login","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sidecars/login","href":"/api-reference/sidecars/start-a-sidecar-login"},{"title":"Poll a sidecar login","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sidecars/login/poll","href":"/api-reference/sidecars/poll-a-sidecar-login"},{"title":"Get a sidecar login","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sidecars/login/{code}","href":"/api-reference/sidecars/get-a-sidecar-login"},{"title":"Approve a sidecar login","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sidecars/login/{code}/approve","href":"/api-reference/sidecars/approve-a-sidecar-login"},{"title":"Deny a sidecar login","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sidecars/login/{code}/deny","href":"/api-reference/sidecars/deny-a-sidecar-login"},{"title":"List Sidecar Approval Requests","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sidecars/reviews","href":"/api-reference/sidecars/list-sidecar-approval-requests"},{"title":"Create Sidecar Approval Request","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sidecars/reviews","href":"/api-reference/sidecars/create-sidecar-approval-request"},{"title":"Get Sidecar Approval Status","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sidecars/reviews/{id}","href":"/api-reference/sidecars/get-sidecar-approval-status"},{"title":"Claim Sidecar Approval Request","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sidecars/reviews/{id}/claim","href":"/api-reference/sidecars/claim-sidecar-approval-request"},{"title":"Settle Sidecar Approval Request","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /sidecars/reviews/{id}/settle","href":"/api-reference/sidecars/settle-sidecar-approval-request"},{"title":"Get Sidecar","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sidecars/{nameOrID}","href":"/api-reference/sidecars/get-sidecar"},{"title":"Update Sidecar","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /sidecars/{nameOrID}","href":"/api-reference/sidecars/update-sidecar"},{"title":"Delete Sidecar","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /sidecars/{nameOrID}","href":"/api-reference/sidecars/delete-sidecar"},{"title":"Patch Sidecar Configuration","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json patch /sidecars/{nameOrID}","href":"/api-reference/sidecars/patch-sidecar-configuration"},{"title":"Clear Sidecar Identity","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /sidecars/{nameOrID}/identity","href":"/api-reference/sidecars/clear-sidecar-identity"},{"title":"Get Sidecar Slack Channels","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /sidecars/{nameOrID}/slack-channels","href":"/api-reference/sidecars/get-sidecar-slack-channels"},{"title":"Set Sidecar Slack Channels","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /sidecars/{nameOrID}/slack-channels","href":"/api-reference/sidecars/set-sidecar-slack-channels"}]},{"group":"SPIFFE","pages":[{"title":"List SPIFFE Mappings","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json get /spiffe-mappings","href":"/api-reference/spiffe/list-spiffe-mappings"},{"title":"Create SPIFFE Mapping","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json post /spiffe-mappings","href":"/api-reference/spiffe/create-spiffe-mapping"},{"title":"Update SPIFFE Mapping","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json put /spiffe-mappings/{id}","href":"/api-reference/spiffe/update-spiffe-mapping"},{"title":"Delete SPIFFE Mapping","deprecated":null,"version":null,"openapi":"https://use.hoop.dev/api/openapiv3.json delete /spiffe-mappings/{id}","href":"/api-reference/spiffe/delete-spiffe-mapping"}]}]}]},"basePath":"","title":"Create Connection - Hoop.dev - Automated Access and Data Protection","buildId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","deploymentId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-D_4Sesi0.js","utils-DRHeK26p.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C6d-DUc2.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dex7slho.js","snippetPresets-BcCEBp0Z.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CufowNTX.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-A4lJSCIe.js","shallow-DqoHP7zn.js","getApiPlaygroundDisplay-Cku8AmtL.js","CodeSnippet-CtHQbNqc.js","CodeSnippets-CGo5Cslf.js","Page-BoJxk0m8.js","getPastedJson-M-bKdue4.js","icon-DEqCU4st.js","MethodPill-DnfSSXiJ.js","DuplicateIcon-BHu2PE8M.js","createIcon-BPsE5X7c.js","DynamicMarkdown-Dnt6YhtR.js","SectionHeading-6CtFWqMQ.js","axios-vUo_bRtp.js","Markdown-BoKe_1fI.js","clsx-DM5-sUNJ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CkIdkovK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-B3e6Nh_r.js"]}