35 lines
1.1 KiB
PowerShell
35 lines
1.1 KiB
PowerShell
|
|
@{
|
||
|
|
Severity = @('Error', 'Warning')
|
||
|
|
|
||
|
|
IncludeRules = @(
|
||
|
|
# Constitution Principle III: every state-changing function must support
|
||
|
|
# ShouldProcess, so -WhatIf reaches all of them.
|
||
|
|
'PSUseShouldProcessForStateChangingFunctions'
|
||
|
|
'PSShouldProcess'
|
||
|
|
|
||
|
|
# Principle V: no credential material in source.
|
||
|
|
'PSAvoidUsingPlainTextForPassword'
|
||
|
|
'PSAvoidUsingConvertToSecureStringWithPlainText'
|
||
|
|
'PSUsePSCredentialType'
|
||
|
|
|
||
|
|
# NFR-004 maintainability.
|
||
|
|
'PSUseApprovedVerbs'
|
||
|
|
'PSUseSingularNouns'
|
||
|
|
'PSAvoidUsingCmdletAliases'
|
||
|
|
'PSUseDeclaredVarsMoreThanAssignments'
|
||
|
|
'PSAvoidUsingPositionalParameters'
|
||
|
|
|
||
|
|
# NFR-008 portability: no Windows PowerShell-only constructs.
|
||
|
|
'PSUseCompatibleSyntax'
|
||
|
|
)
|
||
|
|
|
||
|
|
Rules = @{
|
||
|
|
PSUseCompatibleSyntax = @{
|
||
|
|
Enable = $true
|
||
|
|
# 7.2 is the floor because the Automation runtime version is unverified
|
||
|
|
# until Stage B (research.md V-5b).
|
||
|
|
TargetVersions = @('7.2')
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|