From d940bb1d3a87dae9969e48abca2fe79709669a55 Mon Sep 17 00:00:00 2001 From: Harmanpreet-Microsoft Date: Fri, 12 Sep 2025 11:39:20 +0530 Subject: [PATCH 01/11] Add createdDate parameter for deployment timestamp --- infra/main.bicep | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/infra/main.bicep b/infra/main.bicep index f3c9f956..23621798 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -136,7 +136,8 @@ var abbrs = loadJsonContent('./abbreviations.json') @description('Optional created by user name') param createdBy string = empty(deployer().userPrincipalName) ? '' : split(deployer().userPrincipalName, '@')[0] - +@description('Deployment UTC timestamp') +param createdDate string ='yyyy-MM-ddTHH:mm:ssZ' // ========== Resource Group Tag ========== // resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = { name: 'default' @@ -145,6 +146,7 @@ resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = { ...allTags TemplateName: 'Code Modernization' CreatedBy: createdBy + CreatedDate:createdDate } } } From d4595bc9f271b1080ac58a68df5d31d6782d416a Mon Sep 17 00:00:00 2001 From: Harmanpreet-Microsoft Date: Fri, 12 Sep 2025 11:43:38 +0530 Subject: [PATCH 02/11] Change createdDate to use utcNow function Updated createdDate parameter to use utcNow function. --- infra/main.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra/main.bicep b/infra/main.bicep index 23621798..2125d9ed 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -137,7 +137,7 @@ var abbrs = loadJsonContent('./abbreviations.json') @description('Optional created by user name') param createdBy string = empty(deployer().userPrincipalName) ? '' : split(deployer().userPrincipalName, '@')[0] @description('Deployment UTC timestamp') -param createdDate string ='yyyy-MM-ddTHH:mm:ssZ' +param createdDate string = any('utcNow(''yyyy-MM-ddTHH:mm:ssZ'')') // ========== Resource Group Tag ========== // resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = { name: 'default' From bdf04d3ef2a28c5480d37fe041e233f35e57cc7e Mon Sep 17 00:00:00 2001 From: Harmanpreet-Microsoft Date: Tue, 16 Sep 2025 11:12:26 +0530 Subject: [PATCH 03/11] Remove 'CreatedBy' tag from resource group --- infra/main.bicep | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/infra/main.bicep b/infra/main.bicep index f3c9f956..20b98792 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -134,8 +134,7 @@ var modelDeployment = { var abbrs = loadJsonContent('./abbreviations.json') -@description('Optional created by user name') -param createdBy string = empty(deployer().userPrincipalName) ? '' : split(deployer().userPrincipalName, '@')[0] + // ========== Resource Group Tag ========== // resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = { @@ -144,7 +143,7 @@ resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = { tags: { ...allTags TemplateName: 'Code Modernization' - CreatedBy: createdBy + } } } From 050d2e681f8433733beb8a34d2bf5cc41791b6f0 Mon Sep 17 00:00:00 2001 From: Harmanpreet-Microsoft Date: Tue, 16 Sep 2025 11:21:16 +0530 Subject: [PATCH 04/11] Assign Contributor role to Service Principal --- .github/workflows/deploy.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a8d09e76..b9c50210 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -137,6 +137,14 @@ jobs: capacity=${{ env.GPT_MIN_CAPACITY }} \ imageVersion="${IMAGE_TAG}" \ createdBy="Pipeline" + - name: Assign Contributor role to Service Principal + if: always() + run: | + echo "Assigning Contributor role to SPN for RG: ${{ env.RESOURCE_GROUP_NAME }}" + az role assignment create \ + --assignee ${{ secrets.AZURE_CLIENT_ID }} \ + --role "Contributor" \ + --scope /subscriptions/${{ secrets.AZURE_SUBSCRIPTION_ID }}/resourceGroups/${{ env.RESOURCE_GROUP_NAME }} - name: Get Deployment Output and extract Values id: get_output @@ -403,4 +411,4 @@ jobs: if: always() run: | az logout - echo "Logged out from Azure." \ No newline at end of file + echo "Logged out from Azure." From 9a9af0dbd12bb408e8707b4d8b28ff50fe5ea2ed Mon Sep 17 00:00:00 2001 From: Harmanpreet-Microsoft Date: Tue, 16 Sep 2025 11:28:02 +0530 Subject: [PATCH 05/11] Remove Contributor role assignment for Service Principal --- .github/workflows/deploy.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b9c50210..c2158ad5 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -137,14 +137,6 @@ jobs: capacity=${{ env.GPT_MIN_CAPACITY }} \ imageVersion="${IMAGE_TAG}" \ createdBy="Pipeline" - - name: Assign Contributor role to Service Principal - if: always() - run: | - echo "Assigning Contributor role to SPN for RG: ${{ env.RESOURCE_GROUP_NAME }}" - az role assignment create \ - --assignee ${{ secrets.AZURE_CLIENT_ID }} \ - --role "Contributor" \ - --scope /subscriptions/${{ secrets.AZURE_SUBSCRIPTION_ID }}/resourceGroups/${{ env.RESOURCE_GROUP_NAME }} - name: Get Deployment Output and extract Values id: get_output From 065214b70203f3926ce746fee009553200a25f4d Mon Sep 17 00:00:00 2001 From: Kanchan-Microsoft Date: Tue, 16 Sep 2025 11:29:13 +0530 Subject: [PATCH 06/11] fixed --- src/frontend/package-lock.json | 62 +++++++++++----------------------- src/frontend/package.json | 4 +-- 2 files changed, 21 insertions(+), 45 deletions(-) diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 07d3890a..752ecaec 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -19,7 +19,7 @@ "@tailwindcss/vite": "^4.0.0", "@types/react-router-dom": "^5.3.3", "autoprefixer": "^10.4.20", - "axios": "^1.7.9", + "axios": "^1.12.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^0.471.1", @@ -29,7 +29,7 @@ "react-dropzone": "^14.3.5", "react-icons": "^5.5.0", "react-redux": "^9.1.2", - "react-router-dom": "^7.1.3", + "react-router-dom": "^7.5.2", "react-syntax-highlighter": "^15.6.1", "sql-formatter": "^15.4.11", "tailwind-merge": "^2.6.0", @@ -3740,12 +3740,6 @@ "@babel/types": "^7.20.7" } }, - "node_modules/@types/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", - "license": "MIT" - }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -4165,13 +4159,13 @@ } }, "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", + "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", + "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, @@ -4271,7 +4265,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -4767,7 +4760,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -4926,7 +4918,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4936,7 +4927,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4974,7 +4964,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -4987,7 +4976,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -5505,13 +5493,15 @@ } }, "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -5607,7 +5597,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", - "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -5632,7 +5621,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -5762,7 +5750,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5833,7 +5820,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5846,7 +5832,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -6932,7 +6917,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -7824,15 +7808,13 @@ } }, "node_modules/react-router": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.5.tgz", - "integrity": "sha512-8BUF+hZEU4/z/JD201yK6S+UYhsf58bzYIDq2NS1iGpwxSXDu7F+DeGSkIXMFBuHZB21FSiCzEcUb18cQNdRkA==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.1.tgz", + "integrity": "sha512-pfAByjcTpX55mqSDGwGnY9vDCpxqBLASg0BMNAuMmpSGESo/TaOUG6BllhAtAkCGx8Rnohik/XtaqiYUJtgW2g==", "license": "MIT", "dependencies": { - "@types/cookie": "^0.6.0", "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0", - "turbo-stream": "2.4.0" + "set-cookie-parser": "^2.6.0" }, "engines": { "node": ">=20.0.0" @@ -7848,12 +7830,12 @@ } }, "node_modules/react-router-dom": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.5.tgz", - "integrity": "sha512-/4f9+up0Qv92D3bB8iN5P1s3oHAepSGa9h5k6tpTFlixTTskJZwKGhJ6vRJ277tLD1zuaZTt95hyGWV1Z37csQ==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.9.1.tgz", + "integrity": "sha512-U9WBQssBE9B1vmRjo9qTM7YRzfZ3lUxESIZnsf4VjR/lXYz9MHjvOxHzr/aUm4efpktbVOrF09rL/y4VHa8RMw==", "license": "MIT", "dependencies": { - "react-router": "7.1.5" + "react-router": "7.9.1" }, "engines": { "node": ">=20.0.0" @@ -8826,12 +8808,6 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/turbo-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", - "license": "ISC" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/src/frontend/package.json b/src/frontend/package.json index c0aecc38..c1685e70 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -19,7 +19,7 @@ "@tailwindcss/vite": "^4.0.0", "@types/react-router-dom": "^5.3.3", "autoprefixer": "^10.4.20", - "axios": "^1.7.9", + "axios": "^1.12.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^0.471.1", @@ -29,7 +29,7 @@ "react-dropzone": "^14.3.5", "react-icons": "^5.5.0", "react-redux": "^9.1.2", - "react-router-dom": "^7.1.3", + "react-router-dom": "^7.5.2", "react-syntax-highlighter": "^15.6.1", "sql-formatter": "^15.4.11", "tailwind-merge": "^2.6.0", From 2e40d8351c243b1c28f66c77c4553e1bf2228e13 Mon Sep 17 00:00:00 2001 From: Harmanpreet-Microsoft Date: Tue, 16 Sep 2025 11:29:56 +0530 Subject: [PATCH 07/11] Add CreatedBy tag to resource group --- infra/main.bicep | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/infra/main.bicep b/infra/main.bicep index 20b98792..f3c9f956 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -134,7 +134,8 @@ var modelDeployment = { var abbrs = loadJsonContent('./abbreviations.json') - +@description('Optional created by user name') +param createdBy string = empty(deployer().userPrincipalName) ? '' : split(deployer().userPrincipalName, '@')[0] // ========== Resource Group Tag ========== // resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = { @@ -143,7 +144,7 @@ resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = { tags: { ...allTags TemplateName: 'Code Modernization' - + CreatedBy: createdBy } } } From 3eb926872837d368b982c632ff1a225638eef35b Mon Sep 17 00:00:00 2001 From: Harmanpreet-Microsoft Date: Tue, 16 Sep 2025 11:51:57 +0530 Subject: [PATCH 08/11] Assign Contributor role to Service Principal Add role assignment step for Service Principal in deployment workflow. --- .github/workflows/deploy.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index c2158ad5..be98168f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -137,6 +137,15 @@ jobs: capacity=${{ env.GPT_MIN_CAPACITY }} \ imageVersion="${IMAGE_TAG}" \ createdBy="Pipeline" + - name: Assign Contributor role to Service Principal + if: always() + run: | + echo "Assigning Contributor role to SPN for RG: ${{ env.RESOURCE_GROUP_NAME }}" + az role assignment create \ + --assignee ${{ secrets.AZURE_CLIENT_ID }} \ + --role "Contributor" \ + --scope /subscriptions/${{ secrets.AZURE_SUBSCRIPTION_ID }}/resourceGroups/${{ env.RESOURCE_GROUP_NAME }} + - name: Get Deployment Output and extract Values id: get_output From 90bfbaa4c4cb3f198c5358f2003fd14a05d267a7 Mon Sep 17 00:00:00 2001 From: Harmanpreet-Microsoft Date: Tue, 16 Sep 2025 11:55:47 +0530 Subject: [PATCH 09/11] Remove createdDate parameter from main.bicep Removed createdDate parameter from deployment. --- infra/main.bicep | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/infra/main.bicep b/infra/main.bicep index 2125d9ed..efc9c034 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -136,8 +136,7 @@ var abbrs = loadJsonContent('./abbreviations.json') @description('Optional created by user name') param createdBy string = empty(deployer().userPrincipalName) ? '' : split(deployer().userPrincipalName, '@')[0] -@description('Deployment UTC timestamp') -param createdDate string = any('utcNow(''yyyy-MM-ddTHH:mm:ssZ'')') + // ========== Resource Group Tag ========== // resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = { name: 'default' @@ -146,7 +145,7 @@ resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = { ...allTags TemplateName: 'Code Modernization' CreatedBy: createdBy - CreatedDate:createdDate + } } } From 9838abe7ec03d92ca97003dfff9f36d9d6ccb77e Mon Sep 17 00:00:00 2001 From: Harmanpreet-Microsoft Date: Tue, 16 Sep 2025 12:19:25 +0530 Subject: [PATCH 10/11] Update deploy.yml From 8420eae443ad0808c4ba019ce8cbd2ef6fa67585 Mon Sep 17 00:00:00 2001 From: Harmanpreet-Microsoft Date: Tue, 16 Sep 2025 14:10:07 +0530 Subject: [PATCH 11/11] Remove trailing newline in Bicep file --- infra/main.bicep | 1 - 1 file changed, 1 deletion(-) diff --git a/infra/main.bicep b/infra/main.bicep index efc9c034..f3c9f956 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -145,7 +145,6 @@ resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = { ...allTags TemplateName: 'Code Modernization' CreatedBy: createdBy - } } }