Files
PSInfisicalAPI/CHANGELOG.md
T
GraceSolutions 5e6364f9e0 Surface Infisical API error body in thrown exceptions
Parse the JSON envelope (message/error/reqId) returned by 4xx/5xx responses and include the human-readable message in the InfisicalApiException message itself, plus new ApiErrorMessage and ApiRequestId properties. InfisicalErrorDetails and the error handler propagate the new fields so PowerShell error records and the logger surface the server-side reason instead of an opaque status line.
2026-06-04 16:43:44 -04:00

36 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

  • Infisical API error responses are now parsed to surface the server-side message, error, and reqId fields. The 4xx/5xx exception message includes the human-readable explanation (e.g. "The project is of type secret-manager") instead of an opaque Infisical API returned 400 (Bad Request). The InfisicalApiException gains ApiErrorMessage and ApiRequestId properties; InfisicalErrorDetails carries the same fields so PowerShell error records and logger output expose them.

2026.06.04.1920

Unreleased (carried forward)

  • build.ps1 gains a -CommitArtifacts switch that, after a successful build, stages and commits only the build outputs (Module/PSInfisicalAPI/bin/**, Module/PSInfisicalAPI/PSInfisicalAPI.psd1, and the auto-inserted CHANGELOG.md build stamp) with a message that references the source commit whose hash is now embedded in BuildCommitHash. The switch is mutually exclusive with the older broader -CommitOnSuccess (which still uses git add -A). README extended with a "Committing source and build artifacts in lockstep" section describing the recommended two-commit workflow.

2026.06.04.1917

Unreleased (carried forward)

2026.06.04.1915

Unreleased (carried forward)

2026.06.04.1911

Unreleased (carried forward)

2026.06.04.1906

Unreleased (carried forward)

  • BREAKING: Removed the plural-noun discovery cmdlets Get-InfisicalProjects, Get-InfisicalEnvironments, Get-InfisicalFolders, Get-InfisicalTags, Get-InfisicalSecrets, and Get-InfisicalCertificates. Their behavior is now folded into the corresponding singular cmdlets via a List (default) / single-record parameter set pair, matching the existing Get-InfisicalCertificateAuthority precedent. Callers should drop the trailing s; 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-InfisicalPkiSubscriber with List (default) and ByName parameter sets, backed by new InfisicalPkiClient.ListPkiSubscribers and GetPkiSubscriber methods, an InfisicalPkiSubscriber model, and corresponding DTOs/mapper. Use the emitted Name (slug) on Request-InfisicalCertificate -PkiSubscriberSlug.
  • Bug fix: Request-InfisicalCertificate -PkiSubscriberSlug ... was returning 404 because the registry's SignCertificateBySubscriber endpoint pointed at /api/v1/pki/pki-subscribers/{subscriberName}/sign-certificate and /api/v1/cert-manager/pki-subscribers/.... Per Infisical's v1/index.ts, the subscriber router is mounted at /pki/subscribers, so the single correct path is /api/v1/pki/subscribers/{subscriberName}/sign-certificate. The redundant cert-manager template 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 new Get-InfisicalPkiSubscriber each ship three examples — two straight-line invocations (one per parameter set) plus one OrderedDictionary splat example. All in-text references to the removed plural cmdlets across other cmdlets' examples were updated to the singular form.
  • build.ps1: CmdletsToExport and the Test-ModuleImports expected cmdlet list were updated to drop the six plural cmdlets and add Get-InfisicalPkiSubscriber (total: 34 exported cmdlets).

2026.06.04.1825

Unreleased (carried forward)

2026.06.04.1820

Unreleased (carried forward)

  • Install-InfisicalCertificate now routes chain certificates by self-signed status instead of dumping every chain entry into the Intermediate Certification Authorities store. Self-signed roots are installed into StoreName.Root (Trusted Root Certification Authorities) and non-self-signed intermediates are installed into StoreName.CertificateAuthority (Intermediate Certification Authorities). The leaf continues to use the user-specified -StoreName/-StoreLocation (default My/CurrentUser). Request-InfisicalCertificate already routed chain certs correctly; the same routing helper is now shared by both cmdlets.
  • InfisicalCertificateRequestHelpers exposes a new public GetChainCertificateTargetStore(X509Certificate2) classifier and a new InstallChain(IEnumerable<X509Certificate2>, StoreLocation, bool, IInfisicalLogger, string) overload. The existing InstallChain(InfisicalSignedCertificate, ...) overload now delegates to the new collection-based overload, so PKI chain-installation routing is centralized in one place.

2026.06.04.1810

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 an OrderedDictionary splat (with OrdinalIgnoreCase) that includes preceding Get- resolver commands wherever IDs or slugs are required.
  • build.ps1 now stages the cmdlet help XML next to the deployed binary. After the publish step, every culture directory under Module/PSInfisicalAPI/ (matching xx or xx-XX) that contains PSInfisicalAPI.dll-Help.xml is mirrored into bin/<culture>/. The script hard-fails if bin/en-US/PSInfisicalAPI.dll-Help.xml is missing or contains zero <command:command> entries.
  • Test-ModuleImports in build.ps1 now dynamically enumerates exported cmdlets via Get-Command -Module PSInfisicalAPI -CommandType Cmdlet, cross-checks the result against an expected list of 39 cmdlet names (including the previously-missing Copy-InfisicalSecret), and for each cmdlet asserts that Get-Help -Full returns a non-empty synopsis (rejecting PowerShell's auto-generated cmdlet-name fallback), a non-empty description, and that Get-Help -Examples returns at least one example node whose <dev:code> block is non-empty.

2026.06.04.1808

Unreleased (carried forward)

2026.06.04.1658

Unreleased (carried forward)

  • Request-InfisicalCertificate reuse 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 fetches GetCertificateBundle(serialNumber) and rebuilds the result with the bundle's chain PEM merged in. A new -LocalChainOnly switch 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.BuildResultFromExistingLocal adds a second overload that accepts an InfisicalCertificateBundle; when supplied, chain certs from the bundle are deduplicated by thumbprint and merged with the locally-resolved chain before classification.

2026.06.04.1652

Unreleased (carried forward)

2026.06.04.1651

Unreleased (carried forward)

2026.06.04.1634

Unreleased (carried forward)

2026.06.04.1631

Unreleased (carried forward)

2026.06.04.1622

Unreleased (carried forward)

  • PKI contract fixes and cmdlet expansion:
    • InfisicalPkiClient no longer auto-injects connection.ProjectId into PKI CA list/retrieve calls; only the caller's explicit -ProjectId is 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 nested configuration blocks. InfisicalCaMapper reads CA detail fields from configuration first, falling back to top-level.
    • RetrieveCertificate(connection, identifier) added on InfisicalPkiClient.
  • 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 either pki-subscribers/{name}/sign-certificate (-PkiSubscriberSlug) or ca/{caId}/sign-certificate (-CertificateAuthorityId), and returns a single InfisicalCertificateResult object with the leaf and chain pre-classified. The result exposes Leaf : X509Certificate2, Intermediates : X509Certificate2[], Root : X509Certificate2 (nullable), Chain : X509Certificate2[] (ordered leaf → intermediates → root, deduplicated by thumbprint), plus pass-through SerialNumber, CertificatePem, CertificateChainPem, and PrivateKeyPem. Supports -Subject (IDictionary with CN/C/ST/L/O/OU/E keys) merged with individual -CommonName/-Country/etc. parameters (individual params win), -DnsName/-IpAddress SANs (auto-populated from local FQDN when omitted). Idempotency: scans the local X509Store for an existing certificate matching CN and an Infisical-known serial number; returns the existing certificate wrapped in an InfisicalCertificateResult whose Intermediates/Root/Chain are populated by walking the local trust stores via X509Chain (no network calls, revocation checks disabled), and whose CertificatePem/CertificateChainPem are reconstructed from the resolved certs. Reuse is short-circuited unless -Force or -AllowRenewal (with optional -RenewalThresholdDays, default 30) requests a new one. Installation: -Install adds the leaf to -StoreName/-StoreLocation (default My/CurrentUser); -InstallChain additionally places intermediates into CertificateAuthority and self-signed roots into Root for the same -StoreLocation. -KeyStorageFlags is passed through to X509Certificate2 import.
    • Multi-algorithm CSR support on Request-InfisicalCertificate via split parameters: -KeyAlgorithm (Rsa/Ecdsa/Ed25519, default Rsa), -KeySize (2048/3072/4096, default 2048, applies to RSA only), -Curve (P256/P384, default P256, 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 underlying InfisicalCsrBuilder.Build(subject, dns, ip, options) API was updated to take an InfisicalCsrOptions object in place of the prior keySize int.
    • Sign-certificate endpoint registrations: SignCertificateBySubscriber and SignCertificateByCa registered with both /api/v1/pki/... and /api/v1/cert-manager/... candidate paths and marked ContainsSecretMaterialInResponse = true.

2026.06.04.1554

Unreleased (carried forward)

2026.06.04.1512

Unreleased (carried forward)

2026.06.04.1508

Unreleased (carried forward)

  • CI — Gitea artifact upload fix: Replaced actions/upload-artifact@v4 and actions/download-artifact@v4 with the Gitea-compatible forks christopherhx/gitea-upload-artifact@v4 and christopherhx/gitea-download-artifact@v4 in .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

Unreleased (carried forward)

  • M10 polish — formatting, type metadata, and PKI route aliases:
    • Added default table views and DefaultDisplayPropertySet entries for InfisicalCertificateAuthority, InfisicalCertificate, and InfisicalCertificateBundle in the module Format.ps1xml / Types.ps1xml.
    • Realigned PKI endpoint registry to current Infisical paths: ListInternalCertificateAuthorities and RetrieveInternalCertificateAuthority now use /api/v1/cert-manager/ca/internal[/{caId}] as primary, with legacy /api/v1/pki/ca/internal[/{caId}] retained as a fallback alias. GetCertificateBundle and RetrieveCertificate similarly carry cert-manager fallback aliases.
    • InfisicalApiInvoker.InvokeWithCandidateFallback walks the candidate list and falls back on 404/405, used by InfisicalPkiClient so older self-hosted Infisical instances are tolerated transparently.

2026.06.04.0114

Unreleased (carried forward)

  • M10 — PKI Internal CAs, Certificates & Windows Store integration:
    • Get-InfisicalCertificateAuthority lists internal certificate authorities for the current project, or returns a single CA with -CaId.
    • Search-InfisicalCertificate wraps POST /api/v1/projects/{projectId}/certificates/search with rich filters (-CommonName, -FriendlyName, -Search, -Status, -CaId, -ProfileId, -ApplicationId, -EnrollmentType, -KeyAlgorithm, -SignatureAlgorithm, -Source, -NotAfterFrom/To, -NotBeforeFrom/To, -SortBy/-SortOrder, -Limit/-Offset). Auto-paginates unless -NoAutoPage is set.
    • ConvertTo-InfisicalCertificate accepts an InfisicalCertificate, InfisicalCertificateBundle, or -SerialNumber, fetches the bundle endpoint when needed, and emits a System.Security.Cryptography.X509Certificates.X509Certificate2 with the private key attached. -NoPrivateKey skips key parsing; -IncludeChain additionally emits intermediates; -KeyStorageFlags controls import behavior.
    • Install-InfisicalCertificate / Uninstall-InfisicalCertificate perform idempotent installs/removes against a Windows X509Store (-StoreName, -StoreLocation, defaults My/CurrentUser), matching by thumbprint. Install is a no-op when the thumbprint is already present unless -Force is supplied (which replaces the existing entry). Both honor ShouldProcess and accept pipeline input.
    • Export-InfisicalCertificate writes PEM, PFX, or CER to disk via -Format, with -Password (SecureString) for PFX, -IncludeChain for full-chain PEM, -NoPrivateKey to omit the key, and -Force to overwrite.
    • BouncyCastle dependency: Added BouncyCastle.Cryptography to bridge PEM/PKCS#8 parsing on .NET Standard 2.0 / Windows PowerShell 5.1 (where X509Certificate2.CreateFromPem and RSA.ImportFromPem are unavailable). The shared PemCertificateBuilder assembles cert + chain + key into an in-memory PKCS#12 blob and imports it back into X509Certificate2. 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, and GetCertificateBundle (GET /api/v1/pki/certificates/{serialNumber}/bundle).

2026.06.04.0020

Unreleased (carried forward)

2026.06.04.0005

Unreleased (carried forward)

  • Bulk v4 batch routes: Endpoint registry now registers POST|PATCH|DELETE /api/v4/secrets/batch as the preferred candidates for BulkCreateSecret/BulkUpdateSecret/BulkDeleteSecret; the existing v3 raw routes (/api/v3/secrets/batch/raw) remain as automatic fallback. Batch request DTOs serialize both projectId (required by v4) and workspaceId (accepted by v3) when populated.
  • Strongly-typed bulk input: -Secrets on New-InfisicalSecret and Update-InfisicalSecret is now IDictionary<string, string>[] instead of Hashtable[]. InfisicalBulkSecretConverter accepts IEnumerable<IDictionary<string, string>> and parses TagIds from a comma-separated string. Nested Metadata/SecretMetadata dictionaries are no longer accepted in the bulk hashtable surface (set SecretMetadata programmatically on InfisicalBulkCreateSecretItem/InfisicalBulkUpdateSecretItem if needed).

2026.06.03.2207

  • Build produced from commit 09c3d5c68b.
  • M9 — Bulk, Duplicate & Inheritance:
    • Bulk parameter sets added to New-InfisicalSecret, Update-InfisicalSecret, and Remove-InfisicalSecret accepting -Secrets Hashtable[]; client methods CreateBatch/UpdateBatch/DeleteBatch wrap POST|PATCH|DELETE /api/v3/secrets/batch/raw.
    • Copy-InfisicalSecret cmdlet added, wrapping POST /api/v4/secrets/duplicate with 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 -Verbose line.
    • Project/Environment/Folder/Tag and all secret cmdlets refactored to use the inheritance helpers; existing explicit-parameter behavior is preserved.
    • InfisicalBulkSecretConverter accepts 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.

Unreleased (carried forward)

2026.06.03.2206

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.
  • Secret mutation cmdlets: Added New-InfisicalSecret, Update-InfisicalSecret, and Remove-InfisicalSecret; extended InfisicalSecretsClient with corresponding create/update/delete operations.
  • Additional auth providers: Connect-Infisical now 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 in IdentityLoginExecutor.
  • 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-InfisicalSecrets and Get-InfisicalSecret now default -ViewSecretValue to $true. Real secret values are returned by default. To request the redacted/hidden response, pass -ViewSecretValue:$false.
  • InfisicalSecretMapper now treats the server-side <hidden-by-infisical> placeholder as a hidden marker rather than a value: when secretValueHidden=true (or the placeholder string is detected) SecretValue is set to null instead of stuffing the literal into a SecureString. 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 needing Marshal.SecureStringToBSTR.
  • Added -AsPlainText switch to ConvertTo-InfisicalSecretDictionary; when present the cmdlet emits Dictionary<string, string> instead of the default Dictionary<string, SecureString>.

Unreleased (carried forward)

2026.06.03.0057

Unreleased (carried forward)

2026.06.03.0056

Unreleased (carried forward)

2026.06.03.0055

Unreleased (carried forward)

2026.06.03.0047

Unreleased (carried forward)

2026.06.03.0046

Unreleased (carried forward)

2026.06.03.0032

Unreleased (carried forward)

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward)

2026.06.02.1724

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward) (carried forward)

2026.06.02.1648

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward)

2026.06.02.1724

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward) (carried forward) (carried forward)

2026.06.02.1638

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward)

2026.06.02.1724

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward) (carried forward)

2026.06.02.1648

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward)

2026.06.02.1724

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward) (carried forward) (carried forward) (carried forward)

2026.06.02.1611

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward)

2026.06.02.1724

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward) (carried forward)

2026.06.02.1648

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward)

2026.06.02.1724

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward) (carried forward) (carried forward)

2026.06.02.1638

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward)

2026.06.02.1724

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward) (carried forward)

2026.06.02.1648

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward)

2026.06.02.1724

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward)

2026.06.02.1737

Unreleased

2026.06.02.1907

Unreleased (carried forward)

2026.06.02.1902

Unreleased

2026.06.02.1907

Unreleased (carried forward) (carried forward) (carried forward) (carried forward) (carried forward) (carried forward) (carried forward)

Added

  • Initial repository skeleton, C# netstandard2.0 project, and PowerShell module layout.
  • Centralized logging (InfisicalLogger), error types/handler, sanitizer, path utility, and SecureString utility.
  • Endpoint registry covering UniversalAuthLogin, ListSecrets, and RetrieveSecret, and a System.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.