Linking PostgreSQL as a Source
This guide walks through connecting a PostgreSQL database to Actioneer. The setup creates a dedicated database user withSELECT-only permissions on the schemas you specify.
| Prerequisites | PostgreSQL instance (self-hosted, RDS, Cloud SQL, or any managed provider), Actioneer account |
| Access granted | SELECT queries on specified schemas |
| Estimated time | ~15 minutes |
| Actioneer IP | 35.244.14.238 |
Actioneer cannot insert, update, delete, or modify any data, tables, or database settings.
Locate your PostgreSQL connection details
Three values are needed: the host address, port, and database name.AWS RDS / Aurora: Open your RDS instance → Connectivity & security tab. The Endpoint is the host. Port is shown next to it (default
5432). The database name is on the Configuration tab.Google Cloud SQL: Open your Cloud SQL instance → Overview tab. The Public IP address is the host. Port defaults to 5432. The database name is under Databases in the left sidebar.Supabase: Go to Settings → Database. The host, port, and database name are listed under Connection parameters.Self-hosted: Use the hostname or IP address of your PostgreSQL server. The default port is 5432. List databases with \l in psql.| Value | Location | Example |
|---|---|---|
| Host | Provider console or server config | my-db.abc123.us-east-1.rds.amazonaws.com |
| Port | Provider console or server config | 5432 |
| Database Name | Provider console or \l in psql | analytics |
Create a read-only database user
Connect to your PostgreSQL instance using a SQL client (psql, pgAdmin, or your provider’s query editor) and run the following. Replace
your_schema with the schema Actioneer should query.Replace
your_schema with your actual schema name (e.g., public or reporting). The Database Name is the top-level database; your_schema is a namespace within it. Run the GRANT statements for each schema Actioneer should access.Allow Actioneer's IP address
If your PostgreSQL instance restricts inbound connections (most managed providers do by default), add Actioneer’s IP so it can reach your database.AWS RDS / Aurora
- In the AWS Console, open EC2 → Security Groups.
- Find the security group attached to your RDS instance (visible on the instance’s Connectivity & security tab).
- Click the security group → Inbound rules → Edit inbound rules.
- Add a rule: Type = PostgreSQL, Port = 5432, Source = Custom →
35.244.14.238/32. - Click Save rules.
- Go to your Cloud SQL instance → Connections → Networking → Authorized networks.
- Click Add a network. Name it
Actioneerand enter35.244.14.238/32. - Click Save.
- Add the following line to your
pg_hba.conf:
- Ensure your firewall allows inbound TCP on port
5432from35.244.14.238. - Reload the configuration:
SELECT pg_reload_conf();
If your instance is in a private network with no public endpoint, skip this step and use the SSH Tunnel option in Actioneer instead (see the connection form in the next step).
Connect PostgreSQL in Actioneer
- In Actioneer, click Data in the left sidebar.
- Select PostgreSQL from the list of data sources.
- When prompted, select Direct Connection.
- Complete the connection form:
| Field | Value |
|---|---|
| Connection Name | A descriptive label, e.g. Production PostgreSQL |
| Host | From Step 1 (e.g., my-db.abc123.us-east-1.rds.amazonaws.com) |
| Port | From Step 1 (e.g., 5432) |
| Database Name | From Step 1 (e.g., analytics) |
| Username | actioneer_readonly |
| Password | The password set in Step 2 |
| SSH Tunnel | Optional — enable to connect through a bastion host if your PostgreSQL instance is in a private network with no public endpoint |
- Click Connect.
Common questions
Can Actioneer modify data in PostgreSQL?
Can Actioneer modify data in PostgreSQL?
No. The
actioneer_readonly user holds only SELECT and USAGE grants. It cannot insert, update, delete, or alter any objects in your database.When should I use the SSH Tunnel option?
When should I use the SSH Tunnel option?
Enable SSH Tunnel if your PostgreSQL instance is in a private network (e.g., an RDS instance in a private subnet with no public endpoint). The tunnel is a network routing mechanism — it routes traffic through a bastion host that has access to your private instance. It does not replace or provide encryption. TLS encryption is applied to all Actioneer connections independently, regardless of whether SSH Tunnel is enabled.
How does Actioneer protect credentials?
How does Actioneer protect credentials?
All credentials are encrypted at rest with AES-256 and encrypted in transit with TLS 1.3. They are never stored in plain text or logged. Actioneer is SOC 2 Type II certified, ISO 27001 certified (audited by Schellman), and GDPR compliant.
Need a hand?
Stuck on a step or running into an error? Reach out at connect@actioneer.com.