- Run SQL queries against Redshift clusters and serverless workgroups
- Read query results, schemas, and table metadata
- Execute statements asynchronously and poll for completion
- Integrate enterprise data warehouse data into your Lovable app
Common use cases and example apps
Use Amazon Redshift when your Lovable app needs warehouse data such as revenue metrics, usage aggregates, or table metadata from a provisioned cluster or serverless workgroup.How Amazon Redshift connections work
Each Amazon Redshift connection is tied to a single AWS region, a set of IAM credentials, and one target: either a Redshift Serverless workgroup or a provisioned cluster. When you connect Amazon Redshift, Lovable’s connector gateway signs every Data API request with your credentials. The credentials stay on the server and never reach your published app. Within your Lovable workspace:- You can create multiple Amazon Redshift connections.
- Each connection targets a specific region and uses its own IAM credentials.
- Each connection targets either Redshift Serverless or a provisioned cluster, not both. To use both, create a connection for each.
- Multiple projects within a single workspace can use the same connection.
How to connect Amazon Redshift
Who can create Amazon Redshift connections depends on your plan and workspace settings. App + chat connectors are available by default on Free, Pro, and Business plans. On Enterprise plans, they are effectively disabled at first: Who can create connections and clients defaults to No one until an admin changes it in Connectors → Admin settings → App + chat connectors. When the connection is created, you can link it to the projects where you want to use it. Anyone building in a project can ask Lovable in chat to link their project to it.Prerequisites
Before connecting Amazon Redshift, make sure you have:- An AWS account with a Redshift provisioned cluster or serverless workgroup
- An IAM user with the Redshift Data API permissions listed below
- The AWS region your cluster or workgroup runs in
- Permission to create connections in your Lovable workspace (see Who can create connections and clients)
All queries made through this connector run in your AWS account, and AWS bills you directly for Redshift usage, not Lovable.
Step 1: Create an IAM user with Redshift Data API access
Before setting up the connection in Lovable, create an IAM user in AWS with the minimum permissions needed. Redshift Data API access has three parts: theredshift-data operations your app calls, a credential-fetch action that depends on how you authenticate to the database, and, for Redshift Serverless, an action that lets the app discover your workgroup.
1
Open the AWS IAM console
Go to the AWS IAM console and create a new IAM user, or use an existing one, for Lovable to use.
2
Attach a Redshift policy
Create and attach an inline policy, or managed policy, with the following permissions.This policy controls which Data API operations the connection can call. It cannot control the SQL those operations carry, so it is not how you make a connection read-only. See Restrict a connection to read-only.
3
Generate access keys
In the IAM user’s Security credentials tab, create an access key. Save both the Access key ID and Secret access key, since you’ll need them in the next step.
Step 2: Connect Amazon Redshift to Lovable
You can create multiple connections using different IAM credentials.1
Open Amazon Redshift in Connectors
Open Connectors and select Amazon Redshift. For the other places to open the catalog from, see Where to find connectors.
2
Add a connection
Click Add connection.
3
Configure the connection
- Display name: name the connection, for example
Redshift Prod. This name is only used inside Lovable to identify the connection. - Deployment type: choose how your Redshift runs. This choice decides which of the fields below you fill in.
- Serverless (default): you query a Redshift Serverless workgroup.
- Provisioned cluster: you query a provisioned Redshift cluster.
- AWS region: select the region where your cluster or workgroup runs. The default is US East (N. Virginia, us-east-1). IAM credentials are global, but Redshift resources are regional. A connection with the wrong region still passes verification, then fails every query with a not-found error.
- Access key ID: paste the IAM access key ID from the previous step.
- Secret access key: paste the IAM secret access key paired with the access key ID.
- Workgroup, for Serverless only: the Redshift Serverless workgroup your app’s queries target, for example
my-workgroup. - Cluster identifier, for a provisioned cluster only: the cluster your app’s queries target, for example
my-cluster. Find it in the Redshift console or runaws redshift describe-clusters --region <region>. - Database: the database queries run against by default, for example
dev. - Database user (optional), for a provisioned cluster only: the database user your app connects as, for example
lovable_readonly. Use a dedicated read-only user where you can. Leave it empty to connect as your IAM identity, which needsredshift:GetClusterCredentialsWithIAMinstead ofredshift:GetClusterCredentials.
Deployment type controls which fields you see. Pick Serverless and you fill in Workgroup. Pick Provisioned cluster and you fill in Cluster identifier and, optionally, Database user. Every field shown is required except Database user. You can switch the deployment type later by editing the connection.
4
Choose who can use this connection
Under Who can use this connection, decide who in your workspace can use the connection:
- Only you (default): only the person creating the connection can use it and its associated data.
- Invite specific people: only you and explicitly added workspace members can use the connection and its associated data.
- Invite entire workspace: click Invite entire workspace to make the connection available to everyone in your Lovable workspace.
5
Connect
Click Connect. Lovable verifies the credentials by listing statements in your region. If verification fails, check that the keys are correct, the region matches your cluster or workgroup, and the IAM policy includes
redshift-data:ListStatements.Verification only checks redshift-data:ListStatements, so a connection can verify successfully and still fail on the first query. If queries return AccessDeniedException, the IAM policy is most likely missing the credential-fetch action for your auth path (see Step 1).Restrict a connection to read-only
IAM controls which Data API operations a connection can call. It cannot control the SQL those operations carry:redshift-data:ExecuteStatement is required for any query, including a plain SELECT, and the same permission runs DROP TABLE. Gate writes with Redshift database grants, and use IAM to pin which database identity the connection runs as.
Find the database user your connection runs as
Grants attach to a database user, so first determine which user your connection’s statements run as. That depends on the deployment type and whether the connection sets a Database user:
On the two
IAM: paths, Redshift derives the database user from your IAM identity, so an IAM user named lovable-redshift becomes the database user IAM:lovable-redshift. Redshift creates it automatically the first time the connection runs a statement, so connect once before you grant anything.
Always double-quote an
IAM: name in SQL. The colon is not valid in a bare identifier, and unquoted identifiers fold to lowercase, so IAM:lovable-redshift would become iam:lovable-redshift and match nothing.Grant read-only access
On the provisioned path with a Database user, create the user first. The Data API does not create it for you:PASSWORD DISABLE means the user can only sign in with the temporary IAM credentials the Data API uses.
Then grant reads. On the two IAM: paths, skip the CREATE USER above and use "IAM:lovable-redshift" in place of lovable_readonly:
GRANT ... FOR TABLES IN SCHEMA is a scoped permission: it covers every current and future table in the schema, whoever creates it. Repeat both statements for each schema your app reads. Redshift has no database-level CONNECT privilege, so there is nothing else to grant.
Pin the identity in IAM
On the provisioned path with a Database user, IAM can force every statement through that user. Grantredshift:GetClusterCredentials scoped to it, and leave out redshift:GetClusterCredentialsWithIAM:
AccessDeniedException. On the Serverless and IAM-identity paths there is no equivalent, because the database identity is the IAM user itself. Use a dedicated IAM user per connection and grant it only what it needs.
Provisioned clusters and serverless workgroups
The connection records how your Redshift is deployed and what to query. For Serverless, that is the Workgroup and Database. For a provisioned cluster, it is the Cluster identifier, Database, and optionally a Database user. Every Data API request still names its target, and Lovable writes these values into the code it generates, so you do not have to repeat them in each prompt. Your app’s server code can also read the Workgroup and Database user as theREDSHIFT_WORKGROUP and REDSHIFT_DB_USER environment variables.
The connector does not route the Redshift management API (for example, DescribeClusters), which uses a different request protocol. To find a cluster identifier, look it up in the Redshift console or run aws redshift describe-clusters --region <region>.
Limitations
The Amazon Redshift connector cannot:- Call AWS services other than the Redshift Data API and Redshift Serverless. The gateway only forwards
RedshiftData.*andRedshiftServerless.*operations, so your app cannot read S3 objects or manage other AWS resources through this connection. - Use the Redshift management API, such as
DescribeClusters, to list clusters. Find cluster identifiers in the Redshift console or with the AWS CLI. - Enforce read-only access. A connection runs whatever SQL its database identity is allowed to run, so scope it with database grants. See Restrict a connection to read-only.
- Run statements synchronously. Results are available only after Redshift finishes processing the statement.
- Refresh or rotate access keys automatically. To rotate, create a new access key in IAM and update the Lovable connection.
- Support per-end-user AWS login. Each connection represents a single set of IAM credentials shared across all projects linked to it.
Manage your connection
Connections are managed from Connectors: select , then open the connection.- Unlink projects to remove access from specific projects while keeping the connection available for others. See Unlink projects from a connection for the steps.
- Delete the connection to remove it from the workspace entirely. Deleting is permanent. It removes the credentials from all linked projects, and app features that use stop working until a new connection is added. See Delete a connection for the steps and who can delete.