From 7e5209190ac2872c55dc9f9a2fdb736c0332bd65 Mon Sep 17 00:00:00 2001 From: GraceSolutions Date: Tue, 2 Jun 2026 20:33:12 -0400 Subject: [PATCH] Fix Infisical v4 query params, convert flags to switches, fix changelog regex - InfisicalSecretsClient: use projectId / includeImports (camelCase) per Infisical v4 OpenAPI - Get-InfisicalSecrets / Get-InfisicalSecret: change [bool] flag parameters to [switch] - DesignSpec.md: updated 14.3 / 14.4 examples to match new switch syntax - build.ps1: anchor Update-Changelog regex to the literal '## Unreleased' line and limit replacement to 1 to stop exponential duplication of carried-forward markers - Manifest bumped to 2026.06.03.0032 (commit c86676010532) --- CHANGELOG.md | 6 +++++ Module/PSInfisicalAPI/PSInfisicalAPI.psd1 | 4 +-- Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll | Bin 70656 -> 70656 bytes build.ps1 | 4 ++- docs/DesignSpec.md | 24 +++++++++--------- .../Cmdlets/GetInfisicalSecretCmdlet.cs | 12 ++++----- .../Cmdlets/GetInfisicalSecretsCmdlet.cs | 12 ++++----- .../Secrets/InfisicalSecretsClient.cs | 8 +++--- 8 files changed, 39 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index faaa5d4..31e359d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ## Unreleased +## 2026.06.03.0032 + +- Build produced from commit c86676010532. + +## Unreleased (carried forward) + ## 2026.06.02.1907 - Build produced from commit fa65c18bc171. diff --git a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 index 2b6215b..706ba22 100644 --- a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 +++ b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 @@ -1,6 +1,6 @@ @{ RootModule = 'PSInfisicalAPI.psm1' - ModuleVersion = '2026.06.02.1907' + ModuleVersion = '2026.06.03.0032' GUID = 'b8a2f3d4-7c51-4d2f-9e6a-1f0c8b3d4e51' Author = 'Grace Solutions' CompanyName = 'Grace Solutions' @@ -27,7 +27,7 @@ LicenseUri = 'https://www.gnu.org/licenses/agpl-3.0.html' ProjectUri = 'https://prod.git.gracesolution.info/gsadmin/PSInfisicalAPI' ReleaseNotes = 'See CHANGELOG.md in the project repository for release history.' - CommitHash = 'fa65c18bc171' + CommitHash = 'c86676010532' } } } \ No newline at end of file diff --git a/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll b/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll index 04b0b56b2e9741aa866d40ecb1ecbcfd5f06ef26..acef9b69d20ec9eed9854e6e99de127d116d2ff9 100644 GIT binary patch delta 14320 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 Xca=tm@_+4}9lk#$m4C&zR_gx`HyATm delta 14224 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 diff --git a/build.ps1 b/build.ps1 index 55575e4..ef7a856 100644 --- a/build.ps1 +++ b/build.ps1 @@ -133,7 +133,9 @@ function Update-Changelog { if ($existing -match [Regex]::Escape($marker)) { return } $insertion = "## $Version`r`n`r`n- Build produced from commit $CommitHash.`r`n`r`n" - $updated = $existing -replace '## Unreleased', "## Unreleased`r`n`r`n$insertion## Unreleased (carried forward)" + $unreleasedRegex = [regex]::new('(?m)^## Unreleased\r?$') + if (-not $unreleasedRegex.IsMatch($existing)) { return } + $updated = $unreleasedRegex.Replace($existing, "## Unreleased`r`n`r`n$insertion## Unreleased (carried forward)", 1) [System.IO.File]::WriteAllText($ChangelogFile.FullName, $updated, [System.Text.UTF8Encoding]::new($false)) } diff --git a/docs/DesignSpec.md b/docs/DesignSpec.md index 994d095..7cf3feb 100644 --- a/docs/DesignSpec.md +++ b/docs/DesignSpec.md @@ -954,10 +954,10 @@ Get-InfisicalSecrets ` [-Environment ] ` [-SecretPath ] ` [-Recursive] ` - [-IncludeImports ] ` + [-IncludeImports] ` [-IncludePersonalOverrides] ` - [-ExpandSecretReferences ] ` - [-ViewSecretValue ] ` + [-ExpandSecretReferences] ` + [-ViewSecretValue] ` [-MetadataFilter ] ` [-TagSlugs ] ``` @@ -969,9 +969,9 @@ ProjectId: Current connection ProjectId Environment: Current connection Environment SecretPath: Current connection DefaultSecretPath or / Recursive: false -IncludeImports: true -ExpandSecretReferences: true -ViewSecretValue: true +IncludeImports: false +ExpandSecretReferences: false +ViewSecretValue: false ``` ## Behavior @@ -1020,9 +1020,9 @@ Get-InfisicalSecret ` [-SecretPath ] ` [-Version ] ` [-Type ] ` - [-ViewSecretValue ] ` - [-ExpandSecretReferences ] ` - [-IncludeImports ] + [-ViewSecretValue] ` + [-ExpandSecretReferences] ` + [-IncludeImports] ``` ## Parameter Attributes @@ -1040,9 +1040,9 @@ ProjectId: Current connection ProjectId Environment: Current connection Environment SecretPath: Current connection DefaultSecretPath or / Type: Shared -ViewSecretValue: true -ExpandSecretReferences: true -IncludeImports: true +ViewSecretValue: false +ExpandSecretReferences: false +IncludeImports: false ``` ## Behavior diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalSecretCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalSecretCmdlet.cs index d15f6cc..6bb770a 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalSecretCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalSecretCmdlet.cs @@ -18,9 +18,9 @@ namespace PSInfisicalAPI.Cmdlets [Parameter] public string SecretPath { get; set; } [Parameter] public int? Version { get; set; } [Parameter] public InfisicalSecretType Type { get; set; } = InfisicalSecretType.Shared; - [Parameter] public bool ViewSecretValue { get; set; } = true; - [Parameter] public bool ExpandSecretReferences { get; set; } = true; - [Parameter] public bool IncludeImports { get; set; } = true; + [Parameter] public SwitchParameter ViewSecretValue { get; set; } + [Parameter] public SwitchParameter ExpandSecretReferences { get; set; } + [Parameter] public SwitchParameter IncludeImports { get; set; } protected override void ProcessRecord() { @@ -36,9 +36,9 @@ namespace PSInfisicalAPI.Cmdlets SecretPath = SecretPath, Version = Version, Type = Type.ToString(), - ViewSecretValue = ViewSecretValue, - ExpandSecretReferences = ExpandSecretReferences, - IncludeImports = IncludeImports + ViewSecretValue = ViewSecretValue.IsPresent, + ExpandSecretReferences = ExpandSecretReferences.IsPresent, + IncludeImports = IncludeImports.IsPresent }; InfisicalSecretsClient client = new InfisicalSecretsClient(HttpClient, Logger); diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalSecretsCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalSecretsCmdlet.cs index eebd02f..9695aa1 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalSecretsCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalSecretsCmdlet.cs @@ -16,10 +16,10 @@ namespace PSInfisicalAPI.Cmdlets [Parameter] public string Environment { get; set; } [Parameter] public string SecretPath { get; set; } [Parameter] public SwitchParameter Recursive { get; set; } - [Parameter] public bool IncludeImports { get; set; } = true; + [Parameter] public SwitchParameter IncludeImports { get; set; } [Parameter] public SwitchParameter IncludePersonalOverrides { get; set; } - [Parameter] public bool ExpandSecretReferences { get; set; } = true; - [Parameter] public bool ViewSecretValue { get; set; } = true; + [Parameter] public SwitchParameter ExpandSecretReferences { get; set; } + [Parameter] public SwitchParameter ViewSecretValue { get; set; } [Parameter] public Hashtable MetadataFilter { get; set; } [Parameter] public string[] TagSlugs { get; set; } @@ -35,10 +35,10 @@ namespace PSInfisicalAPI.Cmdlets Environment = Environment, SecretPath = SecretPath, Recursive = Recursive.IsPresent, - IncludeImports = IncludeImports, + IncludeImports = IncludeImports.IsPresent, IncludePersonalOverrides = IncludePersonalOverrides.IsPresent, - ExpandSecretReferences = ExpandSecretReferences, - ViewSecretValue = ViewSecretValue, + ExpandSecretReferences = ExpandSecretReferences.IsPresent, + ViewSecretValue = ViewSecretValue.IsPresent, MetadataFilter = ToStringDictionary(MetadataFilter), TagSlugs = TagSlugs }; diff --git a/src/PSInfisicalAPI/Secrets/InfisicalSecretsClient.cs b/src/PSInfisicalAPI/Secrets/InfisicalSecretsClient.cs index 3a2468b..8013cc5 100644 --- a/src/PSInfisicalAPI/Secrets/InfisicalSecretsClient.cs +++ b/src/PSInfisicalAPI/Secrets/InfisicalSecretsClient.cs @@ -35,11 +35,11 @@ namespace PSInfisicalAPI.Secrets InfisicalEndpointDefinition definition = InfisicalEndpointRegistry.Get(InfisicalEndpointNames.ListSecrets); List> queryParameters = new List>(); - AddIfNotNull(queryParameters, "workspaceId", FirstNonEmpty(query.ProjectId, connection.ProjectId)); + AddIfNotNull(queryParameters, "projectId", FirstNonEmpty(query.ProjectId, connection.ProjectId)); AddIfNotNull(queryParameters, "environment", FirstNonEmpty(query.Environment, connection.Environment)); AddIfNotNull(queryParameters, "secretPath", FirstNonEmpty(query.SecretPath, connection.DefaultSecretPath, "/")); queryParameters.Add(new KeyValuePair("recursive", query.Recursive ? "true" : "false")); - if (query.IncludeImports.HasValue) { queryParameters.Add(new KeyValuePair("include_imports", query.IncludeImports.Value ? "true" : "false")); } + if (query.IncludeImports.HasValue) { queryParameters.Add(new KeyValuePair("includeImports", query.IncludeImports.Value ? "true" : "false")); } if (query.IncludePersonalOverrides) { queryParameters.Add(new KeyValuePair("includePersonalOverrides", "true")); } if (query.ExpandSecretReferences.HasValue) { queryParameters.Add(new KeyValuePair("expandSecretReferences", query.ExpandSecretReferences.Value ? "true" : "false")); } if (query.ViewSecretValue.HasValue) { queryParameters.Add(new KeyValuePair("viewSecretValue", query.ViewSecretValue.Value ? "true" : "false")); } @@ -93,14 +93,14 @@ namespace PSInfisicalAPI.Secrets Dictionary pathParameters = new Dictionary { { "secretName", query.SecretName } }; List> queryParameters = new List>(); - AddIfNotNull(queryParameters, "workspaceId", FirstNonEmpty(query.ProjectId, connection.ProjectId)); + AddIfNotNull(queryParameters, "projectId", FirstNonEmpty(query.ProjectId, connection.ProjectId)); AddIfNotNull(queryParameters, "environment", FirstNonEmpty(query.Environment, connection.Environment)); AddIfNotNull(queryParameters, "secretPath", FirstNonEmpty(query.SecretPath, connection.DefaultSecretPath, "/")); AddIfNotNull(queryParameters, "type", string.IsNullOrEmpty(query.Type) ? "shared" : query.Type.ToLowerInvariant()); if (query.Version.HasValue) { queryParameters.Add(new KeyValuePair("version", query.Version.Value.ToString(CultureInfo.InvariantCulture))); } if (query.ViewSecretValue.HasValue) { queryParameters.Add(new KeyValuePair("viewSecretValue", query.ViewSecretValue.Value ? "true" : "false")); } if (query.ExpandSecretReferences.HasValue) { queryParameters.Add(new KeyValuePair("expandSecretReferences", query.ExpandSecretReferences.Value ? "true" : "false")); } - if (query.IncludeImports.HasValue) { queryParameters.Add(new KeyValuePair("include_imports", query.IncludeImports.Value ? "true" : "false")); } + if (query.IncludeImports.HasValue) { queryParameters.Add(new KeyValuePair("includeImports", query.IncludeImports.Value ? "true" : "false")); } Uri uri = InfisicalUriBuilder.Build(connection.BaseUri, definition, pathParameters, queryParameters); InfisicalHttpResponse response = ExecuteAuthorized(connection, definition, "RetrieveSecret", uri, null);