485ee8a7dd
Auto-generated by build.ps1 -CommitArtifacts. Build 2026.06.04.2147. Module DLL and manifest embed BuildCommitHash=183fb48c32ce, matching the source commit they were produced from.
40 KiB
40 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.2147
- Build produced from commit
183fb48c32.
Unreleased (carried forward)
Get-InfisicalScepMdmProfileadded. Projects anInfisicalCertificateProfile(pipeline-bound) into a newInfisicalScepMdmProfilemodel that mirrors the WindowsClientCertificateInstall/SCEPCSP node set.-ServerUrldefaults to{baseUri}/scep/{profileId}/pkiclient.exederived from the active connection (thepkiclient.exesuffix is the RFC 8894 / Cisco SCEP client compatibility holdover, not a server-side executable).-UniqueIddefaults to a sanitized slug.-Challengeis aSecureStringdecrypted only when materializing the model.KeyAlgorithmandEkuMappingare inherited from the source profile defaults unless overridden.Export-InfisicalScepMdmProfileadded. Serializes the model viaInfisicalScepMdmProfile.ToSyncMl()(XDocument build, XmlWriter emit, XmlReader round-trip validation) and writes the result to-Pathas UTF-8 without BOM. Auto-creates the target directory, honors-WhatIf/-Confirm, and follows the project rule for-Force: if the destination exists without-Force, the cmdlet logs a warning and returns instead of throwing.-PassThruemits the resultingFileInfo.Write-InfisicalScepMdmProfileToWmiadded. Submits the same model to the local MDM Bridge WMI provider by invokingNew-CimInstance -Namespace root/cimv2/mdm/dmmap -ClassName MDM_ClientCertificateInstall_SCEP02 -Property <hashtable>through the host runspace (no new package references). Guards: throwsPlatformNotSupportedExceptionoff Windows; device-scope enrollment requires an elevated session unless-SkipElevationCheckis passed; supports-WhatIf/-Confirm;-PassThruemits the returned CIM instance. Override-ClassNamewhen targeting a different SCEP CSP version on the host.
2026.06.04.2112
- Build produced from commit
3754de74f6.
Unreleased (carried forward)
- Infisical API error responses are now parsed to surface the server-side
message,error, andreqIdfields. The 4xx/5xx exception message includes the human-readable explanation (e.g. "The project is of type secret-manager") instead of an opaqueInfisical API returned 400 (Bad Request). TheInfisicalApiExceptiongainsApiErrorMessageandApiRequestIdproperties;InfisicalErrorDetailscarries the same fields so PowerShell error records and logger output expose them. Get-InfisicalCertificateProfileadded withList(default) andByIdparameter sets. List binds toGET /api/v1/cert-manager/certificate-profiles(optional-Limit,-Offset,-IncludeConfigs); ById binds toGET /api/v1/cert-manager/certificate-profiles/{certificateProfileId}. NewInfisicalCertificateProfilemodel surfaces ca/policy ids, slug, enrollment type, per-profile defaults (ttl, key/extended key usages), and the embedded CA/policy/apiConfig summaries.Get-InfisicalCertificatePolicyadded withList(default) andByIdparameter sets. List binds toGET /api/v1/cert-manager/certificate-policies(optional-Limit,-Offset); ById binds toGET /api/v1/cert-manager/certificate-policies/{certificatePolicyId}. NewInfisicalCertificatePolicymodel surfaces subject, SANs, key usages, extended key usages, algorithms, and validity. Polymorphic string-or-array fields (allowed,required,keyAlgorithm) are normalized to arrays;sansis normalized whether the API returns an object or an array.Get-InfisicalCertificateAuthoritygains a-Kindparameter on the List parameter set with valuesInternal(default, preserves prior behavior against/api/v1/cert-manager/ca/internal),Any(binds to the generic/api/v1/cert-manager/caendpoint which returns both internal and ACME CAs), andAcme(uses the generic endpoint and client-side filters to ACME issuers only). ById retrieval is unchanged and still resolves against the internal CA endpoint.Request-InfisicalCertificategains aByProfileparameter set bound by the new-CertificateProfileIdparameter (aliasProfileId). The cmdlet generates a local keypair and CSR as usual, then POSTs to/api/v1/cert-manager/certificateswith the profile id, the CSR, and a subject/attribute envelope (commonName, organization, organizationalUnit, country, state, locality, ttl, notBefore, notAfter, keyUsages, extendedKeyUsages). The wrapped response ({certificate:{certificate,certificateChain,issuingCaCertificate,serialNumber,certificateId,privateKey}, certificateRequestId, status, message}) is unwrapped into the existingInfisicalSignedCertificateshape so the install / reuse / chain-completion paths continue to work unchanged. Issuance that returns without a certificate body (e.g. statuspending_approvalorpending_validation) is logged as a warning and the cmdlet emits a status-onlyInfisicalCertificateResult(newStatus,StatusMessage,CertificateRequestIdproperties) instead of throwing; install / chain / private-key-write steps are skipped in that case. Whether issuance is immediate or pending is dictated by the certificate policy bound to the profile (auto-approve vs. manual review and any required validation).
2026.06.04.1920
- Build produced from commit
0f8f44afdb.
Unreleased (carried forward)
build.ps1gains a-CommitArtifactsswitch that, after a successful build, stages and commits only the build outputs (Module/PSInfisicalAPI/bin/**,Module/PSInfisicalAPI/PSInfisicalAPI.psd1, and the auto-insertedCHANGELOG.mdbuild stamp) with a message that references the source commit whose hash is now embedded inBuildCommitHash. The switch is mutually exclusive with the older broader-CommitOnSuccess(which still usesgit add -A). README extended with a "Committing source and build artifacts in lockstep" section describing the recommended two-commit workflow.
2026.06.04.1917
- Build produced from commit
a34db831d8.
Unreleased (carried forward)
2026.06.04.1915
- Build produced from commit
2489b7adca.
Unreleased (carried forward)
2026.06.04.1911
- Build produced from commit
51bf819c37.
Unreleased (carried forward)
2026.06.04.1906
- Build produced from commit
51bf819c37.
Unreleased (carried forward)
- BREAKING: Removed the plural-noun discovery cmdlets
Get-InfisicalProjects,Get-InfisicalEnvironments,Get-InfisicalFolders,Get-InfisicalTags,Get-InfisicalSecrets, andGet-InfisicalCertificates. Their behavior is now folded into the corresponding singular cmdlets via aList(default) / single-record parameter set pair, matching the existingGet-InfisicalCertificateAuthorityprecedent. Callers should drop the trailings; invocation without the identity parameter (-ProjectId,-EnvironmentSlugOrId,-FolderNameOrId,-TagSlugOrId,-SecretName,-SerialNumber) now returns the list, and supplying the identity parameter returns the single record. No back-compat aliases were added. - Added
Get-InfisicalPkiSubscriberwithList(default) andByNameparameter sets, backed by newInfisicalPkiClient.ListPkiSubscribersandGetPkiSubscribermethods, anInfisicalPkiSubscribermodel, and corresponding DTOs/mapper. Use the emittedName(slug) onRequest-InfisicalCertificate -PkiSubscriberSlug. - Bug fix:
Request-InfisicalCertificate -PkiSubscriberSlug ...was returning 404 because the registry'sSignCertificateBySubscriberendpoint pointed at/api/v1/pki/pki-subscribers/{subscriberName}/sign-certificateand/api/v1/cert-manager/pki-subscribers/.... Per Infisical'sv1/index.ts, the subscriber router is mounted at/pki/subscribers, so the single correct path is/api/v1/pki/subscribers/{subscriberName}/sign-certificate. The redundantcert-managertemplate was removed; the PKI endpoint registry tests were updated to match. - Updated MAML help in
Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml: the six consolidated cmdlets and the newGet-InfisicalPkiSubscribereach ship three examples — two straight-line invocations (one per parameter set) plus oneOrderedDictionarysplat example. All in-text references to the removed plural cmdlets across other cmdlets' examples were updated to the singular form. build.ps1:CmdletsToExportand theTest-ModuleImportsexpected cmdlet list were updated to drop the six plural cmdlets and addGet-InfisicalPkiSubscriber(total: 34 exported cmdlets).
2026.06.04.1825
- Build produced from commit
19615363e3.
Unreleased (carried forward)
2026.06.04.1820
- Build produced from commit
19615363e3.
Unreleased (carried forward)
Install-InfisicalCertificatenow routes chain certificates by self-signed status instead of dumping every chain entry into the Intermediate Certification Authorities store. Self-signed roots are installed intoStoreName.Root(Trusted Root Certification Authorities) and non-self-signed intermediates are installed intoStoreName.CertificateAuthority(Intermediate Certification Authorities). The leaf continues to use the user-specified-StoreName/-StoreLocation(defaultMy/CurrentUser).Request-InfisicalCertificatealready routed chain certs correctly; the same routing helper is now shared by both cmdlets.InfisicalCertificateRequestHelpersexposes a new publicGetChainCertificateTargetStore(X509Certificate2)classifier and a newInstallChain(IEnumerable<X509Certificate2>, StoreLocation, bool, IInfisicalLogger, string)overload. The existingInstallChain(InfisicalSignedCertificate, ...)overload now delegates to the new collection-based overload, so PKI chain-installation routing is centralized in one place.
2026.06.04.1810
- Build produced from commit
19615363e3.
Unreleased (carried forward)
- Authored MAML help (
Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml) covering all 39 exported cmdlets. Every entry includes a synopsis, description, notes section, and two examples: a one-liner and anOrderedDictionarysplat (withOrdinalIgnoreCase) that includes precedingGet-resolver commands wherever IDs or slugs are required. build.ps1now stages the cmdlet help XML next to the deployed binary. After the publish step, every culture directory underModule/PSInfisicalAPI/(matchingxxorxx-XX) that containsPSInfisicalAPI.dll-Help.xmlis mirrored intobin/<culture>/. The script hard-fails ifbin/en-US/PSInfisicalAPI.dll-Help.xmlis missing or contains zero<command:command>entries.Test-ModuleImportsinbuild.ps1now dynamically enumerates exported cmdlets viaGet-Command -Module PSInfisicalAPI -CommandType Cmdlet, cross-checks the result against an expected list of 39 cmdlet names (including the previously-missingCopy-InfisicalSecret), and for each cmdlet asserts thatGet-Help -Fullreturns a non-empty synopsis (rejecting PowerShell's auto-generated cmdlet-name fallback), a non-empty description, and thatGet-Help -Examplesreturns at least one example node whose<dev:code>block is non-empty.
2026.06.04.1808
- Build produced from commit
19615363e3.
Unreleased (carried forward)
2026.06.04.1658
- Build produced from commit
19615363e3.
Unreleased (carried forward)
Request-InfisicalCertificatereuse path now falls back to the Infisical certificate-bundle endpoint when the local trust stores do not contain the issuing intermediates or root. The cmdlet builds the local chain first; if the result has no intermediates and no root, it fetchesGetCertificateBundle(serialNumber)and rebuilds the result with the bundle's chain PEM merged in. A new-LocalChainOnlyswitch opts out of the bundle fetch for strict offline behavior. Bundle-fetch failures are logged at verbose level and the cmdlet returns the local-only result.InfisicalCertificateRequestHelpers.BuildResultFromExistingLocaladds a second overload that accepts anInfisicalCertificateBundle; when supplied, chain certs from the bundle are deduplicated by thumbprint and merged with the locally-resolved chain before classification.
2026.06.04.1652
- Build produced from commit
19615363e3.
Unreleased (carried forward)
2026.06.04.1651
- Build produced from commit
19615363e3.
Unreleased (carried forward)
2026.06.04.1634
- Build produced from commit
19615363e3.
Unreleased (carried forward)
2026.06.04.1631
- Build produced from commit
19615363e3.
Unreleased (carried forward)
2026.06.04.1622
- Build produced from commit
19615363e3.
Unreleased (carried forward)
- PKI contract fixes and cmdlet expansion:
InfisicalPkiClientno longer auto-injectsconnection.ProjectIdinto PKI CA list/retrieve calls; only the caller's explicit-ProjectIdis forwarded so that cert-manager primary routes (which do not accept the query parameter) succeed.- List/single CA and single certificate response parsing now tolerate raw arrays, wrapper objects (
{certificate: {...}},{certificates: [...]}), and nestedconfigurationblocks.InfisicalCaMapperreads CA detail fields fromconfigurationfirst, falling back to top-level. RetrieveCertificate(connection, identifier)added onInfisicalPkiClient.
- New cmdlets:
Get-InfisicalCertificate— single-record retrieval by-SerialNumber/-Id(mandatory positional).Get-InfisicalCertificates— listing with light filtering (-CommonName,-FriendlyName,-Status,-CaId,-Limit,-Offset,-NoAutoPage). Auto-paginates by default.Request-InfisicalCertificate— generates a keypair locally (private key never leaves the device), submits a PKCS#10 CSR to eitherpki-subscribers/{name}/sign-certificate(-PkiSubscriberSlug) orca/{caId}/sign-certificate(-CertificateAuthorityId), and returns a singleInfisicalCertificateResultobject with the leaf and chain pre-classified. The result exposesLeaf : X509Certificate2,Intermediates : X509Certificate2[],Root : X509Certificate2(nullable),Chain : X509Certificate2[](ordered leaf → intermediates → root, deduplicated by thumbprint), plus pass-throughSerialNumber,CertificatePem,CertificateChainPem, andPrivateKeyPem. Supports-Subject(IDictionarywithCN/C/ST/L/O/OU/Ekeys) merged with individual-CommonName/-Country/etc. parameters (individual params win),-DnsName/-IpAddressSANs (auto-populated from local FQDN when omitted). Idempotency: scans the localX509Storefor an existing certificate matchingCNand an Infisical-known serial number; returns the existing certificate wrapped in anInfisicalCertificateResultwhoseIntermediates/Root/Chainare populated by walking the local trust stores viaX509Chain(no network calls, revocation checks disabled), and whoseCertificatePem/CertificateChainPemare reconstructed from the resolved certs. Reuse is short-circuited unless-Forceor-AllowRenewal(with optional-RenewalThresholdDays, default 30) requests a new one. Installation:-Installadds the leaf to-StoreName/-StoreLocation(defaultMy/CurrentUser);-InstallChainadditionally places intermediates intoCertificateAuthorityand self-signed roots intoRootfor the same-StoreLocation.-KeyStorageFlagsis passed through toX509Certificate2import.- Multi-algorithm CSR support on
Request-InfisicalCertificatevia split parameters:-KeyAlgorithm(Rsa/Ecdsa/Ed25519, defaultRsa),-KeySize(2048/3072/4096, default2048, applies to RSA only),-Curve(P256/P384, defaultP256, applies to ECDSA only). Signature algorithms are picked automatically: SHA256WITHRSA for RSA, SHA256WITHECDSA / SHA384WITHECDSA for ECDSA P-256/P-384, and Ed25519 (pure-EdDSA) for Ed25519. The underlyingInfisicalCsrBuilder.Build(subject, dns, ip, options)API was updated to take anInfisicalCsrOptionsobject in place of the priorkeySizeint. - Sign-certificate endpoint registrations:
SignCertificateBySubscriberandSignCertificateByCaregistered with both/api/v1/pki/...and/api/v1/cert-manager/...candidate paths and markedContainsSecretMaterialInResponse = true.
2026.06.04.1554
- Build produced from commit
19615363e3.
Unreleased (carried forward)
2026.06.04.1512
- Build produced from commit
19615363e3.
Unreleased (carried forward)
2026.06.04.1508
- Build produced from commit
19615363e3.
Unreleased (carried forward)
- CI  Gitea artifact upload fix: Replaced
actions/upload-artifact@v4andactions/download-artifact@v4with the Gitea-compatible forkschristopherhx/gitea-upload-artifact@v4andchristopherhx/gitea-download-artifact@v4in.gitea/workflows/publish-psgallery.yml. The upstream v4 actions abort on Gitea because Gitea is detected as GHES, which the upstream v4 actions do not support (see go-gitea/gitea#28853).
2026.06.04.0123
- Build produced from commit
2cbd5c2008.
Unreleased (carried forward)
- M10 polish  formatting, type metadata, and PKI route aliases:
- Added default table views and
DefaultDisplayPropertySetentries forInfisicalCertificateAuthority,InfisicalCertificate, andInfisicalCertificateBundlein the moduleFormat.ps1xml/Types.ps1xml. - Realigned PKI endpoint registry to current Infisical paths:
ListInternalCertificateAuthoritiesandRetrieveInternalCertificateAuthoritynow use/api/v1/cert-manager/ca/internal[/{caId}]as primary, with legacy/api/v1/pki/ca/internal[/{caId}]retained as a fallback alias.GetCertificateBundleandRetrieveCertificatesimilarly carrycert-managerfallback aliases. InfisicalApiInvoker.InvokeWithCandidateFallbackwalks the candidate list and falls back on404/405, used byInfisicalPkiClientso older self-hosted Infisical instances are tolerated transparently.
- Added default table views and
2026.06.04.0114
- Build produced from commit
2cbd5c2008.
Unreleased (carried forward)
- M10  PKI Internal CAs, Certificates & Windows Store integration:
Get-InfisicalCertificateAuthoritylists internal certificate authorities for the current project, or returns a single CA with-CaId.Search-InfisicalCertificatewrapsPOST /api/v1/projects/{projectId}/certificates/searchwith rich filters (-CommonName,-FriendlyName,-Search,-Status,-CaId,-ProfileId,-ApplicationId,-EnrollmentType,-KeyAlgorithm,-SignatureAlgorithm,-Source,-NotAfterFrom/To,-NotBeforeFrom/To,-SortBy/-SortOrder,-Limit/-Offset). Auto-paginates unless-NoAutoPageis set.ConvertTo-InfisicalCertificateaccepts anInfisicalCertificate,InfisicalCertificateBundle, or-SerialNumber, fetches the bundle endpoint when needed, and emits aSystem.Security.Cryptography.X509Certificates.X509Certificate2with the private key attached.-NoPrivateKeyskips key parsing;-IncludeChainadditionally emits intermediates;-KeyStorageFlagscontrols import behavior.Install-InfisicalCertificate/Uninstall-InfisicalCertificateperform idempotent installs/removes against a WindowsX509Store(-StoreName,-StoreLocation, defaultsMy/CurrentUser), matching by thumbprint. Install is a no-op when the thumbprint is already present unless-Forceis supplied (which replaces the existing entry). Both honorShouldProcessand accept pipeline input.Export-InfisicalCertificatewrites PEM, PFX, or CER to disk via-Format, with-Password(SecureString) for PFX,-IncludeChainfor full-chain PEM,-NoPrivateKeyto omit the key, and-Forceto overwrite.- BouncyCastle dependency: Added
BouncyCastle.Cryptographyto bridge PEM/PKCS#8 parsing on .NET Standard 2.0 / Windows PowerShell 5.1 (whereX509Certificate2.CreateFromPemandRSA.ImportFromPemare unavailable). The sharedPemCertificateBuilderassembles cert + chain + key into an in-memory PKCS#12 blob and imports it back intoX509Certificate2. The DLL ships in the published module bin directory. - PKI endpoint registry entries for
ListInternalCertificateAuthorities(GET /api/v1/pki/ca/internal),RetrieveInternalCertificateAuthority(GET /api/v1/pki/ca/internal/{caId}),SearchCertificates(POST /api/v1/projects/{projectId}/certificates/search),RetrieveCertificate, andGetCertificateBundle(GET /api/v1/pki/certificates/{serialNumber}/bundle).
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.