Change log#
See upgrade notes for helpful information when upgrading from previous versions.
Important notes:
- Several options have been renamed and the old names will be removed in v3. See deprecations for details.
-
Several properties of rule and language block elements will be removed from v3. See deprecations for details.
Experimental features:
- Baseline groups allow you to use a friendly name to reference baselines. See baselines for more information.
- Functions within YAML and JSON expressions can be used to perform manipulation prior to testing a condition. See functions for more information.
- Sub-selectors within YAML and JSON expressions can be used to filter rules and list properties. See sub-selectors for more information.
-
Processing of changes files only within a pipeline. See creating your pipeline for more information.
Attention
We are currently working towards the next release of PSRule. For more information see v3 release notes. Please check out our upgrade notes to get prepared for upgrading to the latest version.
v2.9.0#
What's changed since release v2.8.1:
- New features:
- Added sub-selector quantifiers for
allOf
oranyOf
operators by @BernieWhite. #1423- Quantifiers allow you to specify the number of matches with
count
,less
,lessOrEqual
,greater
, orgreaterOrEqual
. - See Sub-selectors for more information.
- Quantifiers allow you to specify the number of matches with
- Added support for new functions by @BernieWhite.
#1422
- Added support for
padLeft
, andpadRight
.
- Added support for
- Experimental: Added support for baseline groups by @BernieWhite.
#1541
- Baseline groups allow you to reference a baseline by a friendly name.
- Update the baseline group to point to a new baseline.
- Currently only a single baseline can be referenced by a baseline group.
- See baselines for more information.
- Added sub-selector quantifiers for
- General improvements:
- Added style and improved handling for restore command by @BernieWhite. #1152
- Important change: Rename of execution options by @BernieWhite.
#1456
- Renamed options allow configuration of output level as
Ignore
,Warn
,Error
, orDebug
. Execution.AliasReferenceWarning
is replaced withExecution.AliasReference
.Execution.InconclusiveWarning
is replaced withExecution.RuleInconclusive
.Execution.InvariantCultureWarning
is replaced withExecution.InvariantCulture
.Execution.NotProcessedWarning
is replaced withExecution.UnprocessedObject
.- Deprecated
AliasReferenceWarning
option, which will be removed in v3. - Deprecated
InconclusiveWarning
option, which will be removed in v3. - Deprecated
InvariantCultureWarning
option, which will be removed in v3. - Deprecated
NotProcessedWarning
option, which will be removed in v3.
- Renamed options allow configuration of output level as
- Improved schema display names by @BernieWhite. #1488
- Engineering:
- Bug fixes:
What's changed since pre-release v2.9.0-B0068:
- No additional changes.
v2.9.0-B0068 (pre-release)#
What's changed since pre-release v2.9.0-B0033:
- New features:
- Experimental: Added support for baseline groups by @BernieWhite.
#1541
- Baseline groups allow you to reference a baseline by a friendly name.
- Update the baseline group to point to a new baseline.
- Currently only a single baseline can be referenced by a baseline group.
- See baselines for more information.
- Experimental: Added support for baseline groups by @BernieWhite.
#1541
- General improvements:
- Added style and improved handling for restore command by @BernieWhite. #1152
- Engineering:
- Bug fixes:
- Fixed include local not automatically being enabled for default module baseline by @BernieWhite. #1506
v2.9.0-B0033 (pre-release)#
What's changed since pre-release v2.9.0-B0013:
- New features:
- Added sub-selector quantifiers for
allOf
oranyOf
operators by @BernieWhite. #1423- Quantifiers allow you to specify the number of matches with
count
,less
,lessOrEqual
,greater
, orgreaterOrEqual
. - See Sub-selectors for more information.
- Quantifiers allow you to specify the number of matches with
- Added support for new functions by @BernieWhite.
#1422
- Added support for
padLeft
, andpadRight
.
- Added support for
- Added sub-selector quantifiers for
v2.9.0-B0013 (pre-release)#
What's changed since release v2.8.1:
- General improvements:
- Important change: Rename of execution options by @BernieWhite.
#1456
- Renamed options allow configuration of output level as
Ignore
,Warn
,Error
, orDebug
. Execution.AliasReferenceWarning
is replaced withExecution.AliasReference
.Execution.InconclusiveWarning
is replaced withExecution.RuleInconclusive
.Execution.InvariantCultureWarning
is replaced withExecution.InvariantCulture
.Execution.NotProcessedWarning
is replaced withExecution.UnprocessedObject
.- Deprecated
AliasReferenceWarning
option, which will be removed in v3. - Deprecated
InconclusiveWarning
option, which will be removed in v3. - Deprecated
InvariantCultureWarning
option, which will be removed in v3. - Deprecated
NotProcessedWarning
option, which will be removed in v3.
- Renamed options allow configuration of output level as
- Improved schema display names by @BernieWhite. #1488
- Important change: Rename of execution options by @BernieWhite.
#1456
- Engineering:
- Bug fixes:
v2.8.1#
What's changed since release v2.8.0:
- Bug fixes:
v2.8.0#
What's changed since release v2.7.0:
- General improvements:
- Important change: Replaced
SuppressedRuleWarning
execution option withRuleSuppressed
by @BernieWhite. #1456- Improved options for output of suppressed rules with
RuleSuppressed
option. - Deprecated
SuppressedRuleWarning
option, which will be removed in v3.
- Improved options for output of suppressed rules with
- Added support for logging excluded rules by @BernieWhite.
#1432
- Configure
Execution.RuleExcluded
to control output level of excluded rules asIgnore
,Warn
,Error
, orDebug
.
- Configure
- Added additional options to schema for PSRule for Azure by @BernieWhite. #1446
- Improved error message for failing to read options file by @BernieWhite. #1433
- Added support for import within initialize block by @BernieWhite. #1448
- Added support for direct typing on import by @BernieWhite.
#1449
- Use the
$PSRule.ImportWithType
method to import an object with a specific type.
- Use the
- Added support for case sensitivity matching with
match
andnotMatch
expressions by @BernieWhite. #1480
- Important change: Replaced
- Engineering:
- Bump Pester to v5.4.0. #1414 Bump Microsoft.CodeAnalysis.Common to v4.4.0. #1341
- Bump BenchmarkDotNet to v0.13.5. #1413
- Bump BenchmarkDotNet.Diagnostics.Windows to v0.13.5. #1413
- Bump Microsoft.NET.Test.Sdk to v17.5.0. #1442
- Bump Newtonsoft.Json to v13.0.3. #1467
- Bump Microsoft.CodeAnalysis.NetAnalyzers to v7.0.1. #1468
- Bug fixes:
- Fixes handling of numerics in tests for that are impacted by regional format by @BernieWhite. #1405
- Fixed no output with using job summary with as summary by @BernieWhite.
#1483
- Fixed output and added error for unsupported scenarios.
- Fixed LocalizedData is not exposed to if pre-conditions by @BernieWhite. #1083
- Fixed LocalizedData is not exposed to conventions by @BernieWhite. #1477
- Fixed problem binding when not set locally by @BernieWhite. #1473
What's changed since pre-release v2.8.0-B0171:
- No additional changes.
v2.8.0-B0171 (pre-release)#
What's changed since pre-release v2.8.0-B0121:
- General improvements:
- Added support for case sensitivity matching with
match
andnotMatch
expressions by @BernieWhite. #1480
- Added support for case sensitivity matching with
- Bug fixes:
- Fixed no output with using job summary with as summary by @BernieWhite.
#1483
- Fixed output and added error for unsupported scenarios.
- Fixed no output with using job summary with as summary by @BernieWhite.
#1483
v2.8.0-B0121 (pre-release)#
What's changed since pre-release v2.8.0-B0076:
- Bug fixes:
v2.8.0-B0076 (pre-release)#
What's changed since pre-release v2.8.0-B0034:
- Engineering:
- Bug fixes:
- Fixed problem binding when not set locally by @BernieWhite. #1473
v2.8.0-B0034 (pre-release)#
What's changed since v2.7.0:
- General improvements:
- Important change: Replaced
SuppressedRuleWarning
execution option withRuleSuppressed
by @BernieWhite. #1456- Improved options for output of suppressed rules with
RuleSuppressed
option. - Deprecated
SuppressedRuleWarning
option, which will be removed in v3.
- Improved options for output of suppressed rules with
- Added support for logging excluded rules by @BernieWhite. #1432
- Added additional options to schema for PSRule for Azure by @BernieWhite. #1446
- Improved error message for failing to read options file by @BernieWhite. #1433
- Added support for import within initialize block by @BernieWhite. #1448
- Added support for direct typing on import by @BernieWhite.
#1449
- Use the
$PSRule.ImportWithType
method to import an object with a specific type.
- Use the
- Important change: Replaced
- Engineering:
- Bug fixes:
- Fixes handling of numerics in tests for that are impacted by regional format by @BernieWhite. #1405
v2.7.0#
What's changed since v2.6.0:
- New features:
- General improvements:
- Added support target scope by @BernieWhite. #1350
- Added support for
hasValue
expression withscope
by @BernieWhite. #1382 - Return target object scope as an array by @BernieWhite. #1383
- Improve support of string comparisons to support an array of strings by @BernieWhite. #1384
- Added help properties to rules from YAML/ JSON resources by @BernieWhite. #1386
- Engineering:
- Bug fixes:
- Fixed exception with comments in JSON baselines by @BernieWhite. #1336
- Fixed handling of constrained language mode with PowerShell 7.3 by @BernieWhite. #1348
- Fixed exception calling
RuleSource
value cannot be null by @BernieWhite. #1343 - Fixed null reference for link property by @BernieWhite. #1393
- Fixed reason are emitted for pre-condition sub-selectors by @BernieWhite. #1394
- Fixed CLI failed to load required assemblies by @BernieWhite. #1361
- Fixed CLI ignores modules specified in
Include.Modules
by @BernieWhite. #1362 - Fixed job summary directory creation by @BernieWhite. #1353
- Fixed same key for ref and name by @BernieWhite #1354
- Fixed object path fails to iterate JSON object with wildcard selector by @BernieWhite. #1376
- Fixed rule annotations are not included from YAML/ JSON definition by @BernieWhite. #1378
- Fixed loop stuck parsing JSON
allOf
not
rule condition by @BernieWhite. #1370 - Fixed handling of uint64 with
LessOrEqual
assertion method by @BernieWhite. #1366
What's changed since pre-release v2.7.0-B0126:
- No additional changes.
v2.7.0-B0126 (pre-release)#
What's changed since pre-release v2.7.0-B0097:
- Bug fixes:
v2.7.0-B0097 (pre-release)#
What's changed since pre-release v2.7.0-B0070:
- General improvements:
- Added support for
hasValue
expression withscope
by @BernieWhite. #1382 - Return target object scope as an array by @BernieWhite. #1383
- Improve support of string comparisons to support an array of strings by @BernieWhite. #1384
- Added help properties to rules from YAML/ JSON resources by @BernieWhite. #1386
- Added support for
- Engineering:
v2.7.0-B0070 (pre-release)#
What's changed since pre-release v2.7.0-B0049:
- Bug fixes:
v2.7.0-B0049 (pre-release)#
What's changed since pre-release v2.7.0-B0031:
- Bug fixes:
v2.7.0-B0031 (pre-release)#
What's changed since pre-release v2.7.0-B0016:
- New features:
- Bug fixes:
v2.7.0-B0016 (pre-release)#
What's changed since pre-release v2.7.0-B0006:
- Bug fixes:
v2.7.0-B0006 (pre-release)#
What's changed since pre-release v2.7.0-B0001:
- General improvements:
- Added support target scope by @BernieWhite. #1350
- Bug fixes:
v2.7.0-B0001 (pre-release)#
What's changed since v2.6.0:
- Bug fixes:
- Fixed exception calling
RuleSource
value cannot be null by @BernieWhite. #1343
- Fixed exception calling
v2.6.0#
What's changed since v2.5.3:
- New features:
- Added support for generating job summaries by @BernieWhite.
#1264
- Job summaries provide a markdown output for pipelines in addition to other supported output formats.
- To use, configure the
Output.JobSummaryPath
option.
- Added support for time bound suppression groups by @BernieWhite.
#1335
- Suppression groups can be configured to expire after a specified time by setting the
spec.expiresOn
property. - When a suppression group expires, the suppression group will generate a warning by default.
- Configure the
Execution.SuppressionGroupExpired
option to ignore or error on expired suppression groups.
- Suppression groups can be configured to expire after a specified time by setting the
- Added support for generating job summaries by @BernieWhite.
#1264
- Engineering:
What's changed since pre-release v2.6.0-B0034:
- No additional changes.
v2.6.0-B0034 (pre-release)#
What's changed since pre-release v2.6.0-B0013:
- New features:
- Added support for generating job summaries by @BernieWhite.
#1264
- Job summaries provide a markdown output for pipelines in addition to other supported output formats.
- To use, configure the
Output.JobSummaryPath
option.
- Added support for time bound suppression groups by @BernieWhite.
#1335
- Suppression groups can be configured to expire after a specified time by setting the
spec.expiresOn
property. - When a suppression group expires, the suppression group will generate a warning by default.
- Configure the
Execution.SuppressionGroupExpired
option to ignore or error on expired suppression groups.
- Suppression groups can be configured to expire after a specified time by setting the
- Added support for generating job summaries by @BernieWhite.
#1264
- Engineering:
- Bump Microsoft.NET.Test.Sdk to v17.4.0. #1331
v2.6.0-B0013 (pre-release)#
What's changed since v2.5.3:
- Engineering:
v2.5.3#
What's changed since v2.5.2:
- Bug fixes:
- Fixed incorrect XML header for encoding by @BernieWhite. #1322
v2.5.2#
What's changed since v2.5.1:
- Bug fixes:
- Fixed NUnit output does not escape characters in all result properties by @BernieWhite. #1316
v2.5.1#
What's changed since v2.5.0:
- Bug fixes:
- Fixed
In
with array source object and dot object path by @BernieWhite. #1314
- Fixed
v2.5.0#
What's changed since v2.4.2:
- New features:
- Experimental: Added support for only processing changed files by @BernieWhite.
#688
- To ignore unchanged files, set the
Input.IgnoreUnchangedPath
option totrue
. - See creating your pipeline for more information.
- To ignore unchanged files, set the
- Experimental: Added support for only processing changed files by @BernieWhite.
#688
- General improvements:
- Added labels metadata from grouping and filtering rules by @BernieWhite.
#1272
- Labels are metadata that extends on tags to provide a more structured way to group rules.
- Rules can be classified by setting the
metadata.labels
property or-Labels
parameter.
- Provide unblock for command line tools by @BernieWhite. #1261
- Added labels metadata from grouping and filtering rules by @BernieWhite.
#1272
- Engineering:
- Bump Microsoft.NET.Test.Sdk to v17.3.1. #1248
- Bug fixes:
What's changed since pre-release v2.5.0-B0080:
- No additional changes.
v2.5.0-B0080 (pre-release)#
What's changed since pre-release v2.5.0-B0045:
- Bug fixes:
- Fixed exception with
PathExpressionBuilder.GetAllRecurse
by @BernieWhite. #1301
- Fixed exception with
v2.5.0-B0045 (pre-release)#
What's changed since pre-release v2.5.0-B0015:
- New features:
- Experimental: Added support for only processing changed files by @BernieWhite.
#688
- To ignore unchanged files, set the
Input.IgnoreUnchangedPath
option totrue
. - See creating your pipeline for more information.
- To ignore unchanged files, set the
- Experimental: Added support for only processing changed files by @BernieWhite.
#688
- General improvements:
- Added labels metadata from grouping and filtering rules by @BernieWhite.
#1272
- Labels are metadata that extends on tags to provide a more structured way to group rules.
- Rules can be classified by setting the
metadata.labels
property or-Labels
parameter.
- Added labels metadata from grouping and filtering rules by @BernieWhite.
#1272
- Bug fixes:
v2.5.0-B0015 (pre-release)#
What's changed since pre-release v2.5.0-B0004:
- General improvements:
- Provide unblock for command line tools by @BernieWhite. #1261
v2.5.0-B0004 (pre-release)#
What's changed since v2.4.0:
- Engineering:
- Bump Microsoft.NET.Test.Sdk to v17.3.1. #1248
- Bug fixes:
v2.4.2#
What's changed since v2.4.1:
- Bug fixes:
- Fixed exception with
PathExpressionBuilder.GetAllRecurse
by @BernieWhite. #1301
- Fixed exception with
v2.4.1#
What's changed since v2.4.0:
- Bug fixes:
v2.4.0#
What's changed since v2.3.2:
- New features:
- Experimental: Added support for functions within YAML and JSON expressions by @BernieWhite.
#1227
#1016
- Added conversion functions
boolean
,string
, andinteger
. - Added lookup functions
configuration
, andpath
. - Added string functions
concat
,substring
. - See functions for more information.
- Added conversion functions
- Experimental: Added support for sub-selector YAML and JSON expressions by @BernieWhite.
#1024
#1045
- Sub-selector pre-conditions add an additional expression to determine if a rule is executed.
- Sub-selector object filters provide an way to filter items from list properties.
- See sub-selectors for more information.
- Experimental: Added support for functions within YAML and JSON expressions by @BernieWhite.
#1227
#1016
- Engineering:
- Improvements to PSRule engine API documentation by @BernieWhite. #1186
- Updates to PSRule engine API by @BernieWhite.
#1152
- Added tool support for baselines parameter.
- Added module path discovery.
- Added output for verbose and debug messages.
- Bump support projects to .NET 6 by @BernieWhite. #1209
- Bump Microsoft.NET.Test.Sdk to v17.3.0. #1213
- Bump BenchmarkDotNet to v0.13.2. #1241
- Bump BenchmarkDotNet.Diagnostics.Windows to v0.13.2. #1242
- Bug fixes:
- Fixed reporting of duplicate identifiers which were not generating an error for all cases by @BernieWhite.
#1229
- Added
Execution.DuplicateResourceId
option to configure PSRule behaviour. - By default, duplicate resource identifiers return an error.
- Added
- Fixed exception on JSON baseline without a synopsis by @BernieWhite. #1230
- Fixed repository information not in output by @BernieWhite. #1219
- Fixed reporting of duplicate identifiers which were not generating an error for all cases by @BernieWhite.
#1229
What's changed since pre-release v2.4.0-B0091:
- No additional changes.
v2.4.0-B0091 (pre-release)#
What's changed since pre-release v2.4.0-B0063:
- Engineering:
v2.4.0-B0063 (pre-release)#
What's changed since pre-release v2.4.0-B0039:
- New features:
- Experimental: Added support for sub-selector YAML and JSON expressions by @BernieWhite.
#1024
#1045
- Sub-selector pre-conditions add an additional expression to determine if a rule is executed.
- Sub-selector object filters provide an way to filter items from list properties.
- See sub-selectors for more information.
- Experimental: Added support for sub-selector YAML and JSON expressions by @BernieWhite.
#1024
#1045
- Engineering:
- Improvements to PSRule engine API documentation by @BernieWhite. #1186
v2.4.0-B0039 (pre-release)#
What's changed since pre-release v2.4.0-B0022:
- New features:
- Bug fixes:
- Fixed reporting of duplicate identifiers which were not generating an error for all cases by @BernieWhite.
#1229
- Added
Execution.DuplicateResourceId
option to configure PSRule behaviour. - By default, duplicate resource identifiers return an error.
- Added
- Fixed exception on JSON baseline without a synopsis by @BernieWhite. #1230
- Fixed reporting of duplicate identifiers which were not generating an error for all cases by @BernieWhite.
#1229
v2.4.0-B0022 (pre-release)#
What's changed since pre-release v2.4.0-B0009:
- Engineering:
- Updates to PSRule engine API by @BernieWhite.
#1152
- Added tool support for baselines parameter.
- Added module path discovery.
- Added output for verbose and debug messages.
- Updates to PSRule engine API by @BernieWhite.
#1152
v2.4.0-B0009 (pre-release)#
What's changed since v2.3.2:
- Engineering:
- Bug fixes:
- Fixed repository information not in output by @BernieWhite. #1219
v2.3.2#
What's changed since v2.3.1:
- Bug fixes:
- Fixes lost scope for rules by @BernieWhite. #1214
v2.3.1#
What's changed since v2.3.0:
- Bug fixes:
- Fixed object path join handling of self path identifier by @BernieWhite. #1204
v2.3.0#
What's changed since v2.2.0:
- General improvements:
- Added
PathPrefix
method to add an object path prefix to assertion reasons by @BernieWhite. #1198 - Added support for binding with JSON objects by @BernieWhite. #1182
- Added support for full path from JSON objects by @BernieWhite. #1174
- Improved reporting of full object path from pre-processed results by @BernieWhite. #1169
- Added PSRule for Azure expansion configuration to options schema by @BernieWhite. #1149
- Added
- Engineering:
- Bump xunit to v2.4.2. #1200
- Expose online link extension method by @BernieWhite. #1195
- Added comment documentation to .NET classes and interfaces by @BernieWhite. #1186
- Added publishing support for NuGet symbol packages @BernieWhite. #1173
- Updated outcome option docs by @BernieWhite. #1166
- Bump Sarif.Sdk to v2.4.16. #1177
- Refactoring and updates to interfaces to allow use outside of PowerShell by @BernieWhite. #1152
- Bug fixes:
- Fixes JSON parsing of string array for single objects by @BernieWhite. #1193
- Fixed handling for JSON objects in rules by @BernieWhite. #1187
- Fixed null object reference for object equity comparison by @BernieWhite. #1157
- Fixed expression evaluation not logging debug output when using the
-Debug
switch by @BernieWhite. #1158 - Fixed startIndex cannot be larger than length of string by @BernieWhite. #1160
- Fixed path within SDK package causes
psd1
to compile by @BernieWhite. #1146
What's changed since pre-release v2.3.0-B0163:
- No additional changes.
v2.3.0-B0163 (pre-release)#
What's changed since pre-release v2.3.0-B0130:
- General improvements:
- Added
PathPrefix
method to add an object path prefix to assertion reasons by @BernieWhite. #1198
- Added
- Engineering:
- Bump xunit to v2.4.2. #1200
v2.3.0-B0130 (pre-release)#
What's changed since pre-release v2.3.0-B0100:
- Engineering:
- Expose online link extension method by @BernieWhite. #1195
- Bug fixes:
- Fixes JSON parsing of string array for single objects by @BernieWhite. #1193
v2.3.0-B0100 (pre-release)#
What's changed since pre-release v2.3.0-B0074:
- Engineering:
- Added comment documentation to .NET classes and interfaces by @BernieWhite. #1186
- Bug fixes:
- Fixed handling for JSON objects in rules by @BernieWhite. #1187
v2.3.0-B0074 (pre-release)#
What's changed since pre-release v2.3.0-B0051:
- General improvements:
- Added support for binding with JSON objects by @BernieWhite. #1182
v2.3.0-B0051 (pre-release)#
What's changed since pre-release v2.3.0-B0030:
- General improvements:
- Added support for full path from JSON objects by @BernieWhite. #1174
- Engineering:
v2.3.0-B0030 (pre-release)#
What's changed since pre-release v2.3.0-B0015:
- General improvements:
- Improved reporting of full object path from pre-processed results by @BernieWhite. #1169
v2.3.0-B0015 (pre-release)#
What's changed since pre-release v2.3.0-B0006:
- Bug fixes:
v2.3.0-B0006 (pre-release)#
What's changed since pre-release v2.3.0-B0001:
- General improvements:
- Added PSRule for Azure expansion configuration to options schema by @BernieWhite. #1149
- Engineering:
- Refactoring and updates to interfaces to allow use outside of PowerShell by @BernieWhite. #1152
v2.3.0-B0001 (pre-release)#
What's changed since v2.2.0:
- Bug fixes:
- Fixed path within SDK package causes
psd1
to compile by @BernieWhite. #1146
- Fixed path within SDK package causes
v2.2.0#
What's changed since v2.1.0:
- New features:
- Added
notCount
expression and assertion helper by @ArmaanMcleod. #1091
- Added
- General improvements:
- Improved reporting of the object path that caused rule failures by @BernieWhite.
#1092
- Output include a new
Detail
property with details of the reason and the object path. - Custom methods
ReasonFrom
andReasonIf
accept apath
parameter to specify the object path.
- Output include a new
- Added informational message when output has been written to disk by @BernieWhite.
#1074
- The
Output.Footer
option now supportsOutputFile
which reports the output file path. This is enabled by default.
- The
- Added descendant selector to object path syntax by @BernieWhite.
#1133
- Use
..
to traverse into child objects, for example$..name
finds names for all nested objects.
- Use
- Improved reporting of the object path that caused rule failures by @BernieWhite.
#1092
- Engineering:
- Bump Newtonsoft.Json to 13.0.1. #1137
- Added more object path tests by @ArmaanMcleod. #1110
- Bump xunit.runner.visualstudio to 2.4.5. #1084
- Bump Pester to 5.3.3. #1079
- Bump Microsoft.NET.Test.Sdk to 17.2.0. #1089
- Added NuGet packaging publishing by @BernieWhite. #1093
- Updated NuGet packaging metadata by @BernieWhite. #1093
- Bug fixes:
- Fixed output of reason with wide format by @BernieWhite. #1117
- Fixed piped input does not respect excluded paths by @BernieWhite.
#1114
- By default, objects are not excluded by source.
- To exclude piped input based on source configure the
Input.IgnoreObjectSource
option.
- Fixed issue building a PSRule project by removing PSRule.psd1 from compile target by @BernieWhite. #1140
- Fixed grouping of logical operators in object path by @BernieWhite. #1101
What's changed since pre-release v2.2.0-B0175:
- No additional changes.
v2.2.0-B0175 (pre-release)#
What's changed since pre-release v2.2.0-B0131:
- Bug fixes:
- Fixed issue building a PSRule project by removing PSRule.psd1 from compile target by @BernieWhite. #1140
v2.2.0-B0131 (pre-release)#
What's changed since pre-release v2.2.0-B0089:
- General improvements:
- Added descendant selector to object path syntax by @BernieWhite.
#1133
- Use
..
to traverse into child objects, for example$..name
finds names for all nested objects.
- Use
- Added descendant selector to object path syntax by @BernieWhite.
#1133
- Engineering:
- Bump Newtonsoft.Json to 13.0.1. #1137
v2.2.0-B0089 (pre-release)#
What's changed since pre-release v2.2.0-B0052:
- General improvements:
- Improved reporting of the object path that caused rule failures by @BernieWhite.
#1092
- Output include a new
Detail
property with details of the reason and the object path. - Custom methods
ReasonFrom
andReasonIf
accept apath
parameter to specify the object path.
- Output include a new
- Improved reporting of the object path that caused rule failures by @BernieWhite.
#1092
v2.2.0-B0052 (pre-release)#
What's changed since pre-release v2.2.0-B0021:
- General improvements:
- Added informational message when output has been written to disk by @BernieWhite.
#1074
- The
Output.Footer
option now supportsOutputFile
which reports the output file path. This is enabled by default.
- The
- Added informational message when output has been written to disk by @BernieWhite.
#1074
- Engineering:
- Added more object path tests by @ArmaanMcleod. #1110
- Bug fixes:
v2.2.0-B0021 (pre-release)#
What's changed since v2.1.0:
- New features:
- Added
notCount
expression and assertion helper by @ArmaanMcleod. #1091
- Added
- Engineering:
- Bug fixes:
- Fixed grouping of logical operators in object path by @BernieWhite. #1101
v2.1.0#
What's changed since v2.0.1:
- General improvements:
- Added
notStartsWith
,notEndsWith
, andnotContains
expressions and assertion helpers. #1047 - Added
like
,notLike
expressions and assertion helpers. #1048 - Added additional repository paths to ignore by default. #1043
- Added custom suppression message during PSRule runs. #1046
- When a rule is suppressed using a suppression group the synopsis is shown in the suppression warning.
- Configure the suppression group synopsis to display a custom message.
- Suppression groups synopsis can be localized using markdown documentation.
- Use markdown to set a culture specific synopsis.
- Custom suppression messages are not supported when suppressing individual rules using
ps-rule.yaml
. - See about_PSRule_SuppressionGroups for details.
- Added source support for string conditions. #1068
- Added
- Engineering:
- Bug fixes:
- Important change: Fixed source scope not updated in multi-module runs. #1053
- Several properties of rule and language block elements have been renamed to improve consistency.
- From v3 custom scripts may not work correctly until you update these names.
- For details on the updated property names see deprecations.
- Important change: Fixed source scope not updated in multi-module runs. #1053
What's changed since pre-release v2.1.0-B0069:
- No additional changes.
v2.1.0-B0069 (pre-release)#
What's changed since pre-release v2.1.0-B0040:
- General improvements:
- Engineering:
- Bump Sarif.Sdk to 2.4.15. #1075
v2.1.0-B0040 (pre-release)#
What's changed since pre-release v2.1.0-B0015:
- General improvements:
- Added custom suppression message during PSRule runs. #1046
- When a rule is suppressed using a suppression group the synopsis is shown in the suppression warning.
- Configure the suppression group synopsis to display a custom message.
- Suppression groups synopsis can be localized using markdown documentation.
- Use markdown to set a culture specific synopsis.
- Custom suppression messages are not supported when suppressing individual rules using
ps-rule.yaml
. - See about_PSRule_SuppressionGroups for details.
- Added source support for string conditions. #1068
- Added custom suppression message during PSRule runs. #1046
- Engineering:
- Bug fixes:
- Important change: Fixed source scope not updated in multi-module runs. #1053
- Several properties of rule and language block elements have been renamed to improve consistency.
- From v3 custom scripts may not work correctly until you update these names.
- For details on the updated property names see deprecations.
- Important change: Fixed source scope not updated in multi-module runs. #1053
v2.1.0-B0015 (pre-release)#
What's changed since v2.0.1:
v2.0.1#
What's changed since v2.0.0:
- Bug fixes:
v2.0.0#
What's changed since v1.11.1:
- New features:
- Add support for suppression groups. #793
- New
SuppressionGroup
resource has been included. - See about_PSRule_SuppressionGroups for details.
- New
- Added source expression property. #933
- Included the following expressions:
source
withinPath
notWithinPath
- Included the following expressions:
- Added support for rule severity level. #880
- Rules can be configured to be
Error
,Warning
, orInformation
. - Failing rules with the
Error
severity level will cause the pipeline to fail. - Rules with the
Warning
severity level will be reported as warnings. - Rules with the
Information
severity level will be reported as informational messages. - By default, the severity level for a rule is
Error
.
- Rules can be configured to be
- Added expression support for type based assertions. #908
- Included the following expressions:
IsArray
IsBoolean
IsDateTime
IsInteger
IsNumeric
- Included the following expressions:
- Added support for formatting results as SARIF. #878
- Set
Output.Format
toSarif
to output results in the SARIF format. - See about_PSRule_Options for details.
- Set
- Add support for suppression groups. #793
- General improvements:
- Add option to disable invariant culture warning. #899
- Added
Execution.InvariantCultureWarning
option. - See about_PSRule_Options for details.
- Added
- Added support for object path expressions. #808 #693
- Inspired by JSONPath, object path expressions can be used to access nested objects.
- Array members can be filtered and enumerated using object path expressions.
- Object path expressions can be used in YAML, JSON, and PowerShell rules and selectors.
- See about_PSRule_Assert for details.
- Improve tracking of suppressed objects. #794
- Added
Execution.SuppressedRuleWarning
option to output warning for suppressed rules.
- Added
- Added support for rule aliases. #792
- Aliases allow rules to be references by an alternative name.
- When renaming rules, add a rule alias to avoid breaking references to the old rule name.
- To specify an alias use the
-Alias
parameter oralias
metadata property in YAML or JSON.
- Added support for stable identifiers with rule refs. #881
- A rule ref may be optionally be used to reference a rule.
- Rule refs should be: stable, not changing between releases; opaque, as opposed to being a human-readable string. Stable and opaque refs ease web lookup and to help to avoid language difficulties.
- To specify a rule ref use the
-Ref
parameter orref
metadata property in YAML or JSON.
- Added new properties for module lookup to SARIF results. #951
- Capture and output repository info in Assert-PSRule runs. #978
- Added
Repository.Url
option set repository URL reported in output. - Repository URL is detected automatically for GitHub Actions and Azure Pipelines.
- Added
RepositoryInfo
toOutput.Banner
option. - Repository info is shown by default.
- Added
- Added
convert
andcaseSensitive
to string comparison expressions. #1001- The following expressions support type conversion and case-sensitive comparison.
startsWith
,contains
, andendsWith
.equals
andnotEquals
.
- The following expressions support type conversion and case-sensitive comparison.
- Added
convert
to numeric comparison expressions. #943- Type conversion is now supported for
less
,lessOrEquals
,greater
, andgreaterOrEquals
.
- Type conversion is now supported for
- Added
Extent
property on rules reported byGet-PSRule
. #990- Extent provides the line and position of the rule in the source code.
- Breaking change: Added validation of resource names. #1012
- Invalid rules names will now produce a specific error.
- See upgrade notes for more information.
- Add option to disable invariant culture warning. #899
- Engineering:
- Breaking change: Removal of deprecated default baseline from module manifest. #755
- Set the default module baseline using module configuration.
- See upgrade notes for details.
- Breaking change: Require
apiVersion
on YAML and JSON to be specified. #648- Resources should use
github.com/microsoft/PSRule/v1
as theapiVersion
. - Resources that do not specify an
apiVersion
will be ignored. - See upgrade notes for details.
- Resources should use
- Breaking change: Prefer module sources over loose files. #610
- Module sources are discovered before loose files.
- Warning is shown for duplicate rule names, and exception is thrown for duplicate rule Ids.
- See upgrade notes for details.
- Breaking change: Require rule sources from current working directory to be explicitly included. #760
- From v2 onwards,
$PWD
is not included by default unless-Path .
or-Path $PWD
is explicitly specified. - See upgrade notes for details.
- From v2 onwards,
- Added more tests for JSON resources. #929
- Bump Sarif.Sdk to 2.4.13. #1007
- Bump PowerShellStandard.Library to 5.1.1. #999
- Breaking change: Removal of deprecated default baseline from module manifest. #755
- Bug fixes:
- Fixed object path handling with dash. #902
- Fixed empty suppression group rules property applies to no rules. #931
- Fixed object reference for suppression group will rule not defined. #932
- Fixed rule source loading twice from
$PWD
and.ps-rule/
. #939 - Fixed rule references in SARIF format for extensions need a toolComponent reference. #949
- Fixed file objects processed with file input format have no source location. #950
- Fixed GitHub code scanning alerts treats pass as problems. #955
- By default, SARIF output will only include fail or error outcomes.
- Added
Output.SarifProblemsOnly
option to include pass outcomes.
- Fixed SARIF output includes rule property for default tool component. #956
- Fixed Invoke-PSRule hanging if JSON rule file is empty. #969
- Fixed SARIF should report base branch. #964
- Fixed unclear error message on invalid rule names. #1012
What's changed since pre-release v2.0.0-B2203045:
- No additional changes.
v2.0.0-B2203045 (pre-release)#
What's changed since pre-release v2.0.0-B2203033:
- General improvements:
- Added
convert
to numeric comparison expressions. #943- Type conversion is now supported for
less
,lessOrEquals
,greater
, andgreaterOrEquals
.
- Type conversion is now supported for
- Breaking change: Added validation of resource names. #1012
- Invalid rules names will now produce a specific error.
- See upgrade notes for more information.
- Added
- Bug fixes:
- Fixed unclear error message on invalid rule names. #1012
v2.0.0-B2203033 (pre-release)#
What's changed since pre-release v2.0.0-B2203019:
- General improvements:
- Added
Extent
property on rules reported byGet-PSRule
. #990- Extent provides the line and position of the rule in the source code.
- Added
- Engineering:
v2.0.0-B2203019 (pre-release)#
What's changed since pre-release v2.0.0-B2202072:
- General improvements:
- Added
convert
andcaseSensitive
to string comparison expressions. #1001- The following expressions support type conversion and case-sensitive comparison.
startsWith
,contains
, andendsWith
.equals
andnotEquals
.
- The following expressions support type conversion and case-sensitive comparison.
- Added
v2.0.0-B2202072 (pre-release)#
What's changed since pre-release v2.0.0-B2202065:
- General improvements:
- Capture and output repository info in Assert-PSRule runs. #978
- Added
Repository.Url
option set repository URL reported in output. - Repository URL is detected automatically for GitHub Actions and Azure Pipelines.
- Added
RepositoryInfo
toOutput.Banner
option. - Repository info is shown by default.
- Added
- Capture and output repository info in Assert-PSRule runs. #978
- Bug fixes:
- Fixed SARIF should report base branch. #964
v2.0.0-B2202065 (pre-release)#
What's changed since pre-release v2.0.0-B2202056:
- Bug fixes:
- Fixed broken documentation links. #980
v2.0.0-B2202056 (pre-release)#
What's changed since pre-release v2.0.0-B2202024:
- Bug fixes:
- Fixed Invoke-PSRule hanging if JSON rule file is empty. #969
v2.0.0-B2202024 (pre-release)#
What's changed since pre-release v2.0.0-B2202017:
- New features:
- Added source expression property. #933
- Included the following expressions:
source
withinPath
notWithinPath
- Included the following expressions:
- Added source expression property. #933
v2.0.0-B2202017 (pre-release)#
What's changed since pre-release v2.0.0-B2202006:
- Bug fixes:
v2.0.0-B2202006 (pre-release)#
What's changed since pre-release v2.0.0-B2201161:
- General improvements:
- Added new properties for module lookup to SARIF results. #951
- Bug fixes:
v2.0.0-B2201161 (pre-release)#
What's changed since pre-release v2.0.0-B2201146:
- New features:
- Added support for rule severity level. #880
- Rules can be configured to be
Error
,Warning
, orInformation
. - Failing rules with the
Error
severity level will cause the pipeline to fail. - Rules with the
Warning
severity level will be reported as warnings. - Rules with the
Information
severity level will be reported as informational messages. - By default, the severity level for a rule is
Error
.
- Rules can be configured to be
- Added expression support for type based assertions. #908
- Included the following expressions:
IsArray
IsBoolean
IsDateTime
IsInteger
IsNumeric
- Included the following expressions:
- Added support for formatting results as SARIF. #878
- Set
Output.Format
toSarif
to output results in the SARIF format. - See about_PSRule_Options for details.
- Set
- Added support for rule severity level. #880
v2.0.0-B2201146 (pre-release)#
What's changed since pre-release v2.0.0-B2201135:
- Engineering:
- Breaking change: Require rule sources from current working directory to be explicitly included. #760
- From v2 onwards,
$PWD
is not included by default unless-Path .
or-Path $PWD
is explicitly specified. - See upgrade notes for details.
- From v2 onwards,
- Breaking change: Require rule sources from current working directory to be explicitly included. #760
- Bug fixes:
- Fixed rule source loading twice from
$PWD
and.ps-rule/
. #939
- Fixed rule source loading twice from
v2.0.0-B2201135 (pre-release)#
What's changed since pre-release v2.0.0-B2201117:
- Engineering:
- Breaking change: Prefer module sources over loose files. #610
- Module sources are discovered before loose files.
- Warning is shown for duplicate rule names, and exception is thrown for duplicate rule Ids.
- See upgrade notes for details.
- Added more tests for JSON resources. #929
- Breaking change: Prefer module sources over loose files. #610
- Bug fixes:
v2.0.0-B2201117 (pre-release)#
What's changed since pre-release v2.0.0-B2201093:
- General improvements:
- Add option to disable invariant culture warning. #899
- Added
Execution.InvariantCultureWarning
option. - See about_PSRule_Options for details.
- Added
- Add option to disable invariant culture warning. #899
v2.0.0-B2201093 (pre-release)#
What's changed since pre-release v2.0.0-B2201075:
- New features:
- Add support for suppression groups. #793
- New
SuppressionGroup
resource has been included. - See about_PSRule_SuppressionGroups for details.
- New
- Add support for suppression groups. #793
v2.0.0-B2201075 (pre-release)#
What's changed since pre-release v2.0.0-B2201054:
- General improvements:
- Added support for rule aliases. #792
- Aliases allow rules to be references by an alternative name.
- When renaming rules, add a rule alias to avoid breaking references to the old rule name.
- To specify an alias use the
-Alias
parameter oralias
metadata property in YAML or JSON.
- Added support for stable identifiers with rule refs. #881
- A rule ref may be optionally be used to reference a rule.
- Rule refs should be: stable, not changing between releases; opaque, as opposed to being a human-readable string. Stable and opaque refs ease web lookup and to help to avoid language difficulties.
- To specify a rule ref use the
-Ref
parameter orref
metadata property in YAML or JSON.
- Added support for rule aliases. #792
- Bug fixes:
- Fixed object path handling with dash. #902
v2.0.0-B2201054 (pre-release)#
What's changed since v1.11.0:
- General improvements:
- Added support for object path expressions. #808 #693
- Inspired by JSONPath, object path expressions can be used to access nested objects.
- Array members can be filtered and enumerated using object path expressions.
- Object path expressions can be used in YAML, JSON, and PowerShell rules and selectors.
- See about_PSRule_Assert for details.
- Improve tracking of suppressed objects. #794
- Added
Execution.SuppressedRuleWarning
option to output warning for suppressed rules.
- Added
- Added support for object path expressions. #808 #693
- Engineering:
- Breaking change: Removal of deprecated default baseline from module manifest. #755
- Set the default module baseline using module configuration.
- See upgrade notes for details.
- Breaking change: Require
apiVersion
on YAML and JSON to be specified. #648- Resources should use
github.com/microsoft/PSRule/v1
as theapiVersion
. - Resources that do not specify an
apiVersion
will be ignored. - See upgrade notes for details.
- Resources should use
- Breaking change: Removal of deprecated default baseline from module manifest. #755