2cbd5c2008
Normalizes Hashtable, OrderedDictionary, PSObject-wrapped, and typed generic dictionaries into IDictionary<string,string>[] before parameter binding, enabling native PowerShell @{...} and [ordered]@{...} literals against the strongly-typed -Secrets parameter on New-/Update-InfisicalSecret. Adds 8 transformation tests; 174/174 passing.
20 KiB
20 KiB
Changelog
All notable changes to this project will be documented in this file.
The format follows Keep a Changelog loosely, but version numbers use the build timestamp format yyyy.MM.dd.HHmm.
Unreleased
2026.06.04.0020
- Build produced from commit
211fbcf34d.
Unreleased (carried forward)
2026.06.04.0005
- Build produced from commit
e0a6ef02df.
Unreleased (carried forward)
- Bulk v4 batch routes: Endpoint registry now registers
POST|PATCH|DELETE /api/v4/secrets/batchas the preferred candidates forBulkCreateSecret/BulkUpdateSecret/BulkDeleteSecret; the existing v3 raw routes (/api/v3/secrets/batch/raw) remain as automatic fallback. Batch request DTOs serialize bothprojectId(required by v4) andworkspaceId(accepted by v3) when populated. - Strongly-typed bulk input:
-SecretsonNew-InfisicalSecretandUpdate-InfisicalSecretis nowIDictionary<string, string>[]instead ofHashtable[].InfisicalBulkSecretConverteracceptsIEnumerable<IDictionary<string, string>>and parsesTagIdsfrom a comma-separated string. NestedMetadata/SecretMetadatadictionaries are no longer accepted in the bulk hashtable surface (setSecretMetadataprogrammatically onInfisicalBulkCreateSecretItem/InfisicalBulkUpdateSecretItemif needed).
2026.06.03.2207
- Build produced from commit
09c3d5c68b. - M9  Bulk, Duplicate & Inheritance:
- Bulk parameter sets added to
New-InfisicalSecret,Update-InfisicalSecret, andRemove-InfisicalSecretaccepting-Secrets Hashtable[]; client methodsCreateBatch/UpdateBatch/DeleteBatchwrapPOST|PATCH|DELETE /api/v3/secrets/batch/raw. Copy-InfisicalSecretcmdlet added, wrappingPOST /api/v4/secrets/duplicatewith source/destination environment + path parameters and per-attribute copy toggles.- Connection inheritance centralized in
InfisicalCmdletBase(ResolveProjectId/ResolveEnvironment/ResolveSecretPath/ResolveApiVersion/ResolveOrganizationId). Explicit parameters always win; missing values fall back to the active connection and emit a-Verboseline. - Project/Environment/Folder/Tag and all secret cmdlets refactored to use the inheritance helpers; existing explicit-parameter behavior is preserved.
InfisicalBulkSecretConverteraccepts flexible key aliases (SecretName/Name/Key,SecretValue/Value,SecretComment/Comment,Metadata/SecretMetadata).- Test count: 161 (up from 139). Added coverage for bulk DTO shapes, the converter, the duplicate request DTO, registry entries for the four new endpoints, and the resolution helpers.
- Bulk parameter sets added to
Unreleased (carried forward)
2026.06.03.2206
- Build produced from commit
09c3d5c68b.
Unreleased (carried forward)
2026.06.03.2136
- Build produced from commit
d9822aab7a. - Resource CRUD expansion: Added full Get/New/Update/Remove cmdlet families for Projects, Environments, Folders, and Tags (20 new cmdlets):
- Projects:
Get-InfisicalProjects,Get-InfisicalProject,New-InfisicalProject,Update-InfisicalProject,Remove-InfisicalProject. - Environments:
Get-InfisicalEnvironments,Get-InfisicalEnvironment,New-InfisicalEnvironment,Update-InfisicalEnvironment,Remove-InfisicalEnvironment. - Folders:
Get-InfisicalFolders,Get-InfisicalFolder,New-InfisicalFolder,Update-InfisicalFolder,Remove-InfisicalFolder. - Tags:
Get-InfisicalTags,Get-InfisicalTag,New-InfisicalTag,Update-InfisicalTag,Remove-InfisicalTag.
- Projects:
- Secret mutation cmdlets: Added
New-InfisicalSecret,Update-InfisicalSecret, andRemove-InfisicalSecret; extendedInfisicalSecretsClientwith corresponding create/update/delete operations. - Additional auth providers:
Connect-Infisicalnow supports JWT (-Jwt -IdentityId), OIDC (-Jwt -IdentityId), LDAP (-Username -Password), Azure (-Jwt -IdentityId), and GCP IAM (-Jwt -IdentityId) via dedicated parameter sets. Common identity-login flow is centralized inIdentityLoginExecutor. - Endpoint registry expanded with login routes (
/api/v1/auth/{jwt|oidc|ldap|azure|gcp}-auth/login) and CRUD routes for projects (v2), environments, folders, tags, and secret mutations. - Test suite expanded to 139 passing tests, including mapper round-trips for projects/environments/folders/tags, secret mutation DTO shapes, and request-body validation for each new auth provider.
2026.06.03.0131
- Build produced from commit
7be0b7b420. - Behavior change:
Get-InfisicalSecretsandGet-InfisicalSecretnow default-ViewSecretValueto$true. Real secret values are returned by default. To request the redacted/hidden response, pass-ViewSecretValue:$false. InfisicalSecretMappernow treats the server-side<hidden-by-infisical>placeholder as a hidden marker rather than a value: whensecretValueHidden=true(or the placeholder string is detected)SecretValueis set tonullinstead of stuffing the literal into aSecureString. This prevents downstream consumers (auth, exports, dictionary conversion) from silently using<hidden-by-infisical>as if it were a real secret.
Unreleased (carried forward)
2026.06.03.0113
- Build produced from commit
09c577ebd0. - Added
InfisicalSecret.GetPlainTextValue()for direct plain-text access to secret material from PowerShell without needingMarshal.SecureStringToBSTR. - Added
-AsPlainTextswitch toConvertTo-InfisicalSecretDictionary; when present the cmdlet emitsDictionary<string, string>instead of the defaultDictionary<string, SecureString>.
Unreleased (carried forward)
2026.06.03.0057
- Build produced from commit
7e5209190a.
Unreleased (carried forward)
2026.06.03.0056
- Build produced from commit
7e5209190a.
Unreleased (carried forward)
2026.06.03.0055
- Build produced from commit
7e5209190a.
Unreleased (carried forward)
2026.06.03.0047
- Build produced from commit
7e5209190a.
Unreleased (carried forward)
2026.06.03.0046
- Build produced from commit
7e5209190a.
Unreleased (carried forward)
2026.06.03.0032
- Build produced from commit
c866760105.
Unreleased (carried forward)
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward)
2026.06.02.1724
- Build produced from commit
5801b4774a.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward) (carried forward)
2026.06.02.1648
- Build produced from commit
430e3a00c9.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward)
2026.06.02.1724
- Build produced from commit
5801b4774a.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward) (carried forward) (carried forward)
2026.06.02.1638
- Build produced from commit
3c47d6ff30.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward)
2026.06.02.1724
- Build produced from commit
5801b4774a.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward) (carried forward)
2026.06.02.1648
- Build produced from commit
430e3a00c9.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward)
2026.06.02.1724
- Build produced from commit
5801b4774a.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward) (carried forward) (carried forward) (carried forward)
2026.06.02.1611
- Build produced from commit
3c47d6ff30.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward)
2026.06.02.1724
- Build produced from commit
5801b4774a.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward) (carried forward)
2026.06.02.1648
- Build produced from commit
430e3a00c9.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward)
2026.06.02.1724
- Build produced from commit
5801b4774a.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward) (carried forward) (carried forward)
2026.06.02.1638
- Build produced from commit
3c47d6ff30.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward)
2026.06.02.1724
- Build produced from commit
5801b4774a.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward) (carried forward)
2026.06.02.1648
- Build produced from commit
430e3a00c9.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward)
2026.06.02.1724
- Build produced from commit
5801b4774a.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward)
2026.06.02.1737
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward)
2026.06.02.1902
- Build produced from commit
fa65c18bc1.
Unreleased
2026.06.02.1907
- Build produced from commit
fa65c18bc1.
Unreleased (carried forward) (carried forward) (carried forward) (carried forward) (carried forward) (carried forward) (carried forward)
Added
- Initial repository skeleton, C#
netstandard2.0project, and PowerShell module layout. - Centralized logging (
InfisicalLogger), error types/handler, sanitizer, path utility, andSecureStringutility. - Endpoint registry covering
UniversalAuthLogin,ListSecrets, andRetrieveSecret, and aSystem.Uri-based URI builder. - Synchronous HTTP client, JSON/YAML/XML/ENV serializers, and DTO/mapper for secrets.
- Connection model, process-level session manager, Universal Auth and Token Auth providers.
- Cmdlets:
Connect-Infisical,Disconnect-Infisical,Get-InfisicalSecrets,Get-InfisicalSecret,ConvertTo-InfisicalSecretDictionary,Export-InfisicalSecrets. - Build script (
build.ps1) generating manifest, copying binaries, creating release folders, and supporting unit/integration tests. - xUnit test project with unit tests and opt-in integration tests.