Skip to content

kevsampson/tap-sigma

Repository files navigation

tap-sigma

A Singer tap for the Sigma Computing API, built with the Meltano Singer SDK.

Features

This tap extracts data from all available GET endpoints in the Sigma Computing API, including:

  • Account Management: Account types and permissions
  • Connections: Data connections, connection tests, and grants
  • Datasets & Data Models: Dataset information, sources, and materializations
  • Users & Teams: Organization members and team management
  • Files & Content: Workbooks, pages, and files
  • Favorites & Tags: User favorites and version tags
  • User Attributes: Custom user attributes

Installation

pip install tap-sigma

Or using Meltano:

meltano add extractor tap-sigma

Configuration

The tap requires the following configuration:

Setting Required Default Description
client_id Yes None Sigma Computing API Client ID
client_secret Yes None Sigma Computing API Client Secret
api_url Yes None Base API URL (e.g., https://aws-api.sigmacomputing.com)
start_date No None Starting date for incremental syncs (ISO 8601)

Example Configuration

Create a config.json file:

{
  "client_id": "your-client-id",
  "client_secret": "your-client-secret",
  "api_url": "https://aws-api.sigmacomputing.com"
}

Cloud Provider URLs

Sigma Computing uses different base URLs depending on your cloud provider:

  • AWS: https://aws-api.sigmacomputing.com
  • Azure: https://azure-api.sigmacomputing.com
  • GCP: https://gcp-api.sigmacomputing.com

Usage

With Singer

tap-sigma --config config.json --discover > catalog.json
tap-sigma --config config.json --catalog catalog.json > output.json

With Meltano

Add to your meltano.yml:

extractors:
  - name: tap-sigma
    namespace: tap_sigma
    pip_url: tap-sigma
    config:
      client_id: ${SIGMA_CLIENT_ID}
      client_secret: ${SIGMA_CLIENT_SECRET}
      api_url: https://aws-api.sigmacomputing.com

Then run:

meltano run tap-sigma target-snowflake

Available Streams

  • account_types - List of account types
  • connections - Data connections
  • datasets - Dataset information
  • data_models - Data models
  • members - Organization members
  • teams - Teams
  • files - Files
  • workbooks - Workbooks
  • workbook_pages - Workbook pages (child stream)
  • favorites - User favorites
  • tags - Version tags
  • user_attributes - User attributes
  • whoami - Current user information

Authentication

The tap uses OAuth 2.0 client credentials flow. It automatically handles token refresh (tokens expire after 1 hour).

Rate Limits

The Sigma Computing API has the following rate limits:

  • Standard endpoints: Reasonable request volumes
  • Authentication endpoint: 1 request/second
  • Export endpoints: 100 requests/minute

The tap implements automatic retry logic with exponential backoff to handle rate limiting.

Development

Prerequisites

  • Python 3.8+
  • Poetry

Setup

git clone https://github.com/yourusername/tap-sigma
cd tap-sigma
poetry install

Testing

poetry run pytest

Create a Test Config

cp config.sample.json config.json
# Edit config.json with your credentials

Run the Tap

poetry run tap-sigma --config config.json --discover
poetry run tap-sigma --config config.json --catalog catalog.json

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

Apache-2.0

Resources

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages