From f786ae1665be7af505ec4f140280bb77a5cf7fc0 Mon Sep 17 00:00:00 2001
From: Timna Brown <24630902+brown9804@users.noreply.github.com>
Date: Tue, 15 Apr 2025 14:07:37 -0600
Subject: [PATCH 01/13] Update README.md
---
README.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/README.md b/README.md
index 8e9218c..5da5b76 100644
--- a/README.md
+++ b/README.md
@@ -101,6 +101,10 @@ Last updated: 2025-04-15
+## Source Control Integration
+
+- **Fabric Workspace Integration**: Integrate your Fabric workspace with GitHub or Azure DevOps to manage code related to data objects and workflows.
+- **Continuous Integration/Continuous Deployment (CI/CD)**: Implement CI/CD pipelines to [automate the deployment](./Deployment-Pipelines/) of changes to your data platform.
Total Visitors
From 30b282ccba5c2ce502efde71cae9770f42ef0144 Mon Sep 17 00:00:00 2001
From: Timna Brown <24630902+brown9804@users.noreply.github.com>
Date: Tue, 15 Apr 2025 14:12:17 -0600
Subject: [PATCH 02/13] demo + overview
---
Deployment-Pipelines/README.md | 204 +++++++++++++++++++++++++++++++++
1 file changed, 204 insertions(+)
create mode 100644 Deployment-Pipelines/README.md
diff --git a/Deployment-Pipelines/README.md b/Deployment-Pipelines/README.md
new file mode 100644
index 0000000..2b1bc3c
--- /dev/null
+++ b/Deployment-Pipelines/README.md
@@ -0,0 +1,204 @@
+# Deployment Pipelines - Demo \& Overview
+
+Costa Rica
+
+[](https://github.com/)
+[brown9804](https://github.com/brown9804)
+
+Last updated: 2025-01-29
+
+------------------------------------------
+
+> Lakehouse Schema and Deployment Pipelines
+
+
+
+ List of References (Click to expand)
+
+- [Table deletes, updates, and merges - DeltaTables](https://docs.delta.io/latest/delta-update.html#-merge-in-streaming)
+- [DeltaLake - DeltaTables Releases](https://github.com/delta-io/delta/releases)
+- [DeltaTable execute() example](https://github.com/delta-io/delta/blob/master/examples/python/quickstart.py#L50-L56)
+- [Create deployment rules](https://learn.microsoft.com/en-us/fabric/cicd/deployment-pipelines/create-rules?tabs=new)
+- [Notebook source control and deployment](https://learn.microsoft.com/en-us/fabric/data-engineering/notebook-source-control-deployment)
+- [Fabric: Understand the deployment process](https://learn.microsoft.com/en-us/fabric/cicd/deployment-pipelines/understand-the-deployment-process)
+- [Incremental refresh in Dataflow Gen2 - Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/data-factory/dataflow-gen2-incremental-refresh)
+- [Dataflow Gen2 refresh - Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/data-factory/dataflow-gen2-refresh)
+- [Announcing Public Preview: Incremental Refresh in Dataflow Gen2](https://blog.fabric.microsoft.com/en-us/blog/announcing-public-preview-incremental-refresh-in-dataflows-gen2/)
+- [Choose the best Fabric CI/CD workflow option for you](https://learn.microsoft.com/en-us/fabric/cicd/manage-deployment)
+
+
+
+
+Table of Contents (Click to expand)
+
+- [Overview](#overview)
+- [Demo](#demo)
+ - [Create a Workspace](#create-a-workspace)
+ - [Create a Lakehouse](#create-a-lakehouse)
+ - [Create a New Semantic Model](#create-a-new-semantic-model)
+ - [Auto-Generate Report with Copilot](#auto-generate-report-with-copilot)
+ - [Create a Deployment Pipeline](#create-a-deployment-pipeline)
+ - [Deploy to Production](#deploy-to-production)
+- [How to refresh the data](#how-to-refresh-the-data)
+
+
+
+
+## Overview
+
+> [!Note]
+> `Ownership and Deployment`: In Microsoft Fabric, only the owner of an artifact can deploy it. Non-owner admins do not have the permissions to deploy artifacts. You can create a service principal to act like an owner, allowing it to deploy artifacts on behalf of the actual owner. This ensures that deployment tasks can be automated and managed efficiently without compromising security.
+> `Deployment Rules for Notebooks and Pipelines`: You can add `deployment rules` for notebooks and pipelines in Microsoft Fabric. Deployment rules `can be configured to manage different stages (development, test, production)` and to change content settings during deployment. For notebooks, you can set rules to specify the default lakehouse, which helps avoid manual changes to source and destination references post-deployment.
+
+Process Overview:
+
+1. **Pipeline Structure**: You define the deployment pipeline structure, which typically includes stages like development, test, and production. Each stage can have its own workspace.
+2. **Adding Content**: Content can be added to a pipeline stage by assigning a workspace or deploying content from one stage to another. When you deploy content, Microsoft Fabric copies the metadata, reports, dashboards, and semantic models to the target stage.
+3. **Content Cloning**: During deployment, the content from the source stage is cloned to the target stage. This includes the structure and semantic models but `not the actual data` within the tables. This means that while the structure and connections are maintained, the data itself needs to be refreshed or reloaded in the new stage.
+4. **Autobinding**: Microsoft Fabric tries to maintain connections between items during deployment. For example, if a report is connected to a semantic model, this connection is preserved in the target stage.
+
+> [!IMPORTANT]
+> `Specifics for Lakehouse:` For lakehouses, the deployment process typically `includes the structure and metadata but not the actual data tables`. This is why you might see the structure and semantic models deployed, but the tables themselves need to be manually refreshed or reloaded in the target environment.
+> `Deployment Rules:` You can set deployment rules to manage different stages and change content settings during deployment. For example, you can specify default lakehouses for notebooks to avoid manual changes post-deployment.
+
+## Demo
+
+
+

+
+
+### Create a Workspace
+
+1. Navigate to the Microsoft Fabric portal.
+2. Click on `Create a new workspace`.
+
+

+
+3. Name your workspace (e.g., `Analytics Dev`).
+
+

+
+4. Ensure that your workspace is allocated to the appropriate Fabric Capacity:
+
+

+
+5. You can repeat this same process to create the production environment. You may host your workspace in the same capacity or in a different Fabric Capacity. Name your workspace (e.g., `Analytics Prod`).
+
+

+
+ | Dev Workspace | Prod Workspace |
+ | --- | --- |
+ |

|

|
+
+### Create a Lakehouse
+
+1. Within your new workspace, select `New item` and choose `Lakehouse`.
+
+

+
+2. Name your lakehouse (e.g., `Sales_Data_Lakehouse`).
+
+

+
+3. Click on `Get data`, and `Upload files`:
+
+

+
+4. Load data into the tables:
+
+

+
+

+
+5. The information loaded will be under Tables/dbo section, if you are using the lakehouse schema:
+
+

+
+### Create a New Semantic Model
+
+1. Use the `New semantic model` option to create a Power BI semantic model.
+2. Select specific tables and views from your lakehouse.
+3. Save the semantic model to your workspace for sharing, data modeling, and reporting.
+
+

+
+4. At this point, you should see something similar like following:
+
+

+
+
+### Auto-Generate Report with Copilot
+
+> [!NOTE]
+> Ensure you have the necessary permissions and settings enabled for Copilot to access and use your data.
+
+1. Use Copilot to create a report based on your dataset. In your workspace, click on `...` over your semantic model and select `Auto-create report`:
+
+

+
+2. The outcome will depend on the information you provide in this case. Copilot automatically generated this report for me; you can continue editing:
+
+

+
+3. Remember to click on `Save`:
+
+

+
+### Create a Deployment Pipeline
+
+1. Go back to the Microsoft Fabric portal and select `Deployment Pipelines`.
+
+

+
+2. Create a new pipeline and name it (e.g., `Dev to Prod Pipeline`).
+
+

+
+3. You can customize your stages. For this case, we will only have a development workspace and a production workspace:
+
+

+
+4. Add your `Analytics Dev` workspace as the source, click on `Assign a workspace`:
+
+

+
+5. Add the `Production Workspace` as the target.
+
+

+
+

+
+### Deploy to Production
+
+1. Use the deployment pipeline to move your lakehouse, dataset, and report from the `Analytics Dev` to the `Analytics Prod` workspace.
+
+

+
+

+
+2. Verify that everything is working correctly in the production environment.
+
+

+
+

+
+## How to refresh the data
+
+> To ensure that data is refreshed and reloaded in the new stage of your deployment in Microsoft Fabric, you can use the following methods:
+
+| **Type of Refresh** | **Description** | **Details** |
+|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **Scheduled Refresh** | Automatically refreshes data at specified intervals to keep it up-to-date. This allows you to automatically refresh the data at specified intervals, ensuring that the data in the new stage is always up-to-date. | - Can be configured to run multiple times a day.
- Ensures data in the new stage is always current. |
+| **On-Demand Refresh** | Allows immediate data refresh, triggered manually or programmatically. | - Can be done through workspace list or lineage views.
- Can be triggered via a pipeline containing a dataflow activity. |
+| **Incremental Refresh** | Refreshes only the data that has changed since the last refresh, improving efficiency. Click [here to understand more about incremental refresh](https://github.com/brown9804/MicrosoftCloudEssentialsHub/blob/main/0_Azure/2_AzureAnalytics/0_Fabric/demos/11_PBi_IncreRefresh.md) | - **Evaluate Changes**: Checks for changes in the data source based on a DateTime column.
- **Retrieve Data**: Only changed data is retrieved and loaded.
- **Replace Data**: Updated data is processed and replaced. |
+
+Steps to Set Up Incremental Refresh:
+1. **Create or Open a Dataflow**: Start by creating a new Dataflow Gen2 or opening an existing one.
+2. **Configure the Query**: Ensure your query includes a DateTime column that can be used to filter the data.
+3. **Enable Incremental Refresh**: Right-click the query and select Incremental Refresh. Configure the settings, such as the DateTime column and the time range for data extraction.
+4. **Publish the Dataflow**: Once configured, publish the dataflow. The dataflow will then automatically refresh the data incrementally based on the settings.
+
+
+
Total Visitors
+

+
From b9b68a9a8848ad220578829d6f7730a2b6f0d9fd Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Tue, 15 Apr 2025 20:12:29 +0000
Subject: [PATCH 03/13] Update last modified date in Markdown files
---
Deployment-Pipelines/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Deployment-Pipelines/README.md b/Deployment-Pipelines/README.md
index 2b1bc3c..d5ca894 100644
--- a/Deployment-Pipelines/README.md
+++ b/Deployment-Pipelines/README.md
@@ -5,7 +5,7 @@ Costa Rica
[](https://github.com/)
[brown9804](https://github.com/brown9804)
-Last updated: 2025-01-29
+Last updated: 2025-04-15
------------------------------------------
From b16b5e550281bf2ebca36274448580fce28289f4 Mon Sep 17 00:00:00 2001
From: Timna Brown <24630902+brown9804@users.noreply.github.com>
Date: Tue, 15 Apr 2025 14:13:00 -0600
Subject: [PATCH 04/13] demo samples readme
---
Deployment-Pipelines/samples/README.md | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
create mode 100644 Deployment-Pipelines/samples/README.md
diff --git a/Deployment-Pipelines/samples/README.md b/Deployment-Pipelines/samples/README.md
new file mode 100644
index 0000000..d654a7c
--- /dev/null
+++ b/Deployment-Pipelines/samples/README.md
@@ -0,0 +1,18 @@
+# Demo Samples
+
+Costa Rica
+
+[](https://github.com/)
+[brown9804](https://github.com/brown9804)
+
+Last updated: 2025-01-29
+
+------------------------------------------
+
+> In this folder, you'll find some sample files that we'll be using throughout the demo.
+> `These files will help us illustrate the process of creating a workspace, setting up a lakehouse, defining a dataset schema, generating reports with Copilot, creating a semantic model, and deploying through a pipeline`.
+
+
+
Total Visitors
+

+
From 71365b0adfb4af63fad086cd32019cb4b079c7b9 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Tue, 15 Apr 2025 20:13:16 +0000
Subject: [PATCH 05/13] Update last modified date in Markdown files
---
Deployment-Pipelines/samples/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Deployment-Pipelines/samples/README.md b/Deployment-Pipelines/samples/README.md
index d654a7c..5db01b7 100644
--- a/Deployment-Pipelines/samples/README.md
+++ b/Deployment-Pipelines/samples/README.md
@@ -5,7 +5,7 @@ Costa Rica
[](https://github.com/)
[brown9804](https://github.com/brown9804)
-Last updated: 2025-01-29
+Last updated: 2025-04-15
------------------------------------------
From b2c8a0c0dfeb7f4f043c6ef076457118624c5a31 Mon Sep 17 00:00:00 2001
From: Timna Brown <24630902+brown9804@users.noreply.github.com>
Date: Tue, 15 Apr 2025 14:13:28 -0600
Subject: [PATCH 06/13] tbd
---
Deployment-Pipelines/samples/data/readme.md | 1 +
1 file changed, 1 insertion(+)
create mode 100644 Deployment-Pipelines/samples/data/readme.md
diff --git a/Deployment-Pipelines/samples/data/readme.md b/Deployment-Pipelines/samples/data/readme.md
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/Deployment-Pipelines/samples/data/readme.md
@@ -0,0 +1 @@
+
From b02f32d86593e285eedd83b4f081a0401a47c223 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Tue, 15 Apr 2025 20:13:39 +0000
Subject: [PATCH 07/13] Update last modified date in Markdown files
---
Deployment-Pipelines/samples/data/readme.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Deployment-Pipelines/samples/data/readme.md b/Deployment-Pipelines/samples/data/readme.md
index 8b13789..e97058d 100644
--- a/Deployment-Pipelines/samples/data/readme.md
+++ b/Deployment-Pipelines/samples/data/readme.md
@@ -1 +1,3 @@
+
+Last updated: 2025-04-15
From 151ad0d7872363b2f86e36a67269172604ac848b Mon Sep 17 00:00:00 2001
From: Timna Brown <24630902+brown9804@users.noreply.github.com>
Date: Tue, 15 Apr 2025 14:14:20 -0600
Subject: [PATCH 08/13] + samples data
---
.../samples/data/dummy_receipts.csv | 11 +
.../samples/data/products.csv | 296 ++++++++++++++++++
2 files changed, 307 insertions(+)
create mode 100644 Deployment-Pipelines/samples/data/dummy_receipts.csv
create mode 100644 Deployment-Pipelines/samples/data/products.csv
diff --git a/Deployment-Pipelines/samples/data/dummy_receipts.csv b/Deployment-Pipelines/samples/data/dummy_receipts.csv
new file mode 100644
index 0000000..4b9f604
--- /dev/null
+++ b/Deployment-Pipelines/samples/data/dummy_receipts.csv
@@ -0,0 +1,11 @@
+Receipt ID,Date,Store,Amount
+R0001,2024-05-17,Store B,167.99
+R0002,2024-09-12,Store B,497.68
+R0003,2024-06-25,Store D,319.52
+R0004,2024-07-09,Store D,177.2
+R0005,2024-08-29,Store A,360.12
+R0006,2023-12-27,Store B,462.89
+R0007,2024-08-15,Store D,483.69
+R0008,2024-09-04,Store C,332.03
+R0009,2024-08-22,Store D,157.99
+R0010,2024-06-21,Store A,180.66
diff --git a/Deployment-Pipelines/samples/data/products.csv b/Deployment-Pipelines/samples/data/products.csv
new file mode 100644
index 0000000..2cd9b8f
--- /dev/null
+++ b/Deployment-Pipelines/samples/data/products.csv
@@ -0,0 +1,296 @@
+ProductID,ProductName,Category,ListPrice
+771,"Mountain-100 Silver, 38",Mountain Bikes,3399.9900
+772,"Mountain-100 Silver, 42",Mountain Bikes,3399.9900
+773,"Mountain-100 Silver, 44",Mountain Bikes,3399.9900
+774,"Mountain-100 Silver, 48",Mountain Bikes,3399.9900
+775,"Mountain-100 Black, 38",Mountain Bikes,3374.9900
+776,"Mountain-100 Black, 42",Mountain Bikes,3374.9900
+777,"Mountain-100 Black, 44",Mountain Bikes,3374.9900
+778,"Mountain-100 Black, 48",Mountain Bikes,3374.9900
+779,"Mountain-200 Silver, 38",Mountain Bikes,2319.9900
+780,"Mountain-200 Silver, 42",Mountain Bikes,2319.9900
+781,"Mountain-200 Silver, 46",Mountain Bikes,2319.9900
+782,"Mountain-200 Black, 38",Mountain Bikes,2294.9900
+783,"Mountain-200 Black, 42",Mountain Bikes,2294.9900
+784,"Mountain-200 Black, 46",Mountain Bikes,2294.9900
+785,"Mountain-300 Black, 38",Mountain Bikes,1079.9900
+786,"Mountain-300 Black, 40",Mountain Bikes,1079.9900
+787,"Mountain-300 Black, 44",Mountain Bikes,1079.9900
+788,"Mountain-300 Black, 48",Mountain Bikes,1079.9900
+980,"Mountain-400-W Silver, 38",Mountain Bikes,769.4900
+981,"Mountain-400-W Silver, 40",Mountain Bikes,769.4900
+982,"Mountain-400-W Silver, 42",Mountain Bikes,769.4900
+983,"Mountain-400-W Silver, 46",Mountain Bikes,769.4900
+984,"Mountain-500 Silver, 40",Mountain Bikes,564.9900
+985,"Mountain-500 Silver, 42",Mountain Bikes,564.9900
+986,"Mountain-500 Silver, 44",Mountain Bikes,564.9900
+987,"Mountain-500 Silver, 48",Mountain Bikes,564.9900
+988,"Mountain-500 Silver, 52",Mountain Bikes,564.9900
+989,"Mountain-500 Black, 40",Mountain Bikes,539.9900
+990,"Mountain-500 Black, 42",Mountain Bikes,539.9900
+991,"Mountain-500 Black, 44",Mountain Bikes,539.9900
+992,"Mountain-500 Black, 48",Mountain Bikes,539.9900
+993,"Mountain-500 Black, 52",Mountain Bikes,539.9900
+973,"Road-350-W Yellow, 40",Road Bikes,1700.9900
+974,"Road-350-W Yellow, 42",Road Bikes,1700.9900
+975,"Road-350-W Yellow, 44",Road Bikes,1700.9900
+976,"Road-350-W Yellow, 48",Road Bikes,1700.9900
+977,"Road-750 Black, 58",Road Bikes,539.9900
+997,"Road-750 Black, 44",Road Bikes,539.9900
+998,"Road-750 Black, 48",Road Bikes,539.9900
+999,"Road-750 Black, 52",Road Bikes,539.9900
+789,"Road-250 Red, 44",Road Bikes,2443.3500
+790,"Road-250 Red, 48",Road Bikes,2443.3500
+791,"Road-250 Red, 52",Road Bikes,2443.3500
+792,"Road-250 Red, 58",Road Bikes,2443.3500
+793,"Road-250 Black, 44",Road Bikes,2443.3500
+794,"Road-250 Black, 48",Road Bikes,2443.3500
+795,"Road-250 Black, 52",Road Bikes,2443.3500
+796,"Road-250 Black, 58",Road Bikes,2443.3500
+797,"Road-550-W Yellow, 38",Road Bikes,1120.4900
+798,"Road-550-W Yellow, 40",Road Bikes,1120.4900
+799,"Road-550-W Yellow, 42",Road Bikes,1120.4900
+800,"Road-550-W Yellow, 44",Road Bikes,1120.4900
+801,"Road-550-W Yellow, 48",Road Bikes,1120.4900
+749,"Road-150 Red, 62",Road Bikes,3578.2700
+750,"Road-150 Red, 44",Road Bikes,3578.2700
+751,"Road-150 Red, 48",Road Bikes,3578.2700
+752,"Road-150 Red, 52",Road Bikes,3578.2700
+753,"Road-150 Red, 56",Road Bikes,3578.2700
+754,"Road-450 Red, 58",Road Bikes,1457.9900
+755,"Road-450 Red, 60",Road Bikes,1457.9900
+756,"Road-450 Red, 44",Road Bikes,1457.9900
+757,"Road-450 Red, 48",Road Bikes,1457.9900
+758,"Road-450 Red, 52",Road Bikes,1457.9900
+759,"Road-650 Red, 58",Road Bikes,782.9900
+760,"Road-650 Red, 60",Road Bikes,782.9900
+761,"Road-650 Red, 62",Road Bikes,782.9900
+762,"Road-650 Red, 44",Road Bikes,782.9900
+763,"Road-650 Red, 48",Road Bikes,782.9900
+764,"Road-650 Red, 52",Road Bikes,782.9900
+765,"Road-650 Black, 58",Road Bikes,782.9900
+766,"Road-650 Black, 60",Road Bikes,782.9900
+767,"Road-650 Black, 62",Road Bikes,782.9900
+768,"Road-650 Black, 44",Road Bikes,782.9900
+769,"Road-650 Black, 48",Road Bikes,782.9900
+770,"Road-650 Black, 52",Road Bikes,782.9900
+978,"Touring-3000 Blue, 44",Touring Bikes,742.3500
+979,"Touring-3000 Blue, 50",Touring Bikes,742.3500
+953,"Touring-2000 Blue, 60",Touring Bikes,1214.8500
+954,"Touring-1000 Yellow, 46",Touring Bikes,2384.0700
+955,"Touring-1000 Yellow, 50",Touring Bikes,2384.0700
+956,"Touring-1000 Yellow, 54",Touring Bikes,2384.0700
+957,"Touring-1000 Yellow, 60",Touring Bikes,2384.0700
+958,"Touring-3000 Blue, 54",Touring Bikes,742.3500
+959,"Touring-3000 Blue, 58",Touring Bikes,742.3500
+960,"Touring-3000 Blue, 62",Touring Bikes,742.3500
+961,"Touring-3000 Yellow, 44",Touring Bikes,742.3500
+962,"Touring-3000 Yellow, 50",Touring Bikes,742.3500
+963,"Touring-3000 Yellow, 54",Touring Bikes,742.3500
+964,"Touring-3000 Yellow, 58",Touring Bikes,742.3500
+965,"Touring-3000 Yellow, 62",Touring Bikes,742.3500
+966,"Touring-1000 Blue, 46",Touring Bikes,2384.0700
+967,"Touring-1000 Blue, 50",Touring Bikes,2384.0700
+968,"Touring-1000 Blue, 54",Touring Bikes,2384.0700
+969,"Touring-1000 Blue, 60",Touring Bikes,2384.0700
+970,"Touring-2000 Blue, 46",Touring Bikes,1214.8500
+971,"Touring-2000 Blue, 50",Touring Bikes,1214.8500
+972,"Touring-2000 Blue, 54",Touring Bikes,1214.8500
+946,LL Touring Handlebars,Handlebars,46.0900
+947,HL Touring Handlebars,Handlebars,91.5700
+808,LL Mountain Handlebars,Handlebars,44.5400
+809,ML Mountain Handlebars,Handlebars,61.9200
+810,HL Mountain Handlebars,Handlebars,120.2700
+811,LL Road Handlebars,Handlebars,44.5400
+812,ML Road Handlebars,Handlebars,61.9200
+813,HL Road Handlebars,Handlebars,120.2700
+994,LL Bottom Bracket,Bottom Brackets,53.9900
+995,ML Bottom Bracket,Bottom Brackets,101.2400
+996,HL Bottom Bracket,Bottom Brackets,121.4900
+948,Front Brakes,Brakes,106.5000
+907,Rear Brakes,Brakes,106.5000
+952,Chain,Chains,20.2400
+949,LL Crankset,Cranksets,175.4900
+950,ML Crankset,Cranksets,256.4900
+951,HL Crankset,Cranksets,404.9900
+945,Front Derailleur,Derailleurs,91.4900
+894,Rear Derailleur,Derailleurs,121.4600
+802,LL Fork,Forks,148.2200
+803,ML Fork,Forks,175.4900
+804,HL Fork,Forks,229.4900
+805,LL Headset,Headsets,34.2000
+806,ML Headset,Headsets,102.2900
+807,HL Headset,Headsets,124.7300
+739,"HL Mountain Frame - Silver, 42",Mountain Frames,1364.5000
+740,"HL Mountain Frame - Silver, 44",Mountain Frames,1364.5000
+741,"HL Mountain Frame - Silver, 48",Mountain Frames,1364.5000
+742,"HL Mountain Frame - Silver, 46",Mountain Frames,1364.5000
+743,"HL Mountain Frame - Black, 42",Mountain Frames,1349.6000
+744,"HL Mountain Frame - Black, 44",Mountain Frames,1349.6000
+745,"HL Mountain Frame - Black, 48",Mountain Frames,1349.6000
+746,"HL Mountain Frame - Black, 46",Mountain Frames,1349.6000
+747,"HL Mountain Frame - Black, 38",Mountain Frames,1349.6000
+748,"HL Mountain Frame - Silver, 38",Mountain Frames,1364.5000
+814,"ML Mountain Frame - Black, 38",Mountain Frames,348.7600
+830,"ML Mountain Frame - Black, 40",Mountain Frames,348.7600
+831,"ML Mountain Frame - Black, 44",Mountain Frames,348.7600
+832,"ML Mountain Frame - Black, 48",Mountain Frames,348.7600
+924,"LL Mountain Frame - Black, 42",Mountain Frames,249.7900
+925,"LL Mountain Frame - Black, 44",Mountain Frames,249.7900
+926,"LL Mountain Frame - Black, 48",Mountain Frames,249.7900
+927,"LL Mountain Frame - Black, 52",Mountain Frames,249.7900
+917,"LL Mountain Frame - Silver, 42",Mountain Frames,264.0500
+918,"LL Mountain Frame - Silver, 44",Mountain Frames,264.0500
+919,"LL Mountain Frame - Silver, 48",Mountain Frames,264.0500
+920,"LL Mountain Frame - Silver, 52",Mountain Frames,264.0500
+904,"ML Mountain Frame-W - Silver, 40",Mountain Frames,364.0900
+905,"ML Mountain Frame-W - Silver, 42",Mountain Frames,364.0900
+906,"ML Mountain Frame-W - Silver, 46",Mountain Frames,364.0900
+942,"ML Mountain Frame-W - Silver, 38",Mountain Frames,364.0900
+943,"LL Mountain Frame - Black, 40",Mountain Frames,249.7900
+944,"LL Mountain Frame - Silver, 40",Mountain Frames,264.0500
+935,LL Mountain Pedal,Pedals,40.4900
+936,ML Mountain Pedal,Pedals,62.0900
+937,HL Mountain Pedal,Pedals,80.9900
+938,LL Road Pedal,Pedals,40.4900
+939,ML Road Pedal,Pedals,62.0900
+940,HL Road Pedal,Pedals,80.9900
+941,Touring Pedal,Pedals,80.9900
+833,"ML Road Frame-W - Yellow, 40",Road Frames,594.8300
+834,"ML Road Frame-W - Yellow, 42",Road Frames,594.8300
+835,"ML Road Frame-W - Yellow, 44",Road Frames,594.8300
+836,"ML Road Frame-W - Yellow, 48",Road Frames,594.8300
+837,"HL Road Frame - Black, 62",Road Frames,1431.5000
+838,"HL Road Frame - Black, 44",Road Frames,1431.5000
+839,"HL Road Frame - Black, 48",Road Frames,1431.5000
+840,"HL Road Frame - Black, 52",Road Frames,1431.5000
+822,"ML Road Frame-W - Yellow, 38",Road Frames,594.8300
+680,"HL Road Frame - Black, 58",Road Frames,1431.5000
+706,"HL Road Frame - Red, 58",Road Frames,1431.5000
+717,"HL Road Frame - Red, 62",Road Frames,1431.5000
+718,"HL Road Frame - Red, 44",Road Frames,1431.5000
+719,"HL Road Frame - Red, 48",Road Frames,1431.5000
+720,"HL Road Frame - Red, 52",Road Frames,1431.5000
+721,"HL Road Frame - Red, 56",Road Frames,1431.5000
+722,"LL Road Frame - Black, 58",Road Frames,337.2200
+723,"LL Road Frame - Black, 60",Road Frames,337.2200
+724,"LL Road Frame - Black, 62",Road Frames,337.2200
+725,"LL Road Frame - Red, 44",Road Frames,337.2200
+726,"LL Road Frame - Red, 48",Road Frames,337.2200
+727,"LL Road Frame - Red, 52",Road Frames,337.2200
+728,"LL Road Frame - Red, 58",Road Frames,337.2200
+729,"LL Road Frame - Red, 60",Road Frames,337.2200
+730,"LL Road Frame - Red, 62",Road Frames,337.2200
+731,"ML Road Frame - Red, 44",Road Frames,594.8300
+732,"ML Road Frame - Red, 48",Road Frames,594.8300
+733,"ML Road Frame - Red, 52",Road Frames,594.8300
+734,"ML Road Frame - Red, 58",Road Frames,594.8300
+735,"ML Road Frame - Red, 60",Road Frames,594.8300
+736,"LL Road Frame - Black, 44",Road Frames,337.2200
+737,"LL Road Frame - Black, 48",Road Frames,337.2200
+738,"LL Road Frame - Black, 52",Road Frames,337.2200
+908,LL Mountain Seat/Saddle,Saddles,27.1200
+909,ML Mountain Seat/Saddle,Saddles,39.1400
+910,HL Mountain Seat/Saddle,Saddles,52.6400
+911,LL Road Seat/Saddle,Saddles,27.1200
+912,ML Road Seat/Saddle,Saddles,39.1400
+913,HL Road Seat/Saddle,Saddles,52.6400
+914,LL Touring Seat/Saddle,Saddles,27.1200
+915,ML Touring Seat/Saddle,Saddles,39.1400
+916,HL Touring Seat/Saddle,Saddles,52.6400
+895,"LL Touring Frame - Blue, 50",Touring Frames,333.4200
+896,"LL Touring Frame - Blue, 54",Touring Frames,333.4200
+897,"LL Touring Frame - Blue, 58",Touring Frames,333.4200
+898,"LL Touring Frame - Blue, 62",Touring Frames,333.4200
+899,"LL Touring Frame - Yellow, 44",Touring Frames,333.4200
+900,"LL Touring Frame - Yellow, 50",Touring Frames,333.4200
+901,"LL Touring Frame - Yellow, 54",Touring Frames,333.4200
+902,"LL Touring Frame - Yellow, 58",Touring Frames,333.4200
+903,"LL Touring Frame - Blue, 44",Touring Frames,333.4200
+885,"HL Touring Frame - Yellow, 60",Touring Frames,1003.9100
+886,"LL Touring Frame - Yellow, 62",Touring Frames,333.4200
+887,"HL Touring Frame - Yellow, 46",Touring Frames,1003.9100
+888,"HL Touring Frame - Yellow, 50",Touring Frames,1003.9100
+889,"HL Touring Frame - Yellow, 54",Touring Frames,1003.9100
+890,"HL Touring Frame - Blue, 46",Touring Frames,1003.9100
+891,"HL Touring Frame - Blue, 50",Touring Frames,1003.9100
+892,"HL Touring Frame - Blue, 54",Touring Frames,1003.9100
+893,"HL Touring Frame - Blue, 60",Touring Frames,1003.9100
+823,LL Mountain Rear Wheel,Wheels,87.7450
+824,ML Mountain Rear Wheel,Wheels,236.0250
+825,HL Mountain Rear Wheel,Wheels,327.2150
+826,LL Road Rear Wheel,Wheels,112.5650
+827,ML Road Rear Wheel,Wheels,275.3850
+828,HL Road Rear Wheel,Wheels,357.0600
+829,Touring Rear Wheel,Wheels,245.0100
+815,LL Mountain Front Wheel,Wheels,60.7450
+816,ML Mountain Front Wheel,Wheels,209.0250
+817,HL Mountain Front Wheel,Wheels,300.2150
+818,LL Road Front Wheel,Wheels,85.5650
+819,ML Road Front Wheel,Wheels,248.3850
+820,HL Road Front Wheel,Wheels,330.0600
+821,Touring Front Wheel,Wheels,218.0100
+855,"Men's Bib-Shorts, S",Bib-Shorts,89.9900
+856,"Men's Bib-Shorts, M",Bib-Shorts,89.9900
+857,"Men's Bib-Shorts, L",Bib-Shorts,89.9900
+712,AWC Logo Cap,Caps,8.9900
+858,"Half-Finger Gloves, S",Gloves,24.4900
+859,"Half-Finger Gloves, M",Gloves,24.4900
+860,"Half-Finger Gloves, L",Gloves,24.4900
+861,"Full-Finger Gloves, S",Gloves,37.9900
+862,"Full-Finger Gloves, M",Gloves,37.9900
+863,"Full-Finger Gloves, L",Gloves,37.9900
+713,"Long-Sleeve Logo Jersey, S",Jerseys,49.9900
+714,"Long-Sleeve Logo Jersey, M",Jerseys,49.9900
+715,"Long-Sleeve Logo Jersey, L",Jerseys,49.9900
+716,"Long-Sleeve Logo Jersey, XL",Jerseys,49.9900
+881,"Short-Sleeve Classic Jersey, S",Jerseys,53.9900
+882,"Short-Sleeve Classic Jersey, M",Jerseys,53.9900
+883,"Short-Sleeve Classic Jersey, L",Jerseys,53.9900
+884,"Short-Sleeve Classic Jersey, XL",Jerseys,53.9900
+867,"Women's Mountain Shorts, S",Shorts,69.9900
+868,"Women's Mountain Shorts, M",Shorts,69.9900
+869,"Women's Mountain Shorts, L",Shorts,69.9900
+841,"Men's Sports Shorts, S",Shorts,59.9900
+849,"Men's Sports Shorts, M",Shorts,59.9900
+850,"Men's Sports Shorts, L",Shorts,59.9900
+851,"Men's Sports Shorts, XL",Shorts,59.9900
+709,"Mountain Bike Socks, M",Socks,9.5000
+710,"Mountain Bike Socks, L",Socks,9.5000
+874,"Racing Socks, M",Socks,8.9900
+875,"Racing Socks, L",Socks,8.9900
+852,"Women's Tights, S",Tights,74.9900
+853,"Women's Tights, M",Tights,74.9900
+854,"Women's Tights, L",Tights,74.9900
+864,"Classic Vest, S",Vests,63.5000
+865,"Classic Vest, M",Vests,63.5000
+866,"Classic Vest, L",Vests,63.5000
+876,Hitch Rack - 4-Bike,Bike Racks,120.0000
+879,All-Purpose Bike Stand,Bike Stands,159.0000
+870,Water Bottle - 30 oz.,Bottles and Cages,4.9900
+871,Mountain Bottle Cage,Bottles and Cages,9.9900
+872,Road Bottle Cage,Bottles and Cages,8.9900
+877,Bike Wash - Dissolver,Cleaners,7.9500
+878,Fender Set - Mountain,Fenders,21.9800
+711,"Sport-100 Helmet, Blue",Helmets,34.9900
+707,"Sport-100 Helmet, Red",Helmets,34.9900
+708,"Sport-100 Helmet, Black",Helmets,34.9900
+880,Hydration Pack - 70 oz.,Hydration Packs,54.9900
+846,Taillights - Battery-Powered,Lights,13.9900
+847,Headlights - Dual-Beam,Lights,34.9900
+848,Headlights - Weatherproof,Lights,44.9900
+843,Cable Lock,Locks,25.0000
+842,"Touring-Panniers, Large",Panniers,125.0000
+844,Minipump,Pumps,19.9900
+845,Mountain Pump,Pumps,24.9900
+873,Patch Kit/8 Patches,Tires and Tubes,2.2900
+921,Mountain Tire Tube,Tires and Tubes,4.9900
+922,Road Tire Tube,Tires and Tubes,3.9900
+923,Touring Tire Tube,Tires and Tubes,4.9900
+928,LL Mountain Tire,Tires and Tubes,24.9900
+929,ML Mountain Tire,Tires and Tubes,29.9900
+930,HL Mountain Tire,Tires and Tubes,35.0000
+931,LL Road Tire,Tires and Tubes,21.4900
+932,ML Road Tire,Tires and Tubes,24.9900
+933,HL Road Tire,Tires and Tubes,32.6000
+934,Touring Tire,Tires and Tubes,28.9900
From c58a7ca23b07dc2573306bfa6c077b39057a8b89 Mon Sep 17 00:00:00 2001
From: Timna Brown <24630902+brown9804@users.noreply.github.com>
Date: Tue, 15 Apr 2025 14:17:09 -0600
Subject: [PATCH 09/13] + overview
---
GitHub-Integration/README.md | 68 ++++++++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)
create mode 100644 GitHub-Integration/README.md
diff --git a/GitHub-Integration/README.md b/GitHub-Integration/README.md
new file mode 100644
index 0000000..9fd69f3
--- /dev/null
+++ b/GitHub-Integration/README.md
@@ -0,0 +1,68 @@
+# Integrating GitHub with Microsoft Fabric - Overview
+
+Costa Rica
+
+[](https://github.com)
+[](https://github.com/)
+[brown9804](https://github.com/brown9804)
+
+Last updated: 2025-02-21
+
+----------
+
+
+List of References (Click to expand)
+
+- [What is Microsoft Fabric Git integration?](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/intro-to-git-integration?tabs=azure-devops)
+- [Get started with Git integration - Guided examples](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#connect-a-workspace-to-a-git-repo)
+- [Basic concepts in Git integration (git roles, permissions, connect and sync workspace](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-integration-process?tabs=Azure%2Cazure-devops#permissions)
+- [Best practices for lifecycle management in Fabric](https://learn.microsoft.com/en-us/fabric/cicd/best-practices-cicd)
+- [End-to-end tutorials in Microsoft Fabric](https://learn.microsoft.com/en-us/fabric/get-started/end-to-end-tutorials)
+- [Microsoft Fabric Samples - Git repo](https://github.com/microsoft/fabric-samples)
+
+
+
+
+Table of Content (Click to expand)
+
+- [Wiki](#wiki)
+- [Content](#content)
+- [Connect a workspace to a Git repo](#connect-a-workspace-to-a-git-repo)
+- [Connecting to a workspace Already linked to GitHub](#connecting-to-a-workspace-already-linked-to-github)
+- [Commit changes to git](#commit-changes-to-git)
+- [Update workspace from Git](#update-workspace-from-git)
+- [Disconnect a workspace from Git](#disconnect-a-workspace-from-git)
+- [Considerations and limitations](#considerations-and-limitations)
+
+
+
+https://github.com/user-attachments/assets/64f099a1-b749-47a6-b723-fa1cb5c575a3
+
+## Connect a workspace to a Git repo
+
+> Only a workspace admin has the capability to connect a workspace to a repository. However, once the connection is established, anyone with the appropriate permission can work within the workspace. If you are not an admin, please request assistance from your admin to connect. To link a workspace to an Azure or GitHub repository, [follow these steps](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#connect-a-workspace-to-a-git-repo).
+
+## Connecting to a workspace (Already linked to GitHub)
+
+> [For detailed instructions, please click here](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#connect-to-a-workspace). If the workspace is already integrated with GitHub, please refer to the instructions for [Connecting to a shared workspace](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-integration-process?tabs=Azure%2Cazure-devops#connect-to-a-shared-workspace).
+
+## Commit changes to git
+
+> [See detailed instructions here](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#commit-changes-to-git). After connecting to a Git folder, proceed to edit your workspace as normal. Saved changes will be stored in the workspace only. When ready, you may commit your changes to the Git branch or revert to the previous state. For more information, refer to [commits](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-integration-process?tabs=Azure%2Cazure-devops#commit).
+
+## Update workspace from Git
+
+> [Check out detailed instructions here](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#update-workspace-from-git). When a new change is committed to the connected Git branch, a notification will appear in the relevant workspace. Please use the Source control panel to pull the latest changes, merges, or reverts into the workspace and update live items. For further details, refer to [updating](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-integration-process?tabs=Azure%2Cazure-devops#update).
+
+## Disconnect a workspace from Git
+
+> Only a workspace admin has the authority to disconnect a workspace from a Git Repo. If you are not an admin, please contact your admin for assistance with disconnecting. If you are an admin and wish to disconnect your repo. [Click here for more information about it](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#disconnect-a-workspace-from-git)
+
+## Considerations and limitations
+
+> Click here to read more about [considerations and limitations](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-get-started?tabs=azure-devops%2CAzure%2Ccommit-to-git#considerations-and-limitations).
+
+
+
Total Visitors
+

+
From 031957e688f3513f17d39d097d5847160fef1f13 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Tue, 15 Apr 2025 20:17:22 +0000
Subject: [PATCH 10/13] Update last modified date in Markdown files
---
GitHub-Integration/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/GitHub-Integration/README.md b/GitHub-Integration/README.md
index 9fd69f3..795704b 100644
--- a/GitHub-Integration/README.md
+++ b/GitHub-Integration/README.md
@@ -6,7 +6,7 @@ Costa Rica
[](https://github.com/)
[brown9804](https://github.com/brown9804)
-Last updated: 2025-02-21
+Last updated: 2025-04-15
----------
From 3682a2d0d1bb1f30bec4bb6bdd38223ced5d9a68 Mon Sep 17 00:00:00 2001
From: Timna Brown <24630902+brown9804@users.noreply.github.com>
Date: Tue, 15 Apr 2025 14:18:02 -0600
Subject: [PATCH 11/13] renamed
---
GitHub-Integration/{README.md => .md} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename GitHub-Integration/{README.md => .md} (100%)
diff --git a/GitHub-Integration/README.md b/GitHub-Integration/.md
similarity index 100%
rename from GitHub-Integration/README.md
rename to GitHub-Integration/.md
From 21201861f10273e0b74220f41120909afbb976e0 Mon Sep 17 00:00:00 2001
From: Timna Brown <24630902+brown9804@users.noreply.github.com>
Date: Tue, 15 Apr 2025 14:18:25 -0600
Subject: [PATCH 12/13] renamed
---
GitHub-Integration/.md => GitHub-Integration.md | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename GitHub-Integration/.md => GitHub-Integration.md (100%)
diff --git a/GitHub-Integration/.md b/GitHub-Integration.md
similarity index 100%
rename from GitHub-Integration/.md
rename to GitHub-Integration.md
From fdd26f5e8092180e5ea6fb58c164e2bd58663232 Mon Sep 17 00:00:00 2001
From: Timna Brown <24630902+brown9804@users.noreply.github.com>
Date: Tue, 15 Apr 2025 14:19:05 -0600
Subject: [PATCH 13/13] added source control -> ci + cd
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 5da5b76..01ca17a 100644
--- a/README.md
+++ b/README.md
@@ -103,7 +103,7 @@ Last updated: 2025-04-15
## Source Control Integration
-- **Fabric Workspace Integration**: Integrate your Fabric workspace with GitHub or Azure DevOps to manage code related to data objects and workflows.
+- **Fabric Workspace Integration**: Integrate your Fabric workspace with [GitHub](./GitHub-Integration.md) or Azure DevOps to manage code related to data objects and workflows.
- **Continuous Integration/Continuous Deployment (CI/CD)**: Implement CI/CD pipelines to [automate the deployment](./Deployment-Pipelines/) of changes to your data platform.