Enhance configuration data validation and add new utility functions

- Added validation for empty values in Assert-ConfigurationDataParameter.
- Introduced Assert-ConfigurationDataSecretReference for secret reference validation.
- Implemented Test-ConfigurationDataExpressionParentheses to validate expression syntax.
- Added Test-ConfigurationDataMissingReferenceError to check for missing parameter or variable definitions.
- Updated Invoke-ConfigurationDataExpression to handle new validation logic.
- Revised Readme.md to reflect changes in secret reference handling.
This commit is contained in:
Torsten Brendgen
2026-07-01 20:34:59 +02:00
parent 88b842c8e9
commit 1cd225c7a0
7 changed files with 145 additions and 2 deletions

View File

@@ -103,7 +103,9 @@ FarmPassphrase = @{
Required = $true
Sensitive = $true
Value = @{
SecretName = 'SharePointFarmPassphrase'
Provider = 'KeePass'
Vault = 'BGW'
Name = 'SharePoint/FarmPassphrase'
}
}
@@ -112,11 +114,21 @@ SetupCredential = @{
Required = $true
Sensitive = $true
Value = @{
CredentialName = 'SharePointSetup'
Provider = 'KeePass'
Vault = 'BGW'
Name = 'SharePoint/SetupAccount'
UserName = 'BGW\SVC_SHP_SETUP'
}
}
```
Secret references are validated by `Resolve-DSCConfigurationData`, but they are resolved by `Resolve-DSCConfigurationSecrets` before the normal data resolve step:
```powershell
$withSecrets = Resolve-DSCConfigurationSecrets -ConfigurationData $merged
$resolved = Resolve-DSCConfigurationData -ConfigurationData $withSecrets
```
Array values can be restricted item by item:
```powershell