Supported Destinations
Google BigQuery
Snowflake
Google Sheets
Exported data
Each export contains business cases in your workspace, flattened to one row per opportunity that has a business case.Export Methods
Setting Up BigQuery
1. Create a Service Account
Open the GCP Console
Create a service account
minoa-data-export and click Create and Continue.Grant permissions
- BigQuery Data Editor (
roles/bigquery.dataEditor) — allows creating tables and writing data - BigQuery Job User (
roles/bigquery.jobUser) — allows running queries
Generate a JSON key
2. Create the Target Dataset
If you don’t already have a dataset for Minoa data, create one:Go to BigQuery
Create a dataset
minoa_exports), select a data location, and click Create Dataset.Minimum Permissions Summary
Setting Up Google Sheets
Google Sheets uses the same GCP service account authentication as BigQuery. You’ll create a service account, enable the Google Sheets API, and share your spreadsheet with the service account.1. Create a Service Account and JSON Key
Open the GCP Console
Create a service account
minoa-sheets-export and click Create and Continue.Skip role assignment
Generate a JSON key
2. Enable the Google Sheets API
Open the API Library
Enable the API
3. Share the Spreadsheet with the Service Account
Find your service account email
client_email field contains the service account email address — it looks like minoa-sheets-export@your-project.iam.gserviceaccount.com.Share the spreadsheet
Note the Spreadsheet ID and sheet name
/d/ and /edit:Sheet1).Minimum Permissions Summary
Limitations
Setting Up Snowflake
1. Generate an RSA Key Pair
Snowflake’s SQL REST API uses key-pair authentication. You’ll generate an RSA key pair, register the public key with your Snowflake user, and provide the private key to Minoa.Generate a private key
minoa_rsa_key.p8.Extract the public key
Get the public key value
2. Create a Snowflake User and Assign the Key
Create a dedicated user (recommended)
Assign the public key
Create a role with minimum privileges
Minimum Permissions Summary
Security
Minoa is designed to meet enterprise security requirements for data export:- Network egress — Minoa can provide a fixed egress IP address for data export traffic upon request, making it easy to add Minoa to your firewall allowlist or network policy. Contact your Minoa account team for details.
- Tightly scoped permissions — Each destination setup above uses the minimum permissions necessary. Minoa never requires admin-level access to your data warehouse.
- Dedicated credentials — We recommend creating a purpose-built service account (GCP) or user (Snowflake) exclusively for Minoa exports, separate from any human user accounts. This simplifies auditing and lets you revoke access independently.
Configuring an Export in Minoa
Navigate to Data Export
Name your export
BigQuery - Business Cases or Snowflake - Business Cases.Select your destination
Provide credentials
- BigQuery / Google Sheets: Upload the service account JSON key file you downloaded earlier.
- Snowflake: Enter your Snowflake username and paste the contents of the private key file (
minoa_rsa_key.p8).
Configure the destination
- BigQuery: Enter your GCP Project ID, Dataset ID, and a Table ID (e.g.,
business_cases). - Snowflake: Enter your Account identifier (e.g.,
orgname-accountname), Database, Schema, Table, and Warehouse. - Google Sheets: Enter the Spreadsheet ID (from the spreadsheet URL) and the sheet (tab) name.
Set interval and export method
Test and save
Monitoring Exports
Runs Tab
The Runs tab shows a history of all export executions:- Status — Green (completed), yellow (completed with errors), red (failed), or blue (running)
- Rows Exported — Number of records written to the warehouse
- Duration — How long the export took
- Errors — Count of any errors encountered
Logs Tab
The Logs tab provides detailed log entries across all runs. You can filter by:- Level — INFO, WARN, or ERROR
- Search — Search log messages or filter by run ID
Troubleshooting
Export fails with 'permission denied'
Export fails with 'permission denied'
USAGE on the warehouse, database, and schema. For Google Sheets, confirm the spreadsheet is shared with the service account email as an Editor.Table is not being created automatically
Table is not being created automatically
CREATE TABLE permission on the target dataset (BigQuery) or schema (Snowflake). If the table already exists with a different schema, the export may fail — drop or rename the existing table and let Minoa recreate it.Snowflake authentication errors
Snowflake authentication errors
- Confirm the private key is in PKCS#8 PEM format (starts with
-----BEGIN PRIVATE KEY-----). - Verify the matching public key is registered on the Snowflake user: run
DESC USER minoa_export_userand check theRSA_PUBLIC_KEYproperty. - Ensure the account identifier matches exactly (e.g.,
orgname-accountname). You can find this in your Snowflake URL:https://<account>.snowflakecomputing.com.
Exports show 'completed with errors'
Exports show 'completed with errors'
Data appears stale or not updating
Data appears stale or not updating
- Check that the export status is Enabled in the Configuration tab.
- Verify the interval matches your expectations (e.g., daily exports run once per day).
- For Incremental exports, only records modified since the last successful run are included. If no records changed, the export will complete with 0 rows — this is expected.
Google Sheets export fails with 'sheet not found'
Google Sheets export fails with 'sheet not found'
Google Sheets API is not enabled
Google Sheets API is not enabled
Google Sheets is approaching its cell limit
Google Sheets is approaching its cell limit
Export fails with a connection timeout or network error
Export fails with a connection timeout or network error