Commit Graph

70 Commits

Author SHA1 Message Date
GraceSolutions 3d93fb1173 M6: Secrets mutation - New/Update/Remove cmdlets + client methods + DTO tests 2026-06-03 17:30:29 -04:00
GraceSolutions 84ece43d29 M5: Tags CRUD - model, DTOs, mapper, client, 5 cmdlets + tests 2026-06-03 17:27:49 -04:00
GraceSolutions 5316144933 M4: Folders CRUD - model, DTOs, mapper, client, 5 cmdlets + tests 2026-06-03 17:25:46 -04:00
GraceSolutions 6eab0713b5 M3: Environments CRUD - model, DTOs, mapper, client, 5 cmdlets + tests 2026-06-03 17:23:11 -04:00
GraceSolutions 0ebacddb2c M2: Projects CRUD - model, DTOs, mapper, client, 5 cmdlets + tests 2026-06-03 17:21:02 -04:00
GraceSolutions 612ecf2c7d M1: endpoint registry + shared API invoker for full CRUD expansion 2026-06-03 17:17:53 -04:00
GraceSolutions 269f0ea438 Tests: roll forward to latest major .NET runtime
Adds <RollForward>LatestMajor</RollForward> to the test project so the net8.0 testhost can run on hosts that only have a newer .NET runtime installed (e.g. CI hosts with .NET 10 only). Locally with .NET 8 present this is a no-op; on the runner with .NET 10.0.8 the testhost will roll forward instead of aborting with 'You must install or update .NET to run this application'.
2026-06-03 17:02:10 -04:00
gsadmin f544b45267 Merge pull request 'Run CI on self-hosted host runners (powershell-linux); switch publish to PSResourceGet' (#2) from dev into main
Reviewed-on: #2
2026-06-03 13:33:24 +00:00
GraceSolutions 6f0055bd68 Run CI on self-hosted host runners (powershell-linux); switch publish to PSResourceGet
Publish to PowerShell Gallery / build (pull_request) Failing after 21s
Publish to PowerShell Gallery / release (pull_request) Has been skipped
Publish to PowerShell Gallery / publish (pull_request) Has been skipped
All three jobs (build, release, publish) now target runs-on: powershell-linux, which maps to :host on the Gitea runner so steps execute directly on the host OS instead of inside a Docker container. Dropped the apt-get/sudo install blocks and actions/setup-dotnet in favor of a fast preflight that verifies pwsh (and dotnet for the build job) are present, failing loudly otherwise. Publish job migrated off the legacy PowerShellGet v2 path (Set-PSRepository / Install-PackageProvider NuGet / Publish-Module) to Microsoft.PowerShell.PSResourceGet (Set-PSResourceRepository / Publish-PSResource), which is bundled with PS 7.4+ on Linux and does not depend on the NuGet package provider.
2026-06-03 09:29:45 -04:00
gsadmin 609035af1f Merge pull request 'Rebrand to Grace Solutions; add README, about_ help, Gitea CI/CD, track Module bin' (#1) from dev into main
Reviewed-on: #1
2026-06-03 01:53:11 +00:00
GraceSolutions dce97e98de Default -ViewSecretValue to true; reject <hidden-by-infisical> placeholder
Publish to PowerShell Gallery / build (pull_request) Failing after 6s
Publish to PowerShell Gallery / release (pull_request) Has been skipped
Publish to PowerShell Gallery / publish (pull_request) Has been skipped
Get-InfisicalSecrets and Get-InfisicalSecret now return real secret values by default. Pass -ViewSecretValue:False to opt in to the server's hidden response. InfisicalSecretMapper detects the <hidden-by-infisical> placeholder and the secretValueHidden flag; in either case SecretValue is set to null instead of pushing the literal placeholder into a SecureString, so downstream auth/export/dictionary consumers can never silently use the placeholder as if it were a real secret.
2026-06-02 21:34:16 -04:00
GraceSolutions 7be0b7b420 Add plain-text accessors for secrets
InfisicalSecret.GetPlainTextValue() returns the SecureString contents as a managed string for ergonomic PowerShell access. ConvertTo-InfisicalSecretDictionary -AsPlainText emits Dictionary<string,string> instead of Dictionary<string,SecureString>; default behavior unchanged. Export-InfisicalSecrets already writes plain text via secret.UsePlainTextValue(), so no switch was added there.
2026-06-02 21:14:43 -04:00
GraceSolutions 09c577ebd0 Add lazy API version negotiation (v4 -> v3 fallback) with -ApiVersion override
- Endpoint registry now stores ordered candidate lists per logical operation; Get/TryGet preserve prior behavior, new GetCandidates(name) exposes the ladder. Added v3 fallbacks (/api/v3/secrets/raw and /api/v3/secrets/raw/{secretName}) after v4. - InfisicalConnection gains PinnedApiVersion and a ResolvedEndpointVersions cache so the chosen version sticks for the session. - InfisicalSecretsClient.SendWithVersionFallback walks candidates in pin -> cached -> registry order, falls back on routing-style failures (404 without an Infisical JSON envelope, 405, or 400 mentioning workspaceId/projectSlug) when no version is pinned, and surfaces real application errors immediately. - Get-InfisicalSecret(s) expose -ApiVersion; Connect-Infisical sets PinnedApiVersion only when -ApiVersion is explicitly bound on the command line (env-var/default values do not pin). - Logger.Error routes via WriteWarning to avoid premature terminating errors that masked InfisicalApiException details; EnsureSuccess no longer redacts non-2xx bodies so server error envelopes are visible. - InfisicalSecretsClient sends both projectId and workspaceId so it works against both new and legacy server-side validators.
2026-06-02 21:01:37 -04:00
GraceSolutions 7e5209190a 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 c866760105)
2026-06-02 20:33:12 -04:00
GraceSolutions c866760105 Ignore local scripts/ directory (not part of the module) 2026-06-02 15:49:51 -04:00
GraceSolutions eaffeedf12 Add Gitea runner installer, proxy/SSO support, and release workflow
Scripts:
- Add scripts/Install-GiteaRunner.ps1: cross-platform installer for the
  Gitea act_runner daemon (systemd / launchd / Windows Service).
  - PowerShell 7+ runtime guard (works under irm | iex).
  - Explicit env var resolution (Process -> User -> Machine) for
    InstanceUrl and RegistrationToken with named candidates.
  - UTF-8 (no BOM) for every file write via [System.IO.File] APIs.
  - System proxy + DefaultNetworkCredentials on all web calls.
  - Optional -Labels; ServiceName/ServiceDisplayName split prevents
    systemd 'Invalid unit name' errors caused by whitespace.
  - config.yaml is always generated before the registration skip-check
    so upgrades produce a config the daemon can load.

Module:
- InfisicalHttpClient: enable UseDefaultCredentials and attach the
  system proxy with DefaultNetworkCredentials so requests work behind
  authenticated corporate proxies / SSO.
- ExportInfisicalSecretsCmdlet: make the UTF-8 (no BOM) case explicit
  in the encoding resolver.

CI/CD (.gitea/workflows/publish-psgallery.yml):
- Split into build -> release -> publish with hard `needs:` ordering
  so publish never runs unless build and release both succeed.
- Build job uploads Module/PSInfisicalAPI as an artifact.
- Release job downloads the artifact, reads the version from the
  manifest, zips the module, and creates a Gitea release tagged with
  the bare version. Release notes include version, full + short commit
  SHA, build timestamp, merged PR info, workflow run link, and any
  matching CHANGELOG.md section. Skips cleanly when the tag already
  exists.
- Publish job re-validates the downloaded manifest and runs
  Publish-Module against PSGallery using PSGALLERY_API_KEY.
2026-06-02 15:48:54 -04:00
GraceSolutions fa65c18bc1 Strengthen import validation (manifest + help) and harden Gitea workflow 2026-06-02 13:25:18 -04:00
GraceSolutions 5801b4774a Rebrand to Grace Solutions; add README, about_ help, Gitea CI/CD, track Module bin 2026-06-02 12:49:39 -04:00
GraceSolutions 430e3a00c9 Implement PSInfisicalAPI module per design spec with env-var auto-discovery 2026-06-02 12:46:34 -04:00
gsadmin 3c47d6ff30 Initial commit 2026-06-02 15:51:28 +00:00