Skip to main content
A connection is a saved credential for one external service, such as an AWS account, a Kubernetes cluster, or a GitHub organization. Agents can only see and do what your connections allow, so this page covers how to add one, scope it, check it, and keep it healthy. The full list of services is in the connection catalog.

Add a connection

1

Open Connections

In the sidebar, click More → Workspace settings → Connections. The Builtin Connections tab lists every supported service. Filter by category or search by name. When a setup guide says “open Connections”, it means this screen.
Connections screen with the service list on the left and a selected connection's detail panel on the right

Connections: pick a connection to see its discovery, settings, Allow writes switch and agents

2

Open the setup guide and follow its order

Open the setup guide for your service from the catalog, or click Setup guide on the service’s detail panel. Each guide lists the minimum permissions for the credential. The order depends on the service:
3

Connect

Select the service and click Connect. Enter or upload the credential and click Connect in the dialog.Services that support several accounts, such as AWS, Google Cloud, and SSH, also ask for an Alias (a short name like production) and a Description. Agents read the description to pick the right account, so make it specific: Production AWS account, us-east-1 workloads.
A service allows several connections only when its detail panel shows Supports multiple connections. Others, such as Microsoft Azure, Kubernetes, VMware vCenter, and every service you connect by OAuth sign-in, allow one connection per workspace. To connect a second Azure tenant or a second cluster, use a separate workspace.
4

Wait for the test

CloudThinker tests the connection before saving it. For most services the test calls the service with your credential. For some, such as Argo CD, Buildkite, CircleCI, Clarity, Databricks, Notion, Prowler, Render, and Rollbar, it only checks that the connection’s tool starts, so a wrong token can still show Connected. On those, the verify prompt in the setup guide is the real test.Success state: the service shows Connected in the Connections list.
5

Ask a question against it

Open a chat and ask something only that service can answer. Each setup guide has a verification prompt.
Success state: the answer names your real account ID or project, not a generic explanation.

Set the environment

Each connection has an Environment: Production, Staging, Development, or Not set. It labels the connection for the people and agents who read it. Rules (conditions that decide whether an agent’s change runs, waits for a person, or is refused) don’t read it.
The connect dialog doesn’t ask for an environment, so set it right after you connect. Single-connection services, such as Microsoft Azure, and every OAuth service, such as GitHub, Linear, and Sentry, can’t be changed from Not set. To treat one connection differently from another, write a Rule that names that connection.
On a service that supports multiple connections, each account shows as a row on the service’s detail panel. To set the environment, click the pencil icon on the account’s row, and update Environment in the Edit Instance dialog.

What happens after you connect

The first time a connection reaches Connected, CloudThinker runs Discovery: one background investigation of the service you just connected. Results fill the Discovery section of the connection’s detail panel. Discovery is often the first useful answer you get, so check it before you write your first prompt. It runs automatically once, for at most 30 minutes. You can rerun it with Run Discovery, for example after you widen the credential’s permissions. You need the workspace Admin role to rerun it. Discovery spends credits, and the cost depends on how much the service holds. It can’t use daily credits (the 100 free credits a day that cover chat on the Light model only), so it needs credits in the workspace balance. If the balance is too low, it pauses with a notice. Add credits, then click Run Discovery. Discovery uses the same tools and Approvals as a chat, but no one is there to answer, so it never waits for approval. A call that would ask a person is skipped, and Discovery carries on with the reads it can make. On Cloudflare and PostHog, where every API call goes through approvals, on Databricks and Neon, where every SQL statement does, and on Firebase, where project switches and deploy status checks do, Discovery finds less whenever those calls would ask a person. If Discovery hits its time limit, it ends as Partial discovery and keeps the results it already verified. If it verified nothing, it shows Discovery could not finish. Your connection keeps working either way.

How access works

Every connection belongs to one workspace. Anyone working in that workspace, including the built-in CloudThinker agent and your custom agents, can use it without setting it up again. Organization Owners and Admins hold workspace Admin in every workspace. See Workspace roles.
On most connections that have it, Allow writes starts on. That includes AWS, Google Cloud, Azure, Kubernetes, GitHub, GitLab, Bitbucket, Azure DevOps, AWS CodeCommit, Cassandra, Drata, FortiGate, Okta, and Rootly. A few start off, such as Docker Hub, Fly.io, FireHydrant, and Snowflake. Argo CD has no toggle: its READ_ONLY field in the connect form starts on Full access. If the credential you connect has any write permission, agents can propose changes the moment you connect, and your Rules and Approval mode decide each one. There’s no workspace or organization setting to start it off, so the controls are a read-only credential and turning off Allow writes on each connection. Each setup guide’s Write access or Agent capabilities section says what its connection starts with.
Two controls decide what an agent can do with a connection:
Nested limits: the credential's permissions contain Allow writes, which contains Rules and Approval mode; ClickHouse-style connections skip Rules and Approval mode.Nested limits: the credential's permissions contain Allow writes, which contains Rules and Approval mode; ClickHouse-style connections skip Rules and Approval mode.

The credential is the ceiling, Allow writes opens changes, and Rules and Approval mode settle each one, except on Connection setting, no approvals connections.

How writes are controlled depends on the connection. Each setup guide’s Agent capabilities section says which model applies.
On a Connection setting, no approvals connection such as ClickHouse, turning writes on lets agents change data with no Rule or approval in the way. Use a read-only database user unless you want that.
Allow writes starts on for most connections because the credential is the ceiling: a read-only credential already blocks every change. Start read-only, and widen the credential only when you have a specific change you want agents to make. Connections sign in one of two ways:

Reaching private services

Connections run from CloudThinker Cloud, so the service must accept connections from the internet. That matters for anything on a private network, such as an internal vCenter, PostgreSQL, Prometheus, or Argo CD.

Rotate a credential

You can replace a saved credential without disconnecting. The connection keeps its alias, settings, and history. AWS role connections use short-lived STS credentials, so there’s nothing to rotate: the External ID stays the same. Access keys, client secrets, JSON keys, and API tokens do need it.
1

Create the new credential at the provider

Create the new key or token first. Keep the old one active until the swap is done.
2

Replace it in CloudThinker

Open the service in More → Workspace settings → Connections, click the pencil icon on the account’s row, and in Edit Instance click Replace… next to the saved credentials. Enter the new values and click Save and test.Success state: the test passes and the connection stays Connected. If the test fails, CloudThinker keeps the previous credential and shows the error.
3

Revoke the old credential

Delete or deactivate the old key at the provider.
Single-connection services, such as Microsoft Azure and Backstage, have no pencil icon. Their Replace credentials button appears only while the connection shows Error, so to rotate early, disconnect and connect again with the new value. The exception is the token-based Git providers (GitLab, Bitbucket, Azure DevOps, and AWS CodeCommit): once Review is set up on them, rotate the token in Review → Settings → Connection actions → Update token, with no disconnect. See Azure DevOps and Bitbucket. A disconnect and reconnect starts a new connection, so plan it for a quiet period:
  • Agents, scheduled automations, and Optimize refreshes can’t use the service between the disconnect and the reconnect.
  • Discovery runs again and spends credits.
  • Allow writes goes back to its default, which is on for most connections. Turn it off again if you had it off.
  • Check that Rules naming the connection still list it.
Most OAuth connections don’t have a credential to replace. To switch the signed-in account, disconnect and connect again. Asana is the exception: it stores your Asana app’s Client secret, and you enter it again each time you reconnect.

When a connection breaks

If a credential stops working in the background (an expired token, a revoked key, a deleted role), the connection switches to Error. For AWS, that takes three background failures in a row, so one blip doesn’t trip it. Other connections switch when a background token refresh or a run hits an authentication failure. Workspace admins get one notification per outage, not one per failed retry. A test you run yourself never notifies anyone. While a connection shows Error, scheduled work that depends on it is skipped, including Optimize cost refreshes, scheduled automations, and Pulse alert polling. To recover:
  1. Fix the cause at the provider, for example restore the role or issue a new key.
  2. Open the connection. The detail panel shows the error. Click Retry to test the saved credential again, or Replace credentials to enter a new one. Replace credentials opens the same Edit Instance dialog as Replace…. For an OAuth connection, click Connect to sign in again.
  3. When the status returns to Connected, scheduled work resumes on its next cycle.

Disconnect a connection

Open the service in More → Workspace settings → Connections. On a service with account rows, click the trash icon on the account’s row. On a single-connection service, click Disconnect on the detail panel. Confirm in the Disconnect dialog. It can’t be undone. Agents lose access to the service as soon as the disconnect finishes. Then delete the role, key, or token at the provider, because disconnecting doesn’t remove it there. If you connect the service again, it’s a new connection:
  • Discovery runs again and spends credits.
  • Allow writes goes back to its default, and Environment goes back to Not set.
  • Rules match connections by Alias. Reuse the same Alias when you reconnect, and Rules that name the connection keep matching.

Security

  • Least privilege — grant only the permissions the agents need for your use case; start read-only and widen later.
  • Read-only by default — use read-only credentials unless you want agents to make changes through this connection.
  • Rotate credentials — rotate keys and tokens on your normal schedule; CloudThinker picks up the new value when you update the connection.
  • Revoke on offboarding — remove the credential at the provider when you delete a connection or a teammate leaves.
A connection isn’t read-only on its own. Many start with Allow writes on (see How access works), so a read-only credential is what keeps a connection read-only. How CloudThinker handles what you connect: See Security for encryption details, retention, and the model provider.

Connection catalog

Cloud

Infrastructure

Containers

App Platforms

Databases

AI & Vectors

Monitoring

Incidents

Opsgenie isn’t a connection. Send its alerts to Resolve as a webhook signal from Resolve → Integrations.

Code & CI/CD

Security

Compliance

Productivity

Analytics

Messaging

Custom MCP

If a service isn’t listed, connect it as a custom MCP connection. MCP (Model Context Protocol) is an open standard for giving AI agents tools. Chat platforms are set up as workspace integrations, not connections: see Slack, Microsoft Teams, and Google Chat. Connecting GitHub, GitLab, Bitbucket, or Azure DevOps also powers Review.

Next steps

Connect AWS

Create a read-only IAM role with one script in CloudShell.

Connect Google Cloud

Create a viewer service account and upload its JSON key.

Approvals

Decide which changes agents can make on their own and which need a person.

Custom MCP connections

Connect a service that isn’t in the catalog.