Skip to content

Commit 5b9d420

Browse files
authored
Merge pull request #1079 from Gijsreyn/allow-parameters-secret
Allow parameters to use secret() function
2 parents f51883a + 5e341bb commit 5b9d420

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

dsc/tests/dsc_extension_secret.tests.ps1

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,4 +131,40 @@ Describe 'Tests for the secret() function and extensions' {
131131
$errorMessage = Get-Content -Raw -Path $TestDrive/error.log
132132
$errorMessage | Should -Match "Extension 'Test/Secret2' returned multiple lines which is not supported for secrets"
133133
}
134+
135+
It 'Allows to pass in secret() through parameters' {
136+
$configYaml = @'
137+
$schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json
138+
parameters:
139+
myString:
140+
type: secureString
141+
defaultValue: "[secret('MySecret')]"
142+
resources:
143+
- name: Database Connection
144+
type: Microsoft.DSC.Debug/Echo
145+
properties:
146+
output: "[parameters('myString')]"
147+
'@
148+
$out = dsc -l trace config get -i $configYaml 2> $TestDrive/error.log | ConvertFrom-Json
149+
$LASTEXITCODE | Should -Be 0
150+
$out.results.Count | Should -Be 1
151+
$out.results[0].result.actualState.Output | Should -BeExactly 'Hello'
152+
}
153+
154+
It 'Allows to pass in secret() through variables' {
155+
$configYaml = @'
156+
$schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json
157+
variables:
158+
myString: "[secret('MySecret')]"
159+
resources:
160+
- name: Database Connection
161+
type: Microsoft.DSC.Debug/Echo
162+
properties:
163+
output: "[variables('myString')]"
164+
'@
165+
$out = dsc -l trace config get -i $configYaml 2> $TestDrive/error.log | ConvertFrom-Json
166+
$LASTEXITCODE | Should -Be 0
167+
$out.results.Count | Should -Be 1
168+
$out.results[0].result.actualState.Output | Should -BeExactly 'Hello'
169+
}
134170
}

dsc_lib/src/configure/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -699,9 +699,10 @@ impl Configurator {
699699
/// This function will return an error if the parameters are invalid.
700700
pub fn set_context(&mut self, parameters_input: Option<&Value>) -> Result<(), DscError> {
701701
let config = serde_json::from_str::<Configuration>(self.json.as_str())?;
702+
703+
self.context.extensions = self.discovery.extensions.values().cloned().collect();
702704
self.set_parameters(parameters_input, &config)?;
703705
self.set_variables(&config)?;
704-
self.context.extensions = self.discovery.extensions.values().cloned().collect();
705706
Ok(())
706707
}
707708

0 commit comments

Comments
 (0)