Skip to content

Commit 2883380

Browse files
committed
6.3.6
1 parent 65457a4 commit 2883380

7 files changed

Lines changed: 39 additions & 17 deletions

File tree

README.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,17 @@ The [Azure Governance Visualizer Accelerator](https://github.com/Azure/Azure-Gov
7878

7979
## Release history
8080

81+
__Changes__ (2023-Dec-16 / 6.3.6 Minor)
82+
83+
* fix: processing of Service Principal names that contain special characters
84+
* fix: RBAC reporting correct RBAC Role assignment related Policy assignment Policy definition displayName
85+
* update ARM API-version for CostManagement. Using `2023-03-01` instead of `2019-11-01`
86+
8187
__Changes__ (2023-Dec-15 / 6.3.5 Minor)
8288

8389
* Checking if the response of the storage account properties request is a byte array (type 'byte[]') and decode it to a string
8490
* Different handling of BOM (Byte order mark) for XML returns on storage account properties request (since Powershell version 7.4.0)
91+
* use [AzAPICall](https://aka.ms/AzAPICall) PowerShell module version 1.1.85
8592

8693
[Full release history](history.md)
8794

@@ -571,7 +578,7 @@ Azure Governance Visualizer polls the following APIs
571578
| ARM | 2020-10-01 | /providers/Microsoft.Management/managementGroups/`managementGroupId`/providers/Microsoft.Authorization/roleAssignmentScheduleInstances |
572579
| ARM | 2018-07-01 | /providers/Microsoft.Management/managementGroups/`managementGroupId`/providers/Microsoft.Authorization/roleDefinitions |
573580
| ARM | 2018-11-01-preview | /providers/Microsoft.Management/managementGroups/`managementGroupId`/providers/Microsoft.Blueprint/blueprints |
574-
| ARM | 2019-11-01 | /providers/Microsoft.Management/managementGroups/`managementGroupId`/providers/Microsoft.CostManagement/query |
581+
| ARM | 2023-03-01 | /providers/Microsoft.Management/managementGroups/`managementGroupId`/providers/Microsoft.CostManagement/query |
575582
| ARM | 2020-01-01-preview | /providers/Microsoft.Management/managementGroups/`managementGroupId`/providers/microsoft.insights/diagnosticSettings |
576583
| ARM | 2019-10-01 | /providers/Microsoft.Management/managementGroups/`managementGroupId`/providers/Microsoft.PolicyInsights/policyStates/latest/summarize |
577584
| ARM | 2020-05-01 | /providers/Microsoft.Management/managementGroups/`managementGroupId` |
@@ -592,7 +599,7 @@ Azure Governance Visualizer polls the following APIs
592599
| ARM | 2022-05-01-preview | /subscriptions/`subscriptionId`/providers/Microsoft.Authorization/roleDefinitions |
593600
| ARM | 2022-05-01-preview | /subscriptions/`subscriptionId`/providers/Microsoft.Blueprint/blueprintAssignments |
594601
| ARM | 2018-11-01-preview | /subscriptions/`subscriptionId`/providers/Microsoft.Blueprint/blueprints |
595-
| ARM | 2019-11-01 | /subscriptions/`subscriptionId`/providers/Microsoft.CostManagement/query |
602+
| ARM | 2023-03-01 | /subscriptions/`subscriptionId`/providers/Microsoft.CostManagement/query |
596603
| ARM | 2021-05-01-preview | /subscriptions/`subscriptionId`/providers/Microsoft.Insights/diagnosticSettings |
597604
| ARM | 2019-10-01 | /subscriptions/`subscriptionId`/providers/Microsoft.PolicyInsights/policyStates/latest/summarize |
598605
| ARM | 2022-07-01 | /subscriptions/`subscriptionId`/providers/Microsoft.Network/locations/`location`/availablePrivateEndpointTypes |

history.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,17 @@
44

55
### Azure Governance Visualizer version 6
66

7+
__Changes__ (2023-Dec-16 / 6.3.6 Minor)
8+
9+
* fix: processing of Service Principal names that contain special characters
10+
* fix: RBAC reporting correct RBAC Role assignment related Policy assignment Policy definition displayName
11+
* update ARM API-version for CostManagement. Using `2023-03-01` instead of `2019-11-01`
12+
713
__Changes__ (2023-Dec-15 / 6.3.5 Minor)
814

915
* Checking if the response of the storage account properties request is a byte array (type 'byte[]') and decode it to a string
1016
* Different handling of BOM (Byte order mark) for XML returns on storage account properties request (since Powershell version 7.4.0)
17+
* use [AzAPICall](https://aka.ms/AzAPICall) PowerShell module version 1.1.85
1118

1219
__Changes__ (2023-Nov-13 / 6.3.4 Minor)
1320

pwsh/AzGovVizParallel.ps1

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ Param
365365
$Product = 'AzGovViz',
366366

367367
[string]
368-
$ProductVersion = '6.3.5',
368+
$ProductVersion = '6.3.6',
369369

370370
[string]
371371
$GithubRepository = 'aka.ms/AzGovViz',
@@ -2593,7 +2593,7 @@ function getConsumption {
25932593
$currenttask = "Getting Consumption data (scope MG '$($ManagementGroupId)') for $($subsToProcessInCustomDataCollectionCount) Subscriptions (QuotaId Whitelist: '$($SubscriptionQuotaIdWhitelist -join ', ')') for period $AzureConsumptionPeriod days ($azureConsumptionStartDate - $azureConsumptionEndDate)"
25942594
Write-Host "$currentTask"
25952595
#https://docs.microsoft.com/en-us/rest/api/cost-management/query/usage
2596-
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/providers/Microsoft.Management/managementGroups/$($ManagementGroupId)/providers/Microsoft.CostManagement/query?api-version=2019-11-01&`$top=5000"
2596+
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/providers/Microsoft.Management/managementGroups/$($ManagementGroupId)/providers/Microsoft.CostManagement/query?api-version=2023-03-01&`$top=5000"
25972597
$method = 'POST'
25982598

25992599
$counterBatch = [PSCustomObject] @{ Value = 0 }
@@ -2744,7 +2744,7 @@ function getConsumption {
27442744
#test
27452745
Write-Host $currentTask
27462746
#https://docs.microsoft.com/en-us/rest/api/cost-management/query/usage
2747-
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/subscriptions/$($subIdToProcess)/providers/Microsoft.CostManagement/query?api-version=2019-11-01&`$top=5000"
2747+
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/subscriptions/$($subIdToProcess)/providers/Microsoft.CostManagement/query?api-version=2023-03-01&`$top=5000"
27482748
$method = 'POST'
27492749
$subConsumptionData = AzAPICall -AzAPICallConfiguration $azAPICallConf -uri $uri -method $method -body $body -currentTask $currentTask -listenOn 'ContentProperties'
27502750
if ($subConsumptionData -eq 'Unauthorized' -or $subConsumptionData -eq 'OfferNotSupported' -or $subConsumptionData -eq 'InvalidQueryDefinition' -or $subConsumptionData -eq 'NonValidWebDirectAIRSOfferType' -or $subConsumptionData -eq 'NotFoundNotSupported' -or $subConsumptionData -eq 'IndirectCostDisabled') {
@@ -2805,7 +2805,7 @@ function getConsumption {
28052805
$currenttask = "Getting Consumption data (scope MG '$($ManagementGroupId)') for period $AzureConsumptionPeriod days ($azureConsumptionStartDate - $azureConsumptionEndDate)"
28062806
Write-Host "$currentTask"
28072807
#https://docs.microsoft.com/en-us/rest/api/cost-management/query/usage
2808-
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/providers/Microsoft.Management/managementGroups/$($ManagementGroupId)/providers/Microsoft.CostManagement/query?api-version=2019-11-01&`$top=5000"
2808+
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/providers/Microsoft.Management/managementGroups/$($ManagementGroupId)/providers/Microsoft.CostManagement/query?api-version=2023-03-01&`$top=5000"
28092809
$method = 'POST'
28102810
$body = @"
28112811
{
@@ -2936,7 +2936,7 @@ function getConsumption {
29362936
#test
29372937
Write-Host $currentTask
29382938
#https://docs.microsoft.com/en-us/rest/api/cost-management/query/usage
2939-
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/subscriptions/$($subIdToProcess)/providers/Microsoft.CostManagement/query?api-version=2019-11-01&`$top=5000"
2939+
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/subscriptions/$($subIdToProcess)/providers/Microsoft.CostManagement/query?api-version=2023-03-01&`$top=5000"
29402940
$method = 'POST'
29412941
$subConsumptionData = AzAPICall -AzAPICallConfiguration $azAPICallConf -uri $uri -method $method -body $body -currentTask $currentTask -listenOn 'ContentProperties'
29422942
if ($subConsumptionData -eq 'Unauthorized' -or $subConsumptionData -eq 'OfferNotSupported' -or $subConsumptionData -eq 'InvalidQueryDefinition' -or $subConsumptionData -eq 'NonValidWebDirectAIRSOfferType' -or $subConsumptionData -eq 'NotFoundNotSupported' -or $subConsumptionData -eq 'IndirectCostDisabled') {
@@ -12809,10 +12809,12 @@ function processTenantSummary() {
1280912809
#policy
1281012810
if ($policyDefinitionId -like '/providers/Microsoft.Authorization/policyDefinitions/*') {
1281112811
$LinkOrNotLinkToAzAdvertizer = ($htCacheDefinitionsPolicy).($policyDefinitionId).LinkToAzAdvertizer
12812+
$policyDisplayName = ($htCacheDefinitionsPolicy).($policyDefinitionId).DisplayName
1281212813
}
1281312814
#policySet
1281412815
if ($policyDefinitionId -like '/providers/Microsoft.Authorization/policySetDefinitions/*') {
1281512816
$LinkOrNotLinkToAzAdvertizer = ($htCacheDefinitionsPolicySet).($policyDefinitionId).LinkToAzAdvertizer
12817+
$policyDisplayName = ($htCacheDefinitionsPolicySet).($policyDefinitionId).DisplayName
1281612818
}
1281712819
}
1281812820
else {
@@ -12824,7 +12826,6 @@ function processTenantSummary() {
1282412826
#policySet
1282512827
if ($policyDefinitionId -like '*/providers/Microsoft.Authorization/policySetDefinitions/*') {
1282612828
$policyDisplayName = ($htCacheDefinitionsPolicySet).($policyDefinitionId).DisplayName
12827-
1282812829
}
1282912830

1283012831
$LinkOrNotLinkToAzAdvertizer = "<b>$($policyDisplayName -replace '<', '&lt;' -replace '>', '&gt;')</b>"
@@ -25274,7 +25275,10 @@ tf.init();}}
2527425275
}
2527525276
}
2527625277
else {
25277-
$s1 = $altName -replace '.*/providers/'; $rm = $s1 -replace '.*/'; $resourceType = $s1 -replace "/$($rm)"
25278+
#https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex.escape
25279+
$s1 = $altName -replace '.*/providers/'
25280+
$rm = $s1 -replace '.*/'
25281+
$resourceType = $s1 -replace "/$([System.Text.RegularExpressions.Regex]::Escape($rm))"
2527825282
$miAlternativeName = $altname
2527925283
$miResourceType = $resourceType
2528025284
}

pwsh/dev/devAzGovVizParallel.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ Param
365365
$Product = 'AzGovViz',
366366

367367
[string]
368-
$ProductVersion = '6.3.5',
368+
$ProductVersion = '6.3.6',
369369

370370
[string]
371371
$GithubRepository = 'aka.ms/AzGovViz',

pwsh/dev/functions/getConsumption.ps1

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ function getConsumption {
3434
$currenttask = "Getting Consumption data (scope MG '$($ManagementGroupId)') for $($subsToProcessInCustomDataCollectionCount) Subscriptions (QuotaId Whitelist: '$($SubscriptionQuotaIdWhitelist -join ', ')') for period $AzureConsumptionPeriod days ($azureConsumptionStartDate - $azureConsumptionEndDate)"
3535
Write-Host "$currentTask"
3636
#https://docs.microsoft.com/en-us/rest/api/cost-management/query/usage
37-
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/providers/Microsoft.Management/managementGroups/$($ManagementGroupId)/providers/Microsoft.CostManagement/query?api-version=2019-11-01&`$top=5000"
37+
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/providers/Microsoft.Management/managementGroups/$($ManagementGroupId)/providers/Microsoft.CostManagement/query?api-version=2023-03-01&`$top=5000"
3838
$method = 'POST'
3939

4040
$counterBatch = [PSCustomObject] @{ Value = 0 }
@@ -185,7 +185,7 @@ function getConsumption {
185185
#test
186186
Write-Host $currentTask
187187
#https://docs.microsoft.com/en-us/rest/api/cost-management/query/usage
188-
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/subscriptions/$($subIdToProcess)/providers/Microsoft.CostManagement/query?api-version=2019-11-01&`$top=5000"
188+
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/subscriptions/$($subIdToProcess)/providers/Microsoft.CostManagement/query?api-version=2023-03-01&`$top=5000"
189189
$method = 'POST'
190190
$subConsumptionData = AzAPICall -AzAPICallConfiguration $azAPICallConf -uri $uri -method $method -body $body -currentTask $currentTask -listenOn 'ContentProperties'
191191
if ($subConsumptionData -eq 'Unauthorized' -or $subConsumptionData -eq 'OfferNotSupported' -or $subConsumptionData -eq 'InvalidQueryDefinition' -or $subConsumptionData -eq 'NonValidWebDirectAIRSOfferType' -or $subConsumptionData -eq 'NotFoundNotSupported' -or $subConsumptionData -eq 'IndirectCostDisabled') {
@@ -246,7 +246,7 @@ function getConsumption {
246246
$currenttask = "Getting Consumption data (scope MG '$($ManagementGroupId)') for period $AzureConsumptionPeriod days ($azureConsumptionStartDate - $azureConsumptionEndDate)"
247247
Write-Host "$currentTask"
248248
#https://docs.microsoft.com/en-us/rest/api/cost-management/query/usage
249-
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/providers/Microsoft.Management/managementGroups/$($ManagementGroupId)/providers/Microsoft.CostManagement/query?api-version=2019-11-01&`$top=5000"
249+
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/providers/Microsoft.Management/managementGroups/$($ManagementGroupId)/providers/Microsoft.CostManagement/query?api-version=2023-03-01&`$top=5000"
250250
$method = 'POST'
251251
$body = @"
252252
{
@@ -377,7 +377,7 @@ function getConsumption {
377377
#test
378378
Write-Host $currentTask
379379
#https://docs.microsoft.com/en-us/rest/api/cost-management/query/usage
380-
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/subscriptions/$($subIdToProcess)/providers/Microsoft.CostManagement/query?api-version=2019-11-01&`$top=5000"
380+
$uri = "$($azAPICallConf['azAPIEndpointUrls'].ARM)/subscriptions/$($subIdToProcess)/providers/Microsoft.CostManagement/query?api-version=2023-03-01&`$top=5000"
381381
$method = 'POST'
382382
$subConsumptionData = AzAPICall -AzAPICallConfiguration $azAPICallConf -uri $uri -method $method -body $body -currentTask $currentTask -listenOn 'ContentProperties'
383383
if ($subConsumptionData -eq 'Unauthorized' -or $subConsumptionData -eq 'OfferNotSupported' -or $subConsumptionData -eq 'InvalidQueryDefinition' -or $subConsumptionData -eq 'NonValidWebDirectAIRSOfferType' -or $subConsumptionData -eq 'NotFoundNotSupported' -or $subConsumptionData -eq 'IndirectCostDisabled') {

pwsh/dev/functions/processTenantSummary.ps1

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,12 @@ function processTenantSummary() {
5252
#policy
5353
if ($policyDefinitionId -like '/providers/Microsoft.Authorization/policyDefinitions/*') {
5454
$LinkOrNotLinkToAzAdvertizer = ($htCacheDefinitionsPolicy).($policyDefinitionId).LinkToAzAdvertizer
55+
$policyDisplayName = ($htCacheDefinitionsPolicy).($policyDefinitionId).DisplayName
5556
}
5657
#policySet
5758
if ($policyDefinitionId -like '/providers/Microsoft.Authorization/policySetDefinitions/*') {
5859
$LinkOrNotLinkToAzAdvertizer = ($htCacheDefinitionsPolicySet).($policyDefinitionId).LinkToAzAdvertizer
60+
$policyDisplayName = ($htCacheDefinitionsPolicySet).($policyDefinitionId).DisplayName
5961
}
6062
}
6163
else {
@@ -67,7 +69,6 @@ function processTenantSummary() {
6769
#policySet
6870
if ($policyDefinitionId -like '*/providers/Microsoft.Authorization/policySetDefinitions/*') {
6971
$policyDisplayName = ($htCacheDefinitionsPolicySet).($policyDefinitionId).DisplayName
70-
7172
}
7273

7374
$LinkOrNotLinkToAzAdvertizer = "<b>$($policyDisplayName -replace '<', '&lt;' -replace '>', '&gt;')</b>"
@@ -12517,7 +12518,10 @@ tf.init();}}
1251712518
}
1251812519
}
1251912520
else {
12520-
$s1 = $altName -replace '.*/providers/'; $rm = $s1 -replace '.*/'; $resourceType = $s1 -replace "/$($rm)"
12521+
#https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex.escape
12522+
$s1 = $altName -replace '.*/providers/'
12523+
$rm = $s1 -replace '.*/'
12524+
$resourceType = $s1 -replace "/$([System.Text.RegularExpressions.Regex]::Escape($rm))"
1252112525
$miAlternativeName = $altname
1252212526
$miResourceType = $resourceType
1252312527
}

version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"ProductVersion": "6.3.5"
2+
"ProductVersion": "6.3.6"
33
}

0 commit comments

Comments
 (0)