Cargo ships with a default managed BigQuery warehouse, so you can start
without connecting anything. Follow this guide only if you want to bring your
own Snowflake instance. See System of record
for what a SOR is and how to operate it from the CLI once connected.
Permissions
What Cargo can do- Read data from schemas and tables, even if they are spread across multiple databases
- Write data into new schemas and tables
- Overwrite existing schemas and tables (Cargo always creates its own schemas and tables when needed)
Before you begin
To start, you need an existing Snowflake account with appropriate admin access to create databases, warehouses, roles, and users.Step 1: Create a dedicated database
Create a dedicated database for Cargo where all data managed by Cargo will be stored. Create a database called “cargo_db”Step 2: Create a user for Cargo
Grant the necessary permissions for Cargo to run commands as an authenticated user on the database you just created. Create a role for Cargocargo_db database, grant the appropriate permissions:
Step 3: Verify granted privileges
Make sure the Cargo role has access to the following permissions oncargo_db: OWNERSHIP, MODIFY, MONITOR, USAGE, CREATE SCHEMA.
Show granted privileges on cargo_db
Step 4: Set up RSA key authentication
You must provide an RSA private key for authentication. Generate a private keyrsa_key.pub (excluding the header and footer lines) and run:
Step 5: Configure allowed IP addresses
If you’re using Snowflake’s network policy to restrict access, add these Cargo IP addresses to your allowlist:| IP Address |
|---|
3.251.34.134 |
54.220.135.99 |
79.125.105.52 |
Step 6: Set up system of record
Now that we have all the required elements, navigate to workspace settings and select System of record. Fill in the settings form with the data we gathered in the previous steps:| Field | Value |
|---|---|
| Account name | Your Snowflake account identifier |
| Database | cargo_db (created in Step 1) |
| Warehouse | cargo_wh (created in Step 2) |
| Role | cargo_role (created in Step 2) |
| User | cargo_user (created in Step 2) |
| Password | The password you set in Step 2 |
| RSA Private Key | Contents of rsa_key.p8 |
| Scope | Choose Database or Schema scope |
Database scope allows Cargo to create multiple schemas within
cargo_db.
Schema scope restricts Cargo to a single schema.Next steps
System of record
Query, migrate, and monitor your SOR from the CLI.
Query your data
Build data models and run SQL against your warehouse.
Snowflake actions
Insert, update, upsert, and delete records in workflows.
Models
Create data models on top of your Snowflake tables.

