Skip to content

Commit ee87887

Browse files
authored
Release v1.47.0 (#3646)
1 parent 7c5982d commit ee87887

7 files changed

Lines changed: 147 additions & 9 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Features of PSRule for Azure include:
1010

1111
- [Learn by example][6] - Fix issues quickly, and learn how to improve your Infrastructure as Code..
1212
- [Framework aligned][7] - Apply principals of Azure Well-Architected Framework to your workloads.
13-
- [Start day one][2] - Leverage over 490 pre-built rules to test Azure resources.
13+
- [Start day one][2] - Leverage over 500 pre-built rules to test Azure resources.
1414
- [DevOps integrated][3] - Test Azure infrastructure as code such as Bicep or Azure Resource Manager templates.
1515
- [Cross-platform][4] - Run locally or in the cloud on MacOS, Linux, and Windows.
1616
- [Open community][8] - Open source rules for the Azure community.

docs/about.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ PSRule for Azure uses the principles of the Azure Well-Architected Framework (WA
2020
Examples are provided in Azure Bicep and ARM templates syntax.
2121

2222
If you want to write your own tests, you can do that too in your choice of YAML, JSON, or PowerShell.
23-
However with over 490 tests already built, you can identify and fix issues day one.
23+
However with over 500 tests already built, you can identify and fix issues day one.
2424

2525
!!! Learn "Get started with a sample repository"
2626
To get started with a sample repository, see [PSRule for Azure Quick Start][1] on GitHub.

docs/changelog.md

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,132 @@ See [upgrade notes][1] for helpful information when upgrading from previous vers
3030

3131
## Unreleased
3232

33+
## v1.47.0
34+
35+
What's changed since v1.46.0:
36+
37+
- New features:
38+
- Added December 2025 baselines `Azure.GA_2025_12`, `Azure.Preview_2025_12`, and `Azure.CAF_2025_12` by @BernieWhite.
39+
[#3642](https://github.com/Azure/PSRule.Rules.Azure/issues/3642)
40+
- Includes rules released before or during December 2025.
41+
- Marked `Azure.GA_2025_09` and `Azure.Preview_2025_09` baselines as obsolete.
42+
- New rules:
43+
- Added naming format rules for AKS, Container Apps, Service Fabric, Cosmos DB, Redis, and SQL resources.
44+
[#3548](https://github.com/Azure/PSRule.Rules.Azure/issues/3548)
45+
- App Configuration:
46+
- Check that replica locations are in allowed regions by @BernieWhite.
47+
[#3441](https://github.com/Azure/PSRule.Rules.Azure/issues/3441)
48+
- Azure Cache for Redis:
49+
- Check for legacy Azure Cache for Redis instances by @BenjaminEngeset.
50+
[#3605](https://github.com/Azure/PSRule.Rules.Azure/issues/3605)
51+
- Check resources naming matches configured name format by @BernieWhite.
52+
[#3548](https://github.com/Azure/PSRule.Rules.Azure/issues/3548)
53+
- The name format can be configured by the following configuration options:
54+
- `AZURE_REDIS_CACHE_NAME_FORMAT`
55+
- `AZURE_REDIS_ENTERPRISE_NAME_FORMAT`
56+
- Added configured name format by @BernieWhite.
57+
- Azure Cache for Redis Enterprise and Enterprise Flash:
58+
- Check for deprecated Redis Enterprise and Enterprise Flash SKUs by @BenjaminEngeset.
59+
[#3606](https://github.com/Azure/PSRule.Rules.Azure/issues/3606)
60+
- Azure Database for MySQL:
61+
- Check resources naming matches configured name format by @BernieWhite.
62+
[#3548](https://github.com/Azure/PSRule.Rules.Azure/issues/3548)
63+
- The name format can be configured by the following configuration options:
64+
- `AZURE_MYSQL_SERVER_NAME_FORMAT`
65+
- Azure Database for PostgreSQL:
66+
- Check resources naming matches configured name format by @BernieWhite.
67+
[#3548](https://github.com/Azure/PSRule.Rules.Azure/issues/3548)
68+
- The name format can be configured by the following configuration options:
69+
- `AZURE_POSTGRESQL_SERVER_NAME_FORMAT`
70+
- Azure Kubernetes Service:
71+
- Check resources naming matches configured name format by @BernieWhite.
72+
[#3548](https://github.com/Azure/PSRule.Rules.Azure/issues/3548)
73+
- The name format can be configured by the following configuration options:
74+
- `AZURE_AKS_CLUSTER_NAME_FORMAT`
75+
- `AZURE_AKS_SYSTEM_POOL_NAME_FORMAT`
76+
- `AZURE_AKS_USER_POOL_NAME_FORMAT`
77+
- Container Apps:
78+
- Check resources naming matches configured name format by @BernieWhite.
79+
[#3548](https://github.com/Azure/PSRule.Rules.Azure/issues/3548)
80+
- The name format can be configured by the following configuration options:
81+
- `AZURE_CONTAINER_APP_NAME_FORMAT`
82+
- `AZURE_CONTAINER_APP_ENVIRONMENT_NAME_FORMAT`
83+
- `AZURE_CONTAINER_APP_JOB_NAME_FORMAT`
84+
- Container Instance:
85+
- Check resources naming matches configured name format by @BernieWhite.
86+
[#3548](https://github.com/Azure/PSRule.Rules.Azure/issues/3548)
87+
- The name format can be configured by the following configuration option:
88+
- `AZURE_CONTAINER_INSTANCE_NAME_FORMAT`
89+
- Container Registry:
90+
- Check resources naming matches configured name format by @BernieWhite.
91+
[#3548](https://github.com/Azure/PSRule.Rules.Azure/issues/3548)
92+
- The name format can be configured by the following configuration option:
93+
- `AZURE_CONTAINER_REGISTRY_NAME_FORMAT`
94+
- Cosmos DB:
95+
- Check that Cosmos DB accounts have availability zones enabled by @BenjaminEngeset.
96+
[#3055](https://github.com/Azure/PSRule.Rules.Azure/issues/3055)
97+
- Check that MongoDB vCore clusters use Microsoft Entra ID authentication by @BenjaminEngeset.
98+
[#3369](https://github.com/Azure/PSRule.Rules.Azure/issues/3369)
99+
- Check that MongoDB vCore clusters have availability zones enabled by @BenjaminEngeset.
100+
[#3586](https://github.com/Azure/PSRule.Rules.Azure/issues/3586)
101+
- Check resources naming matches configured name format by @BernieWhite.
102+
[#3548](https://github.com/Azure/PSRule.Rules.Azure/issues/3548)
103+
- The name format can be configured by the following configuration options:
104+
- `AZURE_COSMOS_CASSANDRA_NAME_FORMAT`
105+
- `AZURE_COSMOS_DATABASE_NAME_FORMAT`
106+
- `AZURE_COSMOS_GREMLIN_NAME_FORMAT`
107+
- `AZURE_COSMOS_MONGO_NAME_FORMAT`
108+
- `AZURE_COSMOS_NOSQL_NAME_FORMAT`
109+
- `AZURE_COSMOS_POSTGRESQL_NAME_FORMAT`
110+
- `AZURE_COSMOS_TABLE_NAME_FORMAT`
111+
- Data Explorer:
112+
- Check that public network access is disabled by @BenjaminEngeset.
113+
[#3114](https://github.com/Azure/PSRule.Rules.Azure/issues/3114)
114+
- Event Hub:
115+
- Check that zone redundancy is enabled for Event Hub namespaces in supported regions by @BenjaminEngeset.
116+
[#3029](https://github.com/Azure/PSRule.Rules.Azure/issues/3029)
117+
- Managed Instance for Apache Cassandra:
118+
- Check that Managed Instance for Apache Cassandra clusters have availability zones enabled by @BenjaminEngeset.
119+
[#3592](https://github.com/Azure/PSRule.Rules.Azure/issues/3592)
120+
- Managed Grafana:
121+
- Check that zone redundancy is enabled for Grafana workspaces in supported regions by @BenjaminEngeset.
122+
[#3294](https://github.com/Azure/PSRule.Rules.Azure/issues/3294)
123+
- Service Fabric:
124+
- Check resources naming matches configured name format by @BernieWhite.
125+
[#3548](https://github.com/Azure/PSRule.Rules.Azure/issues/3548)
126+
- The name format can be configured by the following configuration option:
127+
- `AZURE_SERVICE_FABRIC_CLUSTER_NAME_FORMAT`
128+
- `AZURE_SERVICE_FABRIC_MANAGED_CLUSTER_NAME_FORMAT`
129+
- SQL Database:
130+
- Check resources naming matches configured name format by @BernieWhite.
131+
[#3548](https://github.com/Azure/PSRule.Rules.Azure/issues/3548)
132+
- The name format can be configured by the following configuration option:
133+
- `AZURE_SQL_DATABASE_NAME_FORMAT`
134+
- `AZURE_SQL_SERVER_NAME_FORMAT`
135+
- `AZURE_SQL_ELASTIC_POOL_NAME_FORMAT`
136+
- `AZURE_SQL_JOB_AGENT_NAME_FORMAT`
137+
- SQL Managed Instance:
138+
- Check resources naming matches configured name format by @BernieWhite.
139+
[#3548](https://github.com/Azure/PSRule.Rules.Azure/issues/3548)
140+
- The name format can be configured by the following configuration option:
141+
- `AZURE_SQL_MI_NAME_FORMAT`
142+
- Updated rules:
143+
- Application Gateway Policy:
144+
- Updated `Azure.AppGwWAF.RuleGroups` to use Microsoft Default Rule Set instead of legacy OWASP rule set by @BenjaminEngeset.
145+
[#3553](https://github.com/Azure/PSRule.Rules.Azure/issues/3553)
146+
- Cosmos DB:
147+
- Renamed `Azure.Cosmos.DisableLocalAuth` to `Azure.Cosmos.NoSQLLocalAuth` to reflect it applies only to NoSQL API by @BernieWhite.
148+
[#3576](https://github.com/Azure/PSRule.Rules.Azure/issues/3576)
149+
- Engineering:
150+
- Bump Microsoft.Extensions.Logging.Console from 8.0.0 to 10.0.1
151+
[#3627](https://github.com/Azure/PSRule.Rules.Azure/issues/3627)
152+
- Bump Microsoft.Extensions.Hosting from 9.0.10 to 10.0.1
153+
[#3626](https://github.com/Azure/PSRule.Rules.Azure/issues/3626)
154+
155+
What's changed since pre-release v1.47.0-B0060:
156+
157+
- No additional changes.
158+
33159
## v1.47.0-B0060 (pre-release)
34160

35161
What's changed since v1.46.0:

docs/features.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ This allows you to explore and learn the context of each WAF principle.
4141

4242
## Start day one
4343

44-
PSRule for Azure includes over 490 rules for validating resources against configuration recommendations.
44+
PSRule for Azure includes over 500 rules for validating resources against configuration recommendations.
4545
Rules automatically detect and analyze resources from Azure IaC artifacts.
4646
This allows you to quickly light up unit testing of Azure resources from templates and Bicep deployments.
4747

docs/updates/v1.47.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
date: 2025-12-30
33
version: 1.47
44
discussion: false
5-
draft: true
5+
draft: false
66
---
77

88
# December 2025
@@ -19,6 +19,8 @@ See the [change log][1] or [GitHub history][2] for a complete list of changes.
1919
## Expanded support for CAF naming
2020

2121
Support for CAF naming conventions has been expanded with new rules to cover additional resource types.
22+
The new rules help enforce consistent, CAF-aligned resource names across environments.
23+
2224
New resource types supported for enforcing naming conventions include:
2325

2426
- `Microsoft.ContainerInstance/containerGroups`
@@ -45,6 +47,16 @@ New resource types supported for enforcing naming conventions include:
4547
- `Microsoft.Sql/servers/jobAgents`
4648
- `Microsoft.Sql/managedInstances`
4749

50+
## New baselines
51+
52+
This release adds three built-in baselines published for December 2025:
53+
54+
- `Azure.GA_2025_12` — General Availability aligned baseline containing rules that match broadly available Azure service behavior and hardening recommendations.
55+
- `Azure.Preview_2025_12` — Preview aligned baseline that includes additional rules for preview features and newer service capabilities.
56+
- `Azure.CAF_2025_12` — Cloud Adoption Framework focused baseline designed to help enforce naming, tagging and recommended conventions for enterprise adoption.
57+
58+
See examples of using baselines in the [Working with baselines](../working-with-baselines.md#using-baselines) documentation.
59+
4860
## Contributions
4961

5062
We would like to thank the following contributors for their contributions to this release:

docs/working-with-baselines.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ See [reference][1] for a list baselines shipped with PSRule for Azure.
118118
uses: microsoft/ps-rule@v2.9.0
119119
with:
120120
modules: 'PSRule.Rules.Azure'
121-
baseline: 'Azure.GA_2025_03'
121+
baseline: 'Azure.GA_2025_12'
122122
```
123123

124124
=== "Azure Pipelines"
@@ -131,19 +131,19 @@ See [reference][1] for a list baselines shipped with PSRule for Azure.
131131
displayName: Analyze Azure template files
132132
inputs:
133133
modules: 'PSRule.Rules.Azure'
134-
baseline: 'Azure.GA_2025_03'
134+
baseline: 'Azure.GA_2025_12'
135135
```
136136

137137
=== "PowerShell"
138138

139139
Update your PowerShell command-line with `-Baseline <name_of_baseline>`.
140140

141141
```powershell title="With Assert-PSRule"
142-
Assert-PSRule -Format File -InputPath '.' -Module 'PSRule.Rules.Azure' -Baseline 'Azure.GA_2025_03'
142+
Assert-PSRule -Format File -InputPath '.' -Module 'PSRule.Rules.Azure' -Baseline 'Azure.GA_2025_12'
143143
```
144144

145145
```powershell title="With Invoke-PSRule"
146-
Invoke-PSRule -Format File -InputPath '.' -Module 'PSRule.Rules.Azure' -Baseline 'Azure.GA_2025_03'
146+
Invoke-PSRule -Format File -InputPath '.' -Module 'PSRule.Rules.Azure' -Baseline 'Azure.GA_2025_12'
147147
```
148148

149149
[1]: en/baselines/Azure.All.md

overrides/home.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ <h3 class="h4 text-brand font-weight-600 mb-3">Framework aligned</h3>
335335
<div>
336336
{% include ".icons/octicons/rocket-24.svg" %}
337337
<h3 class="h4 text-brand font-weight-600 mb-3">Start day one</h3>
338-
<p>Leverage over 490 pre-built rules to test Azure resources.</p>
338+
<p>Leverage over 500 pre-built rules to test Azure resources.</p>
339339
</div>
340340
</a>
341341
<a class="tile" href="features/#devops-integrated" target="_self" rel="noopener">

0 commit comments

Comments
 (0)