REDIS_URL): agents can run the commands that user’s ACL allows, and the connection’s write tools go through Approvals first.
Prerequisites
- A Redis endpoint CloudThinker can reach from the internet. Agents connect from CloudThinker Cloud, so
localhostand private addresses resolve there, not on your network. There’s no private-link option, so VPC-only services such as Amazon ElastiCache and MemoryDB can’t connect. See Reaching private services. - Redis 6 or later if you want a dedicated ACL user. Older versions only support a single shared password.
- Admin access to run
ACL SETUSER, or to create users in your managed provider’s console.
Setup
1
Create a read-only user
- Self-hosted Redis
- Managed Redis
Create a user that can read keys and run the diagnostic commands agents use, and nothing else:
--askpass prompts for the admin password, so it stays out of your shell history. Add --user <admin-user> if you don’t sign in as default. Keep the quotes around '+client|list': without them the shell reads | as a pipe.Save it so it survives a restart: run ACL SAVE if you use an aclfile, or CONFIG REWRITE if your users live in redis.conf.2
Check the user is read-only
redis:// only if your server doesn’t use TLS. A scheme that doesn’t match the server fails with a connection error, not NOPERM.Success state: SET fails with NOPERM, and INFO memory prints memory stats.3
Open network access
Allow inbound connections on the Redis port from CloudThinker’s egress IPs in your firewall, security group, or provider allowlist. These docs don’t publish CloudThinker’s egress IP list: ask your CloudThinker contact, or contact us. The port is
6379 by default, 6380 for Azure TLS, and assigned per database on Redis Cloud. On self-hosted Redis, make sure bind in redis.conf isn’t only 127.0.0.1.4
Add the connection in CloudThinker
Open More → Workspace settings → Connections, select Redis, and click Connect on its detail panel. In the dialog, optionally change the Alias and Description. Paste the URL into REDIS_URL and click Connect:Success state: the connection shows Connecting and Verifying, then Connected. CloudThinker then runs Discovery once: a read-only look at the server whose results show in the Discovery section of the connection’s detail panel.
Connection details
URL-encode special characters in the password (
@ becomes %40).
Required permissions
Agent capabilities
Verify the connection
maxmemory policy, and a key count for each database index. A NOPERM error names the missing command. Add it with ACL SETUSER cloudthinker-readonly, then ask again.
Example prompts
Write access
The Redis connection has write tools. If the ACL allows writes, each one goes through Approvals first, and a rule can ask first or refuse them. Every change an agent makes goes through your workspace’s Approvals first. On the default Auto · Rules + AI · Ask me mode, AI judgment can let a safe change run without asking — and an Allow Rule can too, once CloudThinker turns on Rule enforcement for your workspace. Choose Manual to approve every change yourself.Troubleshooting
NOAUTH or WRONGPASS
NOAUTH or WRONGPASS
The user or password is wrong or missing. Check both in REDIS_URL, including URL-encoding. On Upstash, use
default as the user and the database token as the password. On self-hosted Redis, run ACL LIST to confirm the user exists and is on.Connection closed, or the connection never reaches Connected
Connection closed, or the connection never reaches Connected
Usually a malformed URL. Check the scheme (
rediss:// for a TLS endpoint, which Upstash requires), the host, the port, and that a password is present. A REST or SDK URL from your provider won’t work: use the TCP or Redis CLI one.Connection refused or timed out
Connection refused or timed out
CloudThinker can’t reach the server. Check your firewall, security group, or provider allowlist, and that
bind in redis.conf isn’t only 127.0.0.1. A server on a private network needs a reachable endpoint first.NOPERM on INFO, CLIENT LIST, or a read command
NOPERM on INFO, CLIENT LIST, or a read command
The ACL is missing a command. Add
+info, '+client|list', or the category the error names with ACL SETUSER cloudthinker-readonly ..., then ask again. NOPERM on a write command is expected for a read-only user.Command is not available: FT.* or JSON.*
Command is not available: FT.* or JSON.*
The server doesn’t have the RediSearch or RedisJSON module loaded. Many hosted tiers don’t ship them. Everything else keeps working.
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.
- Use
rediss://: plainredis://sends the password and every value unencrypted. Use TLS whenever your server or provider supports it. - Scope keys: replace
~*with the prefixes agents need, such as~cache:*, so session tokens or other sensitive keys stay out of reach.
Related
MongoDB
Connect MongoDB or Atlas in read-only mode.
Approvals
Decide which Redis writes run, wait for a person, or are refused.