Guide to Connect BigQuery:
- Create a dedicated service account for Go Fig to limit permissions and improve security. (Recommended)
- Enable BigQuery API and grant required permissions in your Google Cloud project.
- Collect the following details:
- Google Cloud project ID
- Service account JSON key file
- BigQuery datasets you want to access
1) Creating a Service Account (Recommended)
For security, create a dedicated Go Fig service account with read-only BigQuery access:1
Navigate to Service Accounts
In Google Cloud Console, go to IAM & Admin → Service Accounts.[SCREENSHOT: Google Cloud Console navigation with IAM & Admin highlighted]
2
Create service account
Click + Create Service Account at the top.[SCREENSHOT: Service Accounts page with “Create Service Account” button]Fill in the details:
- Service account name:
gofig-bigquery - Service account ID:
gofig-bigquery@your-project.iam.gserviceaccount.com(auto-generated) - Description: “Go Fig BigQuery read access”
3
Grant permissions
Add the following roles to the service account:Required Roles:
- BigQuery Data Viewer: Read access to datasets and tables
- BigQuery Job User: Permission to run queries
- BigQuery Read Session User: Enables efficient data reading via BigQuery Storage API
4
Generate JSON key
Find your new service account in the list and click on it.[SCREENSHOT: Service accounts list with gofig-bigquery highlighted]Go to the Keys tab and click Add Key → Create new key.[SCREENSHOT: Keys tab with “Add Key” button]Select JSON format and click Create.[SCREENSHOT: Key type selection with JSON radio button selected]The JSON key file will download to your computer. Save this file securely - it contains credentials.[SCREENSHOT: Browser download notification showing JSON key file]
- Principle of Least Privilege: Go Fig only gets read access, never write
- Audit Trail: Separate service account makes it easy to track Go Fig queries
- Cost Control: Monitor Go Fig query costs separately
- Security: Limits blast radius if credentials are compromised
Save the JSON key file securely. Never commit it to version control or share it publicly.
2) Configure GCP Project Access
Go Fig needs the BigQuery API enabled and appropriate permissions configured:Enable BigQuery API
Enable BigQuery API
Enable the BigQuery API in your project:
- Go to Google Cloud Console
- Select your project
- Navigate to APIs & Services → Library
- Search for “BigQuery API”
- Click Enable
Wait 1-2 minutes after enabling for the API to activate.
Dataset-Level Permissions (Optional)
Dataset-Level Permissions (Optional)
Restrict access to specific datasets:If you want to limit Go Fig to specific datasets (instead of project-wide access):
- In BigQuery Console, select a dataset
- Click Sharing → Permissions
- Click Add Principal
- Enter your service account email:
gofig-bigquery@your-project.iam.gserviceaccount.com - Select role: BigQuery Data Viewer
- Click Save
Dataset-level permissions provide better security than project-wide access, especially for sensitive data.
3) Connect Go Fig to BigQuery
1
Add BigQuery connection
Navigate to your Organization Data page and click + Add data. Select BigQuery from the list of database connections.[SCREENSHOT: Organization Data page with “Add data” button and BigQuery option in connector list]
2
Upload service account JSON
Fill in your BigQuery connection information:
- Service Account JSON: Click Choose File and upload the JSON key file you downloaded earlier.
- Project ID
- Service account email
- Private key (encrypted)
- Dataset Region (Optional): Specify if you want to limit to specific regions (e.g.,
us-central1,europe-west1)
Leave region blank to access datasets across all regions in your project.
Verify the JSON file format is correct - should start with
{"type": "service_account"...}3
Connect to BigQuery
Click Connect to BigQuery to complete the setup. Go Fig will verify the connection, encrypt and store your credentials securely.[SCREENSHOT: “Connect to BigQuery” button]
Security Best Practices
Go Fig Security Features
- Encrypted Credentials: Go Fig encrypts all connection credentials at rest
- SSL/TLS Encryption: All data in transit uses SSL/TLS encryption
- Credential Protection: Credentials are never logged or displayed in plain text
- Role-Based Access Control: COMING SOON - Granular permissions for connection management
Use dedicated service account: Create separate Go Fig service account instead of using personal accounts.
Read-only access: Only grant BigQuery Data Viewer + BigQuery Job User + BigQuery Read Session User roles.
Dataset-level permissions: For sensitive data, use dataset-level permissions instead of project-wide access.
Rotate keys regularly: Rotate service account keys every 90 days and delete old keys.
Monitor query activity: Review Query History in Go Fig to track data access patterns.
Partition filtering: Always filter on partition columns (usually date) to minimize costs.
Select specific columns: Avoid
SELECT * - only select columns you need to reduce data processed.Never use admin credentials: Create a dedicated service account with minimal necessary permissions.

