Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,11 @@ embedding_qs_series_2/package-lock.json
embedding_qs_series_2/.DS_Store
embedding_qs_series_2/.DS_Store
embedding_qs_series_2/.DS_Store
embed-sdk-react/.DS_Store
embedding_jwt/.DS_Store
embedding_qs_series_2/.DS_Store
embedding_qs_series_2/public/.DS_Store
embedding_qs_series_2_api_use_cases/.DS_Store
embedding_signed_url/.DS_Store
data-models-as-code/bikes-stations-configured.json
data-models-as-code/bikes-stations-updated-configured.json
25 changes: 25 additions & 0 deletions data-models-as-code/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Sigma API Configuration - Data Models as Code QuickStart
# Copy this file to .env and fill in your values

# Your Sigma API credentials
CLIENT_ID=your_client_id_here
CLIENT_SECRET=your_client_secret_here

# Access token (obtained from auth endpoint)
ACCESS_TOKEN=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjczNjk2NzZkNjE2MzZmNmQ3MDc1NzQ2OTZlNjcyZDYzNjE2YzY5NjI2MTZlMGEifQ.eyJ0b2tlbl90eXBlIjoidjJhcGktYWNjZXNzIiwiZW52aXJvbm1lbnQiOiJwcm9kdWN0aW9uIiwiaWF0IjoxNzY5NTI2Mzg5LCJleHAiOjE3Njk1Mjk5ODksImF1ZCI6InByb2R1Y3Rpb24iLCJzdWIiOiJ5Um4xVUZWOG5nVldCTTFIZ3JsNTFoN01TOHVvdyIsInVpZCI6InlSbjFVRlY4bmdWV0JNMUhncmw1MWg3TVM4dW93Iiwib2lkIjoiZjIxNjZiMDgtNDJhZC00MmZiLTgyYjItNjhkMDdmODk2ZDRiIiwiZW1haWwiOiJwaGlsQHNpZ21hY29tcHV0aW5nLmNvbSIsImNsaWVudF9pZCI6ImFlZWYxNTkwMTAwYWI4ZTk3NDc3MTRmMmQ5ZTk1MGVmNGQ1ZWE0Y2M2OWZkMWE2NDk2NjlkYTZlZWQ1OTFjMmMiLCJhcGlLZXlJZCI6ImFlZWYxNTkwMTAwYWI4ZTk3NDc3MTRmMmQ5ZTk1MGVmNGQ1ZWE0Y2M2OWZkMWE2NDk2NjlkYTZlZWQ1OTFjMmMiLCJpc3MiOiJzaWdtYWNvbXB1dGluZyJ9.P9qz8wqiOiv4XkHih0aY3DPXME60-Kq0DEGiU4i9R_AZ44etsafOgydT8vNc5ra4cLUB8GpftrG73mDqZ-QSFPTwD8iVcNZ-zRSFs8NI0dUybd2VHeNKGTliBeCHfzF3hhraw0Od-imQu5J6YtQARje1QLkILTNmxV660GykxbuQ1EwVZgzCci2u7zNJd82wtZUOBaLdGl5pVrGgb5xML0HMXzu_t2sNg3Wk5zIsOMEtJthqthj1KEdRJLFJZGugVCHQTjWqSG7ohOLdkOauF7QVYLGutWepFqOWSHDUaLDJZQZOjS7jTFTW_gMJ1KBL7EpdXVakvLtMut0HJiATkTHKf-PRtUX_DPDPAPMOzqsDZKEKyIaiBZzY_vJXG76RPZtoOyPuaVvtVLNYBm98FS628MTEYpz8UFzAiJxbYnYaSJphUN_xm1fOepbAN_i1o1dISJPBH_H16EvvDUKZgcaAldQOcWGdpov4LK7O7dNOkiCGqNQEkSSs2Dy27UruuzVZy-c5yvdBmfpWtSEQvzgR9yfBm6qWzQ6FWxq4_nN2kcap39XSFgGGzd4bbmDCz1NQLXftTsRKSjh0TJGvmHCwaM_LdJqucXS0GidY4gSFBI1CQuM1emEOvGwEmgJlwe_M67r4bV-zl-Dny9qzxem9lfWp-tfAjXVEEYIjUTM","refresh_token":"c231dcb48752496d93cf9c6728be82f4.9bb725ced8bbc200bb03860a5a0a6c586d5701fe295e651783c2557109e24e0d6d9adf1565b03d97a0e0465e2fe39e799a2feb59526bb9a742e77c9897240245a6a2847a11a733d14ffade70c0838bdc2ca955a01ed4fe195e5a5d7385814e1b164cd76de3a87fe873f1f53db0565c7c335fe3a7b98f121f19c18660aff26942

# Your Sigma folder ID (where data models will be created)
FOLDER_ID=your_folder_id_here

# Your Sigma connection ID (for data source)
CONNECTION_ID=your_connection_id_here

# Data model ID (obtained after creating a data model)
DATA_MODEL_ID=your_data_model_id_here

# API base URL (region-specific)
# AWS US West: https://aws-api.sigmacomputing.com
# AWS US East: https://aws-api-east.sigmacomputing.com
# GCP: https://api.sigmacomputing.com
# Azure: https://azure-api.sigmacomputing.com
API_BASE_URL=https://aws-api.sigmacomputing.com
1 change: 1 addition & 0 deletions data-models-as-code/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.env
30 changes: 30 additions & 0 deletions data-models-as-code/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Data Models as Code

This folder contains example JSON specifications for creating and managing Sigma data models programmatically via the API.

## Contents

- **specs/bikes-stations-basic.json** - Basic data model example using Sigma Sample Database (BIKES.STATIONS)
- **specs/bikes-stations-updated.json** - Updated version showing how to modify an existing data model

## Usage

These JSON files are referenced in the [Data Models as Code QuickStart](https://quickstarts.sigmacomputing.com/).

### Prerequisites

- Sigma account with API access
- API credentials (Client ID and Secret)
- Folder ID where data model will be created
- Connection ID for your data warehouse

### Workflow

1. Replace placeholder values (`YOUR_FOLDER_ID_HERE`, `YOUR_CONNECTION_ID_HERE`) with your actual IDs
2. Use the POST endpoint to create: `POST /v2/dataModels/spec`
3. Use the PUT endpoint to update: `PUT /v2/dataModels/{dataModelId}/spec`

## Documentation

- [Create and Manage Data Models from Code](https://help.sigmacomputing.com/reference/create-and-manage-data-models-from-code)
- [Sigma API Reference](https://help.sigmacomputing.com/reference/get-started-sigma-api)
36 changes: 36 additions & 0 deletions data-models-as-code/specs/bikes-stations-basic.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"name": "Bike Stations Data Model",
"schemaVersion": 1,
"folderId": "YOUR_FOLDER_ID_HERE",
"pages": [
{
"id": "page1",
"name": "Page 1",
"elements": [
{
"id": "stations_table",
"kind": "table",
"source": {
"connectionId": "YOUR_CONNECTION_ID_HERE",
"kind": "warehouse-table",
"path": [
"FUN",
"BIKES",
"STATIONS"
]
},
"columns": [
{
"id": "station_id",
"formula": "[STATIONS/Id]"
},
{
"id": "station_name",
"formula": "[STATIONS/Name]"
}
]
}
]
}
]
}
44 changes: 44 additions & 0 deletions data-models-as-code/specs/bikes-stations-updated.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"name": "Bike Stations Data Model - Updated",
"schemaVersion": 1,
"folderId": "YOUR_FOLDER_ID_HERE",
"pages": [
{
"id": "page1",
"name": "Page 1",
"elements": [
{
"id": "stations_table",
"kind": "table",
"source": {
"connectionId": "YOUR_CONNECTION_ID_HERE",
"kind": "warehouse-table",
"path": [
"FUN",
"BIKES",
"STATIONS"
]
},
"columns": [
{
"id": "station_id",
"formula": "[STATIONS/Id]"
},
{
"id": "station_name",
"formula": "[STATIONS/Name]"
},
{
"id": "station_lat",
"formula": "[STATIONS/Lat]"
},
{
"id": "station_long",
"formula": "[STATIONS/Long]"
}
]
}
]
}
]
}