diff --git a/.gitignore b/.gitignore index d1767be8..6efa8253 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/data-models-as-code/.env.example b/data-models-as-code/.env.example new file mode 100644 index 00000000..59ae2e57 --- /dev/null +++ b/data-models-as-code/.env.example @@ -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 diff --git a/data-models-as-code/.gitignore b/data-models-as-code/.gitignore new file mode 100644 index 00000000..4c49bd78 --- /dev/null +++ b/data-models-as-code/.gitignore @@ -0,0 +1 @@ +.env diff --git a/data-models-as-code/README.md b/data-models-as-code/README.md new file mode 100644 index 00000000..47dbfbb4 --- /dev/null +++ b/data-models-as-code/README.md @@ -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) diff --git a/data-models-as-code/specs/bikes-stations-basic.json b/data-models-as-code/specs/bikes-stations-basic.json new file mode 100644 index 00000000..ec399228 --- /dev/null +++ b/data-models-as-code/specs/bikes-stations-basic.json @@ -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]" + } + ] + } + ] + } + ] +} diff --git a/data-models-as-code/specs/bikes-stations-updated.json b/data-models-as-code/specs/bikes-stations-updated.json new file mode 100644 index 00000000..ba997874 --- /dev/null +++ b/data-models-as-code/specs/bikes-stations-updated.json @@ -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]" + } + ] + } + ] + } + ] +}