Resources
Learn about connecting your data to Retool.
You can connect almost any data source and make it available for use in your Retool organization as a resource. Retool supports a wide range of data source integrations that enable you to connect to almost any database or API.
Data sources
A data source is somewhere you store and perform operations with data. This could be a PostgreSQL database, the Twilio REST API, an Amazon S3 bucket, etc. You can add as many data sources as you need to Retool and make them available for users to query.
Resources
A resource is a saved set of user-configured properties that determine how Retool connects to data source. You create a resource for each data source you want to use with Retool. You can then select the resource when writing a query so you can interact with the data.
Each resource has its own configuration options that Retool uses when interacting with a data source. This configuration can include:
- Authentication credentials and flow (username and password, API key, OAuth, etc.)
- Database connection settings (host, port, database name, etc.)
- API settings (base URL, default headers, cookies, etc.)
Integrations
Integrations are the available data source types for which you can create a resource. Retool includes built-in integrations for many popular data sources that require minimal configuration, such as SQL databases, Twilio, and Stripe. If Retool doesn't have a built-in integration for a particular type of data source, you can connect to almost any API using REST, GraphQL, or SOAP integrations.
How resources work
Resources store the required settings for Retool to connect to your data source. This simplifies how you query data sources while ensuring access is secure.
When a query is run for a resource, Retool proxies the request to the data source, server-side, using the resource's configuration settings. This means only Retool directly connects to a data source, not your users.
Retool abstracts away all of the complexities when connecting to a data source from your users. They only need to select the resource to use when writing a query. The type of data source is also displayed but your users only need to specify the resource. In addition, you can connect different data sources of the same type. For example, you can add multiple Amazon S3 buckets as different resources to distinguish their usage.
With this approach, users don't interact directly with your data sources. Retool avoids any client-side connections to the data source that could expose credentials and ensures all interactions use the same conditions. Resources also make query caching possible, which allows Retool to serve cached data and reduce the number of requests to a data source—potentially reducing costs.
Authentication
Retool supports a number of API and database authentication methods. These include:
- Auth0
- Basic
- Digest
- OAuth 1.0
- OAuth 2.0
- Session based (deprecated)
- AWS v4
- AWS IAM
You can also configure custom authentication to perform complex or bespoke resource authorization.
Resource actions
The •••
menu contains various resource actions. Some available options include:
- Rename
- Duplicate
- Move to folder
- Protect resource (only available if you use Source Control)
- Delete
You can also access a subset of actions when editing a resource, either from the resource configuration page or when you edit a resource within the App IDE.
Duplicating a resource creates a resource with the same configuration and credentials. This includes authentication tokens used to authenticate with the resource. The duplicate resource also inherits the default permissions of the folder that the resource is created in.