Skip to content

Commit 5c98a3e

Browse files
authored
Merge pull request #95 from sigmacomputing/data-models-as-code
Data models as code
2 parents 176e65d + ba29f02 commit 5c98a3e

6 files changed

Lines changed: 144 additions & 0 deletions

File tree

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,11 @@ embedding_qs_series_2/package-lock.json
6363
embedding_qs_series_2/.DS_Store
6464
embedding_qs_series_2/.DS_Store
6565
embedding_qs_series_2/.DS_Store
66+
embed-sdk-react/.DS_Store
67+
embedding_jwt/.DS_Store
68+
embedding_qs_series_2/.DS_Store
69+
embedding_qs_series_2/public/.DS_Store
70+
embedding_qs_series_2_api_use_cases/.DS_Store
71+
embedding_signed_url/.DS_Store
72+
data-models-as-code/bikes-stations-configured.json
73+
data-models-as-code/bikes-stations-updated-configured.json

data-models-as-code/.env.example

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Sigma API Configuration - Data Models as Code QuickStart
2+
# Copy this file to .env and fill in your values
3+
4+
# Your Sigma API credentials
5+
CLIENT_ID=your_client_id_here
6+
CLIENT_SECRET=your_client_secret_here
7+
8+
# Access token (obtained from auth endpoint)
9+
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
10+
11+
# Your Sigma folder ID (where data models will be created)
12+
FOLDER_ID=your_folder_id_here
13+
14+
# Your Sigma connection ID (for data source)
15+
CONNECTION_ID=your_connection_id_here
16+
17+
# Data model ID (obtained after creating a data model)
18+
DATA_MODEL_ID=your_data_model_id_here
19+
20+
# API base URL (region-specific)
21+
# AWS US West: https://aws-api.sigmacomputing.com
22+
# AWS US East: https://aws-api-east.sigmacomputing.com
23+
# GCP: https://api.sigmacomputing.com
24+
# Azure: https://azure-api.sigmacomputing.com
25+
API_BASE_URL=https://aws-api.sigmacomputing.com

data-models-as-code/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.env

data-models-as-code/README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Data Models as Code
2+
3+
This folder contains example JSON specifications for creating and managing Sigma data models programmatically via the API.
4+
5+
## Contents
6+
7+
- **specs/bikes-stations-basic.json** - Basic data model example using Sigma Sample Database (BIKES.STATIONS)
8+
- **specs/bikes-stations-updated.json** - Updated version showing how to modify an existing data model
9+
10+
## Usage
11+
12+
These JSON files are referenced in the [Data Models as Code QuickStart](https://quickstarts.sigmacomputing.com/).
13+
14+
### Prerequisites
15+
16+
- Sigma account with API access
17+
- API credentials (Client ID and Secret)
18+
- Folder ID where data model will be created
19+
- Connection ID for your data warehouse
20+
21+
### Workflow
22+
23+
1. Replace placeholder values (`YOUR_FOLDER_ID_HERE`, `YOUR_CONNECTION_ID_HERE`) with your actual IDs
24+
2. Use the POST endpoint to create: `POST /v2/dataModels/spec`
25+
3. Use the PUT endpoint to update: `PUT /v2/dataModels/{dataModelId}/spec`
26+
27+
## Documentation
28+
29+
- [Create and Manage Data Models from Code](https://help.sigmacomputing.com/reference/create-and-manage-data-models-from-code)
30+
- [Sigma API Reference](https://help.sigmacomputing.com/reference/get-started-sigma-api)
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"name": "Bike Stations Data Model",
3+
"schemaVersion": 1,
4+
"folderId": "YOUR_FOLDER_ID_HERE",
5+
"pages": [
6+
{
7+
"id": "page1",
8+
"name": "Page 1",
9+
"elements": [
10+
{
11+
"id": "stations_table",
12+
"kind": "table",
13+
"source": {
14+
"connectionId": "YOUR_CONNECTION_ID_HERE",
15+
"kind": "warehouse-table",
16+
"path": [
17+
"FUN",
18+
"BIKES",
19+
"STATIONS"
20+
]
21+
},
22+
"columns": [
23+
{
24+
"id": "station_id",
25+
"formula": "[STATIONS/Id]"
26+
},
27+
{
28+
"id": "station_name",
29+
"formula": "[STATIONS/Name]"
30+
}
31+
]
32+
}
33+
]
34+
}
35+
]
36+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"name": "Bike Stations Data Model - Updated",
3+
"schemaVersion": 1,
4+
"folderId": "YOUR_FOLDER_ID_HERE",
5+
"pages": [
6+
{
7+
"id": "page1",
8+
"name": "Page 1",
9+
"elements": [
10+
{
11+
"id": "stations_table",
12+
"kind": "table",
13+
"source": {
14+
"connectionId": "YOUR_CONNECTION_ID_HERE",
15+
"kind": "warehouse-table",
16+
"path": [
17+
"FUN",
18+
"BIKES",
19+
"STATIONS"
20+
]
21+
},
22+
"columns": [
23+
{
24+
"id": "station_id",
25+
"formula": "[STATIONS/Id]"
26+
},
27+
{
28+
"id": "station_name",
29+
"formula": "[STATIONS/Name]"
30+
},
31+
{
32+
"id": "station_lat",
33+
"formula": "[STATIONS/Lat]"
34+
},
35+
{
36+
"id": "station_long",
37+
"formula": "[STATIONS/Long]"
38+
}
39+
]
40+
}
41+
]
42+
}
43+
]
44+
}

0 commit comments

Comments
 (0)