A Singer tap for the Sigma Computing API, built with the Meltano Singer SDK.
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
pip install tap-sigmaOr using Meltano:
meltano add extractor tap-sigmaThe 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) |
Create a config.json file:
{
"client_id": "your-client-id",
"client_secret": "your-client-secret",
"api_url": "https://aws-api.sigmacomputing.com"
}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
tap-sigma --config config.json --discover > catalog.json
tap-sigma --config config.json --catalog catalog.json > output.jsonAdd 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.comThen run:
meltano run tap-sigma target-snowflakeaccount_types- List of account typesconnections- Data connectionsdatasets- Dataset informationdata_models- Data modelsmembers- Organization membersteams- Teamsfiles- Filesworkbooks- Workbooksworkbook_pages- Workbook pages (child stream)favorites- User favoritestags- Version tagsuser_attributes- User attributeswhoami- Current user information
The tap uses OAuth 2.0 client credentials flow. It automatically handles token refresh (tokens expire after 1 hour).
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.
- Python 3.8+
- Poetry
git clone https://github.com/yourusername/tap-sigma
cd tap-sigma
poetry installpoetry run pytestcp config.sample.json config.json
# Edit config.json with your credentialspoetry run tap-sigma --config config.json --discover
poetry run tap-sigma --config config.json --catalog catalog.jsonContributions are welcome! Please feel free to submit a Pull Request.
Apache-2.0