diff --git a/Deployment/appconfig/aiservice/appsettings.Development.json.template b/Deployment/appconfig/aiservice/appsettings.Development.json.template index fb034161..5034edc0 100644 --- a/Deployment/appconfig/aiservice/appsettings.Development.json.template +++ b/Deployment/appconfig/aiservice/appsettings.Development.json.template @@ -7,7 +7,8 @@ }, "AllowedHosts": "*", "ConnectionStrings": { - "AppConfig": "{{ appconfig-url }}" + // Replace with the Azure App Configuration endpoint URL + "AppConfig": "https://.azconfig.io" } } \ No newline at end of file diff --git a/Deployment/appconfig/kernelmemory/appsettings.Development.json.template b/Deployment/appconfig/kernelmemory/appsettings.Development.json.template index 51ab3977..4530a1d2 100644 --- a/Deployment/appconfig/kernelmemory/appsettings.Development.json.template +++ b/Deployment/appconfig/kernelmemory/appsettings.Development.json.template @@ -1,6 +1,7 @@ { "ConnectionStrings": { - "AppConfig": "{{ appconfig-url }}" + // Replace with the Azure App Configuration endpoint URL + "AppConfig": "https://.azconfig.io" }, "KernelMemory": { "Service": { @@ -117,28 +118,18 @@ "BucketName": "" }, "AzureAISearch": { - "Auth": "ApiKey", - "Endpoint": "", - "APIKey": "", + // Auth and Endpoint are configured in Azure App Configuration "UseHybridSearch": true }, "AzureAIDocIntel": { - "Auth": "ApiKey", - "APIKey": "", - "Endpoint": "" + // Auth and Endpoint are configured in Azure App Configuration }, "AzureBlobs": { - "Auth": "AzureIdentity", - "Account": "", - "Container": "", - "ConnectionString": "", + // Auth, Account, and Container are configured in Azure App Configuration "EndpointSuffix": "core.windows.net" }, "AzureOpenAIEmbedding": { - "Auth": "ApiKey", - "Endpoint": "", - "APIKey": "", - "Deployment": "", + // Auth, Endpoint, and Deployment are configured in Azure App Configuration "MaxTokenTotal": 8191, "EmbeddingDimensions": null, "MaxEmbeddingBatchSize": 1, @@ -146,18 +137,13 @@ "APIType": "EmbeddingGeneration" }, "AzureOpenAIText": { - "Auth": "ApiKey", - "Endpoint": "", - "APIKey": "", - "Deployment": "", + // Auth, Endpoint, and Deployment are configured in Azure App Configuration "MaxTokenTotal": 128000, "APIType": "ChatCompletion", "MaxRetries": 10 }, "AzureQueues": { - "Auth": "AzureIdentity", - "Account": "", - "ConnectionString": "", + // Auth and Account are configured in Azure App Configuration "EndpointSuffix": "core.windows.net", "PollDelayMsecs": 100, "FetchBatchSize": 3, diff --git a/docs/DeleteResourceGroup.md b/docs/DeleteResourceGroup.md new file mode 100644 index 00000000..28de6e65 --- /dev/null +++ b/docs/DeleteResourceGroup.md @@ -0,0 +1,51 @@ +# Deleting Resources After a Failed Deployment in Azure Portal + +If your deployment fails and you need to clean up the resources manually, follow these steps in the Azure Portal. + +--- + +## **1. Navigate to the Azure Portal** +1. Open [Azure Portal](https://portal.azure.com/). +2. Sign in with your Azure account. + +--- + +## **2. Find the Resource Group** +1. In the search bar at the top, type **"Resource groups"** and select it. +2. Locate the **resource group** associated with the failed deployment. + +![Resource Groups](images/resourcegroup.png) + +![Resource Groups](images/resource-groups.png) + +--- + +## **3. Delete the Resource Group** +1. Click on the **resource group name** to open it. +2. Click the **Delete resource group** button at the top. + +![Delete Resource Group](images/delete-rg.png) + +3. Type the resource group name in the confirmation box and click **Delete**. + +πŸ“Œ **Note:** Deleting a resource group will remove all resources inside it. + +--- + +## **4. Delete Individual Resources (If Needed)** +If you don’t want to delete the entire resource group, follow these steps: + +1. Open **Azure Portal** and go to the **Resource groups** section. +2. Click on the specific **resource group**. +3. Select the **resource** you want to delete (e.g., App Service, Storage Account). +4. Click **Delete** at the top. + +![Delete Individual Resource](images/deleteservices.png) + +--- + +## **5. Verify Deletion** +- After a few minutes, refresh the **Resource groups** page. +- Ensure the deleted resource or group no longer appears. + +πŸ“Œ **Tip:** If a resource fails to delete, check if it's **locked** under the **Locks** section and remove the lock. \ No newline at end of file diff --git a/docs/LocalDevelopmentSetup.md b/docs/LocalDevelopmentSetup.md new file mode 100644 index 00000000..02fb0726 --- /dev/null +++ b/docs/LocalDevelopmentSetup.md @@ -0,0 +1,514 @@ +# Local Development Setup Guide + +This guide provides comprehensive instructions for setting up the Document Knowledge Mining Solution Accelerator for local development on Windows. + +## Important Setup Notes + +### Multi-Service Architecture + +This application consists of **three separate services** that run independently: + +1. **Kernel Memory** - Document processing and knowledge mining service +2. **Backend API** - REST API server for the frontend +3. **Frontend** - React-based user interface + +> **⚠️ Critical: Each service must run in its own terminal/console window** +> +> - **Do NOT close terminals/windows** while services are running +> - Open **Kernel Memory** and **Backend API** in Visual studio. +> - Open **Frontend** in Visual Studio Code. +> - Each service will occupy its terminal and show live logs +> +> **Terminal/Window Organization:** +> - **Visual Studio window 1**: Kernel Memory - Service runs on port 9001 +> - **Visual Studio window 2**: Backend API - HTTP server runs on port 52190 +> - **Visual Studio Code Terminal**: Frontend - Development server on port 5900 + +### Path Conventions + +**All paths in this guide are relative to the repository root directory:** + +```bash +Document-Knowledge-Mining-Solution-Accelerator/ ← Repository root (start here) +β”œβ”€β”€ App/ +β”‚ β”œβ”€β”€ backend-api/ +β”‚ β”‚ β”œβ”€β”€ Microsoft.GS.DPS.sln ← Backend solution file +β”‚ β”‚ └── Microsoft.GS.DPS.Host/ +β”‚ β”‚ └── appsettings.Development.json ← Backend API config +β”‚ β”œβ”€β”€ kernel-memory/ +β”‚ β”‚ β”œβ”€β”€ KernelMemory.sln ← Kernel Memory solution file +β”‚ β”‚ └── service/ +β”‚ β”‚ └── Service/ +β”‚ β”‚ └── appsettings.Development.json ← Kernel Memory config +β”‚ └── frontend-app/ +β”‚ β”œβ”€β”€ src/ ← React/TypeScript source +β”‚ β”œβ”€β”€ package.json ← Frontend dependencies +β”‚ └── .env ← Frontend config file +β”œβ”€β”€ Deployment/ +β”‚ └── appconfig/ ← Configuration templates location +β”‚ β”œβ”€β”€ aiservice/ +β”‚ β”‚ └── appsettings.Development.json.template ← Backend API template +β”‚ β”œβ”€β”€ frontapp/ +β”‚ β”‚ └── .env.template ← Frontend template +β”‚ └── kernelmemory/ +β”‚ └── appsettings.Development.json.template ← Kernel Memory template +β”œβ”€β”€ infra/ +β”‚ β”œβ”€β”€ main.bicep ← Main infrastructure template +β”‚ └── main.parameters.json ← Deployment parameters +└── docs/ ← Documentation (you are here) +``` + +**Before starting any step, ensure you are in the repository root directory:** + +```bash +# Verify you're in the correct location +Get-Location # Windows PowerShell - should show: ...\Document-Knowledge-Mining-Solution-Accelerator + +# If not, navigate to repository root +cd path\to\Document-Knowledge-Mining-Solution-Accelerator +``` + +### Configuration Files + +This project uses two separate `appsettings.Development.json` files and one `.env` file with different configuration requirements: + +- **Kernel Memory**: `App/kernel-memory/service/Service/appsettings.Development.json` - Azure App Configuration URL +- **Backend API**: `App/backend-api/Microsoft.GS.DPS.Host/appsettings.Development.json` - Azure App Configuration URL +- **Frontend**: `App/frontend-app/.env` - Frontend API endpoint configuration + +Configuration templates are located in the `Deployment/appconfig/` directory. + +## Step 1: Prerequisites Install Required Tools +Install these tools before you start: +- [Visual Studio](https://visualstudio.microsoft.com/) +- [Visual Studio Code](https://code.visualstudio.com/) + +### Windows Development + +#### Option 1: Native Windows (PowerShell) +```powershell +# .NET SDK (LTS .NET 8) +winget install Microsoft.DotNet.SDK.8 + +# Azure CLI (required for authentication and resource management) +winget install Microsoft.AzureCLI + +# Yarn (via Corepack) – install Node.js LTS first +winget install OpenJS.NodeJS.LTS +corepack enable +corepack prepare yarn@stable --activate + +# Verify +dotnet --version +az --version +yarn --version +``` + +#### Option 2: Windows with WSL2 (Recommended) + +```powershell +# Install WSL2 with Ubuntu (run in PowerShell as Administrator) +wsl --install -d Ubuntu + +# Once inside Ubuntu, install .NET SDK, Azure CLI, and Node.js LTS +# (use apt or Microsoft package repos depending on preference) + +# Install Azure CLI in Ubuntu +curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash + +# Verify installations +dotnet --version +az --version +node -v +yarn --version +``` +### Clone the Repository + +```bash +git clone https://github.com/microsoft/Document-Knowledge-Mining-Solution-Accelerator.git +cd Document-Knowledge-Mining-Solution-Accelerator +``` + +--- + +## Step 2: Azure Authentication Setup + +Before configuring services, authenticate with Azure: + +```bash +# Login to Azure CLI +az login + +# Set your subscription +az account set --subscription "your-subscription-id" + +# Verify authentication +az account show +``` + +### Get Azure App Configuration URL + +Navigate to your resource group and select the resource with prefix `appcs-` to get the configuration URL: + +```bash +APP_CONFIGURATION_URL=https://[Your app configuration service name].azconfig.io +``` + +For reference, see the image below: +![local_development_setup_1](./images/local_development_setup_1.png) + +### Required Azure RBAC Permissions + +To run the application locally, your Azure account needs the following role assignments on the deployed resources: + +> **Note:** +> These roles are required only for local debugging and development. For production, ensure proper RBAC policies are applied. + +You can assign these roles using either Azure CLI (Option 1) or Azure Portal (Option 2). + +#### Option 1: Assign Roles via Azure CLI + +```bash +# Get your principal ID +PRINCIPAL_ID=$(az ad signed-in-user show --query id -o tsv) +``` + +**App Configuration Data Reader** – Required for reading application configuration + +```bash +# Assign App Configuration Data Reader role +az role assignment create \ + --assignee $PRINCIPAL_ID \ + --role "App Configuration Data Reader" \ + --scope "/subscriptions//resourceGroups//providers/Microsoft.AppConfiguration/configurationStores/" +``` + +#### Other Required Roles +Depending on the features you use, you may also need: + +**Storage Blob Data Contributor** – For Azure Storage operations + +```bash +# Assign Storage Blob Data Contributor role +az role assignment create \ + --assignee $PRINCIPAL_ID \ + --role "Storage Blob Data Contributor" \ + --scope "/subscriptions//resourceGroups//providers/Microsoft.Storage/storageAccounts/" +``` + +**Storage Queue Data Contributor** – For queue-based processing + +```bash +# Assign Storage Queue Data Contributor role +az role assignment create \ + --assignee $PRINCIPAL_ID \ + --role "Storage Queue Data Contributor" \ + --scope "/subscriptions//resourceGroups//providers/Microsoft.Storage/storageAccounts/" +``` + +**Search Index Data Contributor** – For Azure AI Search operations + +```bash +# Assign Search Index Data Contributor role +az role assignment create \ + --assignee $PRINCIPAL_ID \ + --role "Search Index Data Contributor" \ + --scope "/subscriptions//resourceGroups//providers/Microsoft.Search/searchServices/" +``` + +**Search Service Contributor** – For managing Azure AI Search service + +```bash +# Assign Search Service Contributor role +az role assignment create \ + --assignee $PRINCIPAL_ID \ + --role "Search Service Contributor" \ + --scope "/subscriptions//resourceGroups//providers/Microsoft.Search/searchServices/" +``` + +**Cognitive Services OpenAI User** – For Azure OpenAI access + +```bash +# Assign Cognitive Services OpenAI User role +az role assignment create \ + --assignee $PRINCIPAL_ID \ + --role "Cognitive Services OpenAI User" \ + --scope "/subscriptions//resourceGroups//providers/Microsoft.CognitiveServices/accounts/" +``` + +**Cognitive Services User** – For Azure AI Document Intelligence access + +```bash +# Assign Cognitive Services User role +az role assignment create \ + --assignee $PRINCIPAL_ID \ + --role "Cognitive Services User" \ + --scope "/subscriptions//resourceGroups//providers/Microsoft.CognitiveServices/accounts/" +``` + +#### Option 2: Assign Roles via Azure Portal + +If you prefer or need to use the Azure Portal instead of CLI commands: + +1. Sign in to the [Azure Portal](https://portal.azure.com). +2. Navigate to your **Resource Group** where services are deployed. +3. For each resource, assign the required roles: + +**App Configuration** + - Go to **Access control (IAM)** β†’ **Add role assignment** + - Assign role: `App Configuration Data Reader` + - Assign to: Your user account + +**Storage Account** + - Go to **Access control (IAM)** β†’ **Add role assignment** + - Assign the following roles to your user account: + - `Storage Blob Data Contributor` + - `Storage Queue Data Contributor` + +**Azure AI Search** + - Go to **Access control (IAM)** β†’ **Add role assignment** + - Assign the following roles to your user account: + - `Search Index Data Contributor` + - `Search Service Contributor` + +**Azure OpenAI** + - Go to **Access control (IAM)** β†’ **Add role assignment** + - Assign role: `Cognitive Services OpenAI User` + - Assign to: Your user account + +**Azure AI Document Intelligence** + - Go to **Access control (IAM)** β†’ **Add role assignment** + - Assign role: `Cognitive Services User` + - Assign to: Your user account + +**Note**: RBAC permission changes can take 5-10 minutes to propagate. If you encounter "Forbidden" errors after assigning roles, wait a few minutes and try again. + +## Step 3: Backend Setup & Run Instructions + +### 3.1. Open Solutions in Visual Studio + +Navigate to the cloned repository and open the following solution files from Visual Studio: + +- **KernelMemory** path: `Document-Knowledge-Mining-Solution-Accelerator/App/kernel-memory/KernelMemory.sln` + +- **Microsoft.GS.DPS** path: `Document-Knowledge-Mining-Solution-Accelerator/App/backend-api/Microsoft.GS.DPS.sln` + +**Sign in to Visual Studio** using your tenant account with the required permissions. + +--- + +### 3.2. Create/Verify `appsettings.Development.json` Files + +**After deploying the accelerator**, the `appsettings.Development.json` file should be created automatically. If you are using a deployed resource group that was **not deployed from your machine**, you will need to create these files manually. + +#### KernelMemory Solution + +1. In the **Service** project (inside the `service` folder), expand the `appsettings.json` file. +2. Confirm that `appsettings.Development.json` exists. +3. If it does not exist, create it manually by copying the template file: + +```bash +# From repository root +cd "Document-Knowledge-Mining-Solution-Accelerator" + +# Copy the template file +Copy-Item Deployment\appconfig\kernelmemory\appsettings.Development.json.template App\kernel-memory\service\Service\appsettings.Development.json # Windows PowerShell +``` + +4. Edit the `appsettings.Development.json` file with your Azure App Configuration URL: + +```json +{ + "ConnectionStrings": { + "AppConfig": "https://.azconfig.io" + } +} +``` +#### Microsoft.GS.DPS Solution + +1. In the **Microsoft.GS.DPS.Host** project, expand the `appsettings.json` file. +2. Confirm that `appsettings.Development.json` exists. +3. If it does not exist, create it manually by copying the template file: + +```bash +# From repository root +cd "Document-Knowledge-Mining-Solution-Accelerator" + +# Copy the template file +Copy-Item Deployment\appconfig\aiservice\appsettings.Development.json.template App\backend-api\Microsoft.GS.DPS.Host\appsettings.Development.json +``` + +4. Edit the `appsettings.Development.json` file with your Azure App Configuration URL: + +```json +{ + "ConnectionStrings": { + "AppConfig": "https://.azconfig.io" + } +} +``` + +--- + +## Step 4: Run Backend Services + +### 4.1. Set Startup Projects + +- **KernelMemory Solution:** + Set **Service** (located inside the `service` folder) as the startup project to run the Kernel Memory service. + +- **Microsoft.GS.DPS Solution:** + Set **Microsoft.GS.DPS.Host** as the startup project to run the API. + +### 4.2. Update Kernel Memory Endpoint in Azure App Configuration + +> **Important:** +> The following change is only for local development and debugging. +> For production or Azure deployment, ensure the endpoint is set to `http://kernelmemory-service` to avoid misconfiguration. + +1. Sign in to the [Azure Portal](https://portal.azure.com). +2. Navigate to your **App Configuration** resource within/from your deployed resource group. +3. Go to **Operations β†’ Configuration Explorer**. +4. Search for the key: + `Application:Services:KernelMemory:Endpoint` +5. For local development, update its value from: + ``` + http://kernelmemory-service + ``` + to + ``` + http://localhost:9001 + ``` +6. Apply the changes. + +> **Note:** +> Always revert the Kernel Memory endpoint value back to `http://kernelmemory-service` before running the application in Azure. + +### 4.3. Run the Backend Services + +1. In Visual Studio, run both solutions (KernelMemory and Microsoft.GS.DPS) by pressing **F5** or clicking the **Start** button. +2. Two terminal windows will appear showing the service logs. +3. Once both services start successfully: + - **Kernel Memory Service** will be available at: http://localhost:9001 + - **Backend API** will be available at: https://localhost:52190 + - **Swagger UI** will open automatically at http://localhost:52190 for API validation + +> **⚠️ Important:** Keep both terminal windows open while the services are running. Do not close them until you're done with development. + +--- + +## Step 5: Frontend Setup & Run Instructions + +### 5.1. Open the repo in **VS Code**. + +### 5.2. Create `.env` file from template + +Navigate to the `App/frontend-app` folder and create the `.env` file: + +```bash +# From repository root +cd "Document-Knowledge-Mining-Solution-Accelerator" + +# Copy the template file +Copy-Item Deployment\appconfig\frontapp\.env.template App\frontend-app\.env +``` + +### 5.3. Configure the `.env` file + +Update the `VITE_API_ENDPOINT` value with your local Backend API URL: + +```env +VITE_API_ENDPOINT=https://localhost:52190 +DISABLE_AUTH=true +VITE_ENABLE_UPLOAD_BUTTON=true +``` +### 5.4. Verify Node.js and Yarn Installation + +Before installing dependencies, verify that Node.js (LTS) and Yarn are already installed from Step 1: + +```powershell +# Verify installations +node -v +yarn -v +``` +> **Note:** If Yarn is not installed, go back to Step 1 and complete the prerequisites, or use the below commands to install: +> ```powershell +> corepack enable +> corepack prepare yarn@stable --activate +> ``` + +### 5.5. Install frontend dependencies + +```powershell +# From repository root, navigate to frontend directory +cd App\frontend-app + +# Install dependencies +yarn install +``` + +### 5.6. Start the application + +```powershell +yarn start +``` + +--- + +**Services will be available at:** +- **Kernel Memory Service**: http://localhost:9001 +- **Backend API**: https://localhost:52190 +- **Frontend Application**: http://localhost:5900 + +You're now ready to run and debug the application locally! + +--- + +## Troubleshooting + +### Common Issues + +#### Connection Issues + +- While running the Kernel solution, if you encounter an error such as ``server not responded`` or ``server not found``, it usually indicates that the required resource is not responding. +- Ensure that the necessary **Kubernetes services** are running. If not, start the Kubernetes service and then run the Kernel solution again. + +#### Windows-Specific Issues + +```powershell +# PowerShell execution policy +Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser + +# Long path support (Windows 10 1607+, run as Administrator) +New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force +``` + +### Azure Authentication Issues + +```bash +# Login to Azure CLI +az login + +# Set subscription +az account set --subscription "your-subscription-id" + +# Test authentication +az account show +``` + +### Environment Variable Issues + +```bash +# Check environment variables are loaded +Get-ChildItem Env:AZURE* # Windows PowerShell + +# Validate .env file format +cat .env | grep -v '^#' | grep '=' # Should show key=value pairs +``` + +## Related Documentation + +- [Deployment Guide](DeploymentGuide.md) - Instructions for production deployment. +- [Delete Resource Group](DeleteResourceGroup.md) - Steps to safely delete the Azure resource group created for the solution. +- [PowerShell Setup](PowershellSetup.md) - Instructions for setting up PowerShell and required scripts. +- [Quota Check](QuotaCheck.md) - Steps to verify Azure quotas and ensure required limits before deployment. \ No newline at end of file diff --git a/docs/LocalSetupGuide.md b/docs/LocalSetupGuide.md deleted file mode 100644 index 6a348f2d..00000000 --- a/docs/LocalSetupGuide.md +++ /dev/null @@ -1,116 +0,0 @@ -# Local Setup Guide - -Follow these steps to set up and debug the application locally. - ---- - -## Backend Setup - -### 1. Clone the Repository - -```powershell -git clone https://github.com/microsoft/Document-Knowledge-Mining-Solution-Accelerator.git -``` - ---- - -### 2. Sign In to Visual Studio - -- Open the **KernelMemory** and **Microsoft.GS.DPS** solutions in Visual Studio. -- Sign in using your tenant account with the required permissions. - ---- - -### 3. Verify `appsettings.Development.json` - -After deploying the accelerator, the `appsettings.Development.json` file will be created automatically. - -- **KernelMemory Solution:** - Expand the `appsettings.json` file under the **Service** project (inside the `service` folder) and confirm that `appsettings.Development.json` exists. - -- **Microsoft.GS.DPS Solution:** - Expand the `appsettings.json` file under the **Microsoft.GS.DPS.Host** project and confirm that `appsettings.Development.json` exists. - ---- - -### 4. Set Startup Projects - -- **KernelMemory Solution:** - Set **Service** (located inside the `service` folder) as the startup project to run the Kernel Memory service. - -- **Microsoft.GS.DPS Solution:** - Set **Microsoft.GS.DPS.Host** as the startup project to run the API. - ---- - -### 5. Assign Required Azure Roles - -To enable local debugging and ensure your application can access necessary Azure resources, assign the following roles to your Microsoft Entra ID in the respective services within your deployed resource group in the Azure portal: - -- **App Configuration** - - App Configuration Data Reader -- **Storage Account** - - Storage Blob Data Contributor - - Storage Queue Data Contributor - - Storage Blob Data Reader - ---- - -### 6. Update Kernel Memory Endpoint in Azure App Configuration - -> **Important:** -> The following change is only for local development and debugging. -> For production or Azure deployment, ensure the endpoint is set to `http://kernelmemory-service` to avoid misconfiguration. - -1. Sign in to the [Azure Portal](https://portal.azure.com). -2. Navigate to your **App Configuration** resource within/from your deployed resource group. -3. Go to **Operations β†’ Configuration Explorer**. -4. Search for the key: - `Application:Services:KernelMemory:Endpoint` -5. For local development, update its value from: - ``` - http://kernelmemory-service - ``` - to - ``` - http://localhost:9001 - ``` -6. Apply the changes. - -> **Note:** -> Always revert this value back to `http://kernelmemory-service` before running the application in Azure. - ---- - -## Frontend Setup - -1. Open the repo in **VS Code**. -2. Navigate to the `App/frontend-app` folder and locate the `.env` file. -3. In the `.env` file, update the `VITE_API_ENDPOINT` value with your local API URL, e.g.: - ``` - VITE_API_ENDPOINT=https://localhost:52190 - ``` -4. Before installing dependencies, ensure Node.js (LTS) and Yarn are installed on your machine: - - Recommended: install Node.js LTS (18.x or later) from https://nodejs.org - - Install Yarn if it's not already available: - ```powershell - npm install -g yarn - ``` - - Verify the installations: - ```powershell - node -v - npm -v - yarn -v - ``` -5. Install dependencies: - ```powershell - yarn install - ``` -6. Start the application: - ```powershell - yarn start - ``` - ---- - -**You're now ready to run and debug the application locally!** \ No newline at end of file diff --git a/docs/PowershellSetup.md b/docs/PowershellSetup.md new file mode 100644 index 00000000..af5a3291 --- /dev/null +++ b/docs/PowershellSetup.md @@ -0,0 +1,47 @@ +# Add PowerShell 7 to PATH in Windows + +This guide will help you add **PowerShell 7** (PowerShell Core) to your system’s PATH variable on Windows, so you can easily run it from any Command Prompt or Run dialog. + +## Prerequisites + +- You should have **PowerShell 7** installed on your machine. If you haven’t installed it yet, you can download it following the guide here: [Installing PowerShell on Windows | Microsoft Learn](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.5). +- **Administrative privileges are not required** unless you're modifying system-wide environment variables. You can modify your **user-specific PATH** without admin rights. + +## Steps to Add PowerShell 7 to PATH + +### 1. Open **System Properties** + - Press `Win + X` and choose **System**. + - Click on **Advanced system settings** on the left sidebar. This will open the **System Properties** window. + - In the **System Properties** window, click on the **Environment Variables** button at the bottom. + +### 2. Edit User Environment Variables + - In the **Environment Variables** window, under **User variables**, find the `Path` variable. + - Select the `Path` variable and click **Edit**. (If the `Path` variable doesn’t exist, click **New** and name it `Path`.) + +### 3. Check if PowerShell 7 Path is Already in PATH + - Before adding the path, make sure the following path is not already present in the list: + ``` + C:\Program Files\PowerShell\7\ + ``` + - If the path is already there, you don't need to add it again. + +### 4. Add PowerShell 7 Path + - If the path is not already in the list, click **New** in the **Edit Environment Variable** window. + - Add the following path to the list: + ``` + C:\Program Files\PowerShell\7\ + ``` + > **Note:** If you installed PowerShell 7 in a custom location, replace the above path with the correct one. + +### 5. Save Changes + - After adding the path, click **OK** to close the **Edit Environment Variable** window. + - Click **OK** again to close the **Environment Variables** window. + - Finally, click **OK** to exit the **System Properties** window. + +### 6. Verify PowerShell 7 in PATH + - Open **Command Prompt** or **Run** (press `Win + R`). + - Type `pwsh` and press Enter. If PowerShell 7 opens, you've successfully added it to your PATH! +--- +## Troubleshooting +- **PowerShell 7 not opening:** Ensure the path to PowerShell 7 is entered correctly. If you're using a custom installation folder, check that the correct path is added to the `Path` variable. +- **Changes not taking effect:** Try restarting your computer or logging out and logging back in for the changes to apply. \ No newline at end of file diff --git a/docs/images/delete-rg.png b/docs/images/delete-rg.png new file mode 100644 index 00000000..c435ecf1 Binary files /dev/null and b/docs/images/delete-rg.png differ diff --git a/docs/images/deleteservices.png b/docs/images/deleteservices.png new file mode 100644 index 00000000..dddd2afd Binary files /dev/null and b/docs/images/deleteservices.png differ diff --git a/docs/images/local_development_setup_1.png b/docs/images/local_development_setup_1.png new file mode 100644 index 00000000..72d84412 Binary files /dev/null and b/docs/images/local_development_setup_1.png differ diff --git a/docs/images/resource-groups.png b/docs/images/resource-groups.png new file mode 100644 index 00000000..45beb39d Binary files /dev/null and b/docs/images/resource-groups.png differ diff --git a/docs/images/resourcegroup.png b/docs/images/resourcegroup.png new file mode 100644 index 00000000..67b058bc Binary files /dev/null and b/docs/images/resourcegroup.png differ