Releases: Infisical/cli
Releases · Infisical/cli
v0.43.85
Changelog
- b193c99 feat: add principals flag to cli for ssh dynamic secrets (#238)
- 48d8a35 Merge pull request #196 from Infisical/devin/1777324232-lazy-identify-user
- 89f55cc Merge pull request #236 from Infisical/feat/pam-rdp-recording
- 5f5a8eb Merge branch 'main' into feat/pam-rdp-recording
- b38d001 improvement: decrease gateway health check interval for HA (#231)
- 1ccc772 Merge pull request #227 from Infisical/feat/pam-rdp-browser-client
- 8d4ee9c format
- 7ac3308 remove unused constant
- 6ec5907 split acceptor cert generation from TLS config build
- 498dcb8 remove unnecessary if statement
- 2d9aa09 Merge branch 'main' into feat/pam-rdp-browser-client
- 6a698a6 Merge pull request #235 from Infisical/fix-early-cleanup
- 0bd2056 move cleanup to defer
- a7fea58 fix: early session cleanup that broke proxies
- 99d53a7 Merge pull request #218 from Infisical/feat/pam-rdp-recording
- 1ed1bc2 chore(pam-rdp): shorten Mac FastPath mask comment
- 08c4660 Revert "chore(pam-rdp): drop Mac client FastPath input header mask"
- d1552c2 docs(pam-rdp): expand CR/CC abbreviations in rdcleanpath comment
- f795c1f docs(pam-rdp): document run_mitm_rdcleanpath_inner step-by-step
- 059e6ef docs(pam-rdp): add comments to read_rdcleanpath_pdu_inner and read_tpkt_pdu
- ba8ce28 refactor(pam-rdp): rename MITM entry points for clarity
- a031f0a fix(pam-rdp): silence unused variable warning in ffi.rs
- 8980609 chore(pam-rdp): remove debug logging from bridge
- 40741f0 refactor(pam-rdp): consolidate 4 FFI start functions into 2
- c6dcfb1 refactor(pam-rdp): reuse native bridge path for browser RDP
- f53a670 style(pam-rdp): remove trailing blank line for cargo fmt
- 286b7e2 Merge feat/pam-rdp-recording into feat/pam-rdp-browser-client
- 0155381 fix(pam-rdp): always cleanup on explicit cancellation
- 12e9ea3 chore(pam-rdp): drop Mac client FastPath input header mask
- 0830b7f fix(pam-rdp): keep session alive across RDP disconnects
- 4b25773 fix(relay): fix misleading "packet length too long" error when gateway is unreachable (#234)
- c6e658f Merge remote-tracking branch 'origin/main' into feat/pam-rdp-recording
- c548856 chore(pam-session): drop misleading 'terminal' references from SessionEvent comments
- 8d8f63d chore: pin GitHub workflow dependencies by SHA (#232)
- bd5a8cf chore: retrigger CI
- 7f030f1 fix(pam-rdp): keep recording timeline coherent across rapid reconnects
- 6effef3 fix(telemetry): only persist LastIdentifiedEmail after successful enqueue
- c0991b4 feat(telemetry): make IdentifyUser idempotent and lazy via persisted LastIdentifiedEmail
- 71878ca Merge pull request #197 from Infisical/devin/1777325070-cli-machine-identity-telemetry
- 7ba066c chore(api): drop redundant UploadSessionEvent comment
- 8920437 refactor(pam-session): rename TerminalEvent -> SessionEvent
- 9ab95e1 fix(pam-rdp): capture client input PDUs under TLS-strict clients
- 9ad910b fix(pam): fix SSH e2e test flakes from container readiness races (#228)
- 2d7b1eb fix(pam): eliminate black screen at start of RDP recordings
- d56cde6 style(pam): apply cargo fmt formatting
- 7aeed67 fix(pam): address bot review issues in RDP browser session
- c111230 feat(pam): add browser-based RDP session support and recording
- d422e12 feat(pam): add Oracle DB access support (#192)
- e96b1b2 Merge remote-tracking branch 'origin/main' into feat/pam-rdp-recording
- f81c8cb fix(pam-rdp): address PR review issues
- 795ae05 Merge remote-tracking branch 'origin/fix/cli-rdp-musl-static' into feat/pam-rdp-recording
- 5b44f1a fix(release): ship linux RDP binaries as fully static (musl)
- 3f00ca5 fix(pam-rdp): bypass mstsc TLS cert validation in generated .rdp
- 9357a92 fix(pam-rdp): support FreeRDP + match native clients' protocol advertisement
- e2dd9c0 style(pam-rdp): clippy fixes
- f916494 style(pam-rdp): cargo fmt
- d9e912f fix(pam-rdp): patch capabilities + anchor timestamps for replay
- d290e1b feat(pam-rdp): record RDP sessions through the chunk uploader
- 18f2006 fix(telemetry): prefer logged-in email over env-token identity in distinctId resolution
- ca54d7a feat(telemetry): attribute machine-identity CLI events to identity- persons
Changelog
- b193c99 feat: add principals flag to cli for ssh dynamic secrets (#238)
- 48d8a35 Merge pull request #196 from Infisical/devin/1777324232-lazy-identify-user
- 89f55cc Merge pull request #236 from Infisical/feat/pam-rdp-recording
- 5f5a8eb Merge branch 'main' into feat/pam-rdp-recording
- b38d001 improvement: decrease gateway health check interval for HA (#231)
- 1ccc772 Merge pull request #227 from Infisical/feat/pam-rdp-browser-client
- 8d4ee9c format
- 7ac3308 remove unused constant
- 6ec5907 split acceptor cert generation from TLS config build
- 498dcb8 remove unnecessary if statement
- 2d9aa09 Merge branch 'main' into feat/pam-rdp-browser-client
- 6a698a6 Merge pull request #235 from Infisical/fix-early-cleanup
- 0bd2056 move cleanup to defer
- a7fea58 fix: early session cleanup that broke proxies
- 99d53a7 Merge pull request #218 from Infisical/feat/pam-rdp-recording
- 1ed1bc2 chore(pam-rdp): shorten Mac FastPath mask comment
- 08c4660 Revert "chore(pam-rdp): drop Mac client FastPath input header mask"
- d1552c2 docs(pam-rdp): expand CR/CC abbreviations in rdcleanpath comment
- f795c1f docs(pam-rdp): document run_mitm_rdcleanpath_inner step-by-step
- 059e6ef docs(pam-rdp): add comments to read_rdcleanpath_pdu_inner and read_tpkt_pdu
- ba8ce28 refactor(pam-rdp): rename MITM entry points for clarity
- a031f0a fix(pam-rdp): silence unused variable warning in ffi.rs
- 8980609 chore(pam-rdp): remove debug logging from bridge
- 40741f0 refactor(pam-rdp): consolidate 4 FFI start functions into 2
- c6dcfb1 refactor(pam-rdp): reuse native bridge path for browser RDP
- f53a670 style(pam-rdp): remove trailing blank line for cargo fmt
- 286b7e2 Merge feat/pam-rdp-recording into feat/pam-rdp-browser-client
- 0155381 fix(pam-rdp): always cleanup on explicit cancellation
- 12e9ea3 chore(pam-rdp): drop Mac client FastPath input header mask
- 0830b7f fix(pam-rdp): keep session alive across RDP disconnects
- 4b25773 fix(relay): fix misleading "packet length too long" error when gateway is unreachable (#234)
- c6e658f Merge remote-tracking branch 'origin/main' into feat/pam-rdp-recording
- c548856 chore(pam-session): drop misleading 'terminal' references from SessionEvent comments
- 8d8f63d chore: pin GitHub workflow dependencies by SHA (#232)
- bd5a8cf chore: retrigger CI
- 7f030f1 fix(pam-rdp): keep recording timeline coherent across rapid reconnects
- 6effef3 fix(telemetry): only persist LastIdentifiedEmail after successful enqueue
- c0991b4 feat(telemetry): make IdentifyUser idempotent and lazy via persisted LastIdentifiedEmail
- 71878ca Merge pull request #197 from Infisical/devin/1777325070-cli-machine-identity-telemetry
- 7ba066c chore(api): drop redundant UploadSessionEvent comment
- 8920437 refactor(pam-session): rename TerminalEvent -> SessionEvent
- 9ab95e1 fix(pam-rdp): capture client input PDUs under TLS-strict clients
- 9ad910b fix(pam): fix SSH e2e test flakes from container readiness races (#228)
- 2d7b1eb fix(pam): eliminate black screen at start of RDP recordings
- d56cde6 style(pam): apply cargo fmt formatting
- 7aeed67 fix(pam): address bot review issues in RDP browser session
- c111230 feat(pam): add browser-based RDP session support and recording
- d422e12 feat(pam): add Oracle DB access support (#192)
- e96b1b2 Merge remote-tracking branch 'origin/main' into feat/pam-rdp-recording
- f81c8cb fix(pam-rdp): address PR review issues
- 795ae05 Merge remote-tracking branch 'origin/fix/cli-rdp-musl-static' into feat/pam-rdp-recording
- 5b44f1a fix(release): ship linux RDP binaries as fully static (musl)
- 3f00ca5 fix(pam-rdp): bypass mstsc TLS cert validation in generated .rdp
- 9357a92 fix(pam-rdp): support FreeRDP + match native clients' protocol advertisement
- e2dd9c0 style(pam-rdp): clippy fixes
- f916494 style(pam-rdp): cargo fmt
- d9e912f fix(pam-rdp): patch capabilities + anchor timestamps for replay
- d290e1b feat(pam-rdp): record RDP sessions through the chunk uploader
- 18f2006 fix(telemetry): prefer logged-in email over env-token identity in distinctId resolution
- ca54d7a feat(telemetry): attribute machine-identity CLI events to identity- persons
v0.43.84
Changelog
- fc0ac97 Merge pull request #225 from Infisical/fix/goreleaser-skip-build
- bfab685 fix(release): remove create-release-draft and fix --skip=build
- 171b125 Merge pull request #223 from Infisical/PAM-205
- 268a8e6 tiny noise fix
- 19a086f move session cleanup to only run if a session was found and cancelled
- 3ccfec6 Merge branch 'main' into PAM-205
- f9dd5b6 address claude review
- 786fcd7 codex review fix
- 71aba63 fix: detect and clean up dead gateway connections to prevent OOM
Changelog
- fc0ac97 Merge pull request #225 from Infisical/fix/goreleaser-skip-build
- bfab685 fix(release): remove create-release-draft and fix --skip=build
- 171b125 Merge pull request #223 from Infisical/PAM-205
- 268a8e6 tiny noise fix
- 19a086f move session cleanup to only run if a session was found and cancelled
- 3ccfec6 Merge branch 'main' into PAM-205
- f9dd5b6 address claude review
- 786fcd7 codex review fix
- 71aba63 fix: detect and clean up dead gateway connections to prevent OOM
Changelog
- fc0ac97 Merge pull request #225 from Infisical/fix/goreleaser-skip-build
- bfab685 fix(release): remove create-release-draft and fix --skip=build
- 171b125 Merge pull request #223 from Infisical/PAM-205
- 268a8e6 tiny noise fix
- 19a086f move session cleanup to only run if a session was found and cancelled
- 3ccfec6 Merge branch 'main' into PAM-205
- f9dd5b6 address claude review
- 786fcd7 codex review fix
- 71aba63 fix: detect and clean up dead gateway connections to prevent OOM
v0.43.83
v0.43.82
Changelog
- 8e70d95 Merge pull request #220 from Infisical/matheus/secrets-267-add-multi-path-support-to-infisical-run
- c08e5fa remove “last path wins” as this is not true
- 91cee7f use array + OverrideSecrets
- 8d11e6a fix ETag generation by removing duplicated secrets
- 4729a9a support multiple paths in
infisical run
v0.43.81
v0.43.80
What's Changed
- fix(pam): keep session recording on upload failure (PAM-205) by @bernie-g in #199
- feat(gateway): direct-to-bucket session recording uploads with reconciliation by @x032205 in #200
- feat(gateway): add AWS authentication by @saifsmailbox98 in #202
- feat(pam): native RDP client support by @bernie-g in #191
- feat(pam-rdp): thread AD domain through RDP bridge by @bernie-g in #203
- chore: updated tar to new version by @akhilmhdh in #219
Full Changelog: v0.43.79...v0.43.80
Changelog
- 464682d Merge pull request #219 from Infisical/fix/tar
- d4374ce chore: updated tar to new version
- 37a5224 Merge pull request #203 from Infisical/feat/pam-rdp-ad-support
- 5f90606 Merge remote-tracking branch 'origin/main' into feat/pam-rdp-ad-support
- 82180bb Merge pull request #191 from Infisical/feat/pam-rdp-mvp
- 05b05ad Merge remote-tracking branch 'origin/main' into feat/pam-rdp-ad-support
- f2f4f99 fix(release): append windows artifacts to shared draft
- 98e076f chore(pam-rdp): drop unused /target-docker from .gitignore
- e0619d7 chore(pam-rdp): lowercase example account name in help text
- 92102e9 fix(pam-rdp): don't shut down proxy on per-connection gateway close
- 4e8d91e feat(gateway): add AWS authentication (#202)
- 54e921b Merge remote-tracking branch 'origin/main' into feat/pam-rdp-mvp
- ad8bcfc fix(release): make npm-release tolerate skipped validate-tag-branch
- e0a9157 refactor(pam-rdp): use target username for acceptor, autofill via metadata
- 8ffb72b refactor(pam-rdp): consolidate HandleConnection + cargo fmt
- e350e47 feat(pam-rdp): strip virtual channels from MCS Connect Initial
- c2b68da feat(pam-rdp): use account name as RDP acceptor username
- 8c758e2 Merge pull request #200 from Infisical/PAM-189
- 7675e95 feat(pam-rdp): use empty password for acceptor credentials
- 4f0e3e2 refactor(pam-rdp): rename bridge_cgo.go to bridge_cgo_unix.go
- c4ec7db drop haspendingchunks gate for loading secrets from disk
- ff7d648 remove chunk splitting
- e5d2acb docs(pam-rdp): add README for Rust bridge setup
- c292f74 reviews
- 4800b70 Split chunks
- 25e6421 deletePersistedOffset only if chunks cleared
- 3d92a88 move writePersistedOffset into loop
- 4c89708 Merge branch 'main' into PAM-189
- 764e44e Fixed Chunk Reconciliation And upload token persistence
- f501d51 Merge pull request #199 from Infisical/fix/pam-205-keep-recording-on-upload-failure
- 65ae9af address reviews
- 6916ff6 fix(pam-rdp): address PR review feedback
- b1ac506 feat(gateway): direct-to-bucket session recording uploads with reconciliation
- caf9444 fix(pam): tighten startup cleanup behavior
- 13a16d3 fix(pam): keep session recording on upload failure (PAM-205)
- 00d06b2 feat(pam-rdp): thread AD domain through bridge for NTLM CredSSP
- 85c23d2 fix(pam-rdp): address PR bot review comments
- ef74e90 chore(pam-rdp): remove bridge-test harness
- b375428 ci: shorten dry_run description in release workflow
- e22812a fix(pam-rdp): format Safety doc as proper heading for clippy
- 6f3ac49 ci(pam-rdp): build Rust bridge natively on windows-2022 runner
- 7511234 ci(pam-rdp): enable RDP in Windows Docker container images
- 57438fe ci: group goreleaser-windows into the create-release-draft column
- 3291a54 fix(ci): link libwinpthread for windows CGO
- 348de42 ci(pam-rdp): parallelize goreleaser + goreleaser-darwin via shared draft
- cf674f1 chore(pam-rdp): remove rdp-bridge-test dev binary
- 08f0809 ci(pam-rdp): ditch zig for darwin, use macos-latest runner instead
- 3887a5a fix(ci): stub libresolv.tbd for darwin cross-compile
- b15371b fix(pam-rdp): clean up .rdp file on session end + pin zig 0.14.0
- 50e29ce ci(pam-rdp): bump zig to 0.16.0
- 65aaa12 ci(pam-rdp): drop FreeBSD and NetBSD from RDP tier
- eb75047 chore(pam-rdp): strip redundant comments across the PR
- 2b2ccab ci(pam-rdp): build only the staticlib target in cross-compile jobs
- a515cbd ci(pam-rdp): drop windows/arm64 from RDP tier
- 8329f79 fix(pam-rdp): statically bundle zlib into the bridge archive
- 05fcb11 chore: remove accidentally committed local PAM session artifact
- b0aff6c ci(pam-rdp): expand RDP support from 5 to 11 targets (option 1)
- 0c9424d ci(pam-rdp): use zig cc for darwin cross-compile instead of osxcross
- 3bc0a78 Revert skip=docker change; keep only the mingw package name fix
- a3f4408 fix(ci): correct mingw apt package name and skip docker on dry-run
- 9beb635 feat(pam-rdp): wire --reason flag through to RDP access
- 7585478 Merge remote-tracking branch 'origin/main' into feat/pam-rdp-mvp
- 0611a97 ci(pam-rdp): wire RDP bridge static libs into goreleaser release
- 6ef384f feat(pam-rdp): add Windows CGo wrapper and extract shared bridge ops
- 83dc9ab ci(pam): cross-compile RDP bridge static libs across 11 targets
- 492f656 ci(pam): add dry-run option to release workflow
- 8a04e54 ci: retrigger
- 095b900 ci(pam): pin Rust toolchain + add RDP bridge smoke test
- 5e2e46b fix: add .vscode folder to gitignore
- afb0ec2 chore(pam): remove rdp native crate README
- 55ca651 chore(pam): rdp UX polish
- e84febf feat(pam): add rdp access CLI subcommand
- 39328fd feat(pam): wire rdp handler into gateway dispatch
- a91f967 feat(pam): add c abi + cgo wrapper for rdp bridge
- 013cab5 feat(pam): add rust rdp bridge with post-credssp passthrough
Changelog
- 464682d Merge pull request #219 from Infisical/fix/tar
- d4374ce chore: updated tar to new version
- 37a5224 Merge pull request #203 from Infisical/feat/pam-rdp-ad-support
- 5f90606 Merge remote-tracking branch 'origin/main' into feat/pam-rdp-ad-support
- 82180bb Merge pull request #191 from Infisical/feat/pam-rdp-mvp
- 05b05ad Merge remote-tracking branch 'origin/main' into feat/pam-rdp-ad-support
- f2f4f99 fix(release): append windows artifacts to shared draft
- 98e076f chore(pam-rdp): drop unused /target-docker from .gitignore
- e0619d7 chore(pam-rdp): lowercase example account name in help text
- 92102e9 fix(pam-rdp): don't shut down proxy on per-connection gateway close
- 4e8d91e feat(gateway): add AWS authentication (#202)
- 54e921b Merge remote-tracking branch 'origin/main' into feat/pam-rdp-mvp
- ad8bcfc fix(release): make npm-release tolerate skipped validate-tag-branch
- e0a9157 refactor(pam-rdp): use target username for acceptor, autofill via metadata
- 8ffb72b refactor(pam-rdp): consolidate HandleConnection + cargo fmt
- e350e47 feat(pam-rdp): strip virtual channels from MCS Connect Initial
- c2b68da feat(pam-rdp): use account name as RDP acceptor username
- 8c758e2 Merge pull request #200 from Infisical/PAM-189
- 7675e95 feat(pam-rdp): use empty password for acceptor credentials
- 4f0e3e2 refactor(pam-rdp): rename bridge_cgo.go to bridge_cgo_unix.go
- c4ec7db drop haspendingchunks gate for loading secrets from disk
- ff7d648 remove chunk splitting
- e5d2acb docs(pam-rdp): add README for Rust bridge setup
- c292f74 reviews
- 4800b70 Split chunks
- 25e6421 deletePersistedOffset only if chunks cleared
- 3d92a88 move writePersistedOffset into loop
- 4c89708 Merge branch 'main' into PAM-189
- 764e44e Fixed Chunk Reconciliation And upload token persistence
- f501d51 Merge pull request #199 from Infisical/fix/pam-205-keep-recording-on-upload-failure
- 65ae9af address reviews
- 6916ff6 fix(pam-rdp): address PR review feedback
- b1ac506 feat(gateway): direct-to-bucket session recording uploads with reconciliation
- caf9444 fix(pam): tighten startup cleanup behavior
- 13a16d3 fix(pam): keep session recording on upload failure (PAM-205)
- 00d06b2 feat(pam-rdp): thread AD domain through bridge for NTLM CredSSP
- 85c23d2 fix(pam-rdp): address PR bot review comments
- ef74e90 chore(pam-rdp): remove bridge-test harness
- b375428 ci: shorten dry_run description in release workflow
- e22812a fix(pam-rdp): format Safety doc as proper heading for clippy
- 6f3ac49 ci(pam-rdp): build Rust bridge natively on windows-2022 runner
- 7511234 ci(pam-rdp): enable RDP in Windows Docker container images
- 57438fe ci: group goreleaser-windows into the create-release-draft column
- 3291a54 fix(ci): link libwinpthread for windows CGO
- 348de42 ci(pam-rdp): parallelize goreleaser + goreleaser-darwin via shared draft
- cf674f1 chore(pam-rdp): remove rdp-bridge-test dev binary
- 08f0809 ci(pam-rdp): ditch zig for darwin, use macos-latest runner instead
- 3887a5a fix(ci): stub libresolv.tbd for darwin cross-compile
- b15371b fix(pam-rdp): clean up .rdp file on session end + pin zig 0.14.0
- 50e29ce ci(pam-rdp): bump zig to 0.16.0
- 65aaa12 ci(pam-rdp): drop FreeBSD and NetBSD from RDP tier
- eb75047 chore(pam-rdp): strip redundant comments across the PR
- 2b2ccab ci(pam-rdp): build only the staticlib target in cross-compile jobs
- a515cbd ci(pam-rdp): drop windows/arm64 from RDP tier
- 8329f79 fix(pam-rdp): statically bundle zlib into the bridge archive
- 05fcb11 chore: remove accidentally committed local PAM session artifact
- b0aff6c ci(pam-rdp): expand RDP support from 5 to 11 targets (option 1)
- 0c9424d ci(pam-rdp): use zig cc for darwin cross-compile instead of osxcross
- 3bc0a78 Revert skip=docker change; keep only the mingw package name fix
- a3f4408 fix(ci): correct mingw apt package name and skip docker on dry-run
- 9beb635 feat(pam-rdp): wire --reason flag through to RDP access
- 7585478 Merge remote-tracking branch 'origin/main' into feat/pam-rdp-mvp
- 0611a97 ci(pam-rdp): wire RDP bridge static libs into goreleaser release
- 6ef384f feat(pam-rdp): add Windows CGo wrapper and extract shared bridge ops
- 83dc9ab ci(pam): cross-compile RDP bridge static libs across 11 targets
- 492f656 ci(pam): add dry-run option to release workflow
- 8a04e54 ci: retrigger
- 095b900 ci(pam): pin Rust toolchain + add RDP bridge smoke test
- 5e2e46b fix: add .vscode folde...
v0.43.79
Changelog
- d11ce4b Merge pull request #198 from Infisical/feat/PKI-188
- e477959 Address claude-bot comments
- 8afc37d Merge remote-tracking branch 'origin/main' into feat/PKI-188
- f028c0b Merge pull request #188 from Infisical/carlos/fix-cert-agent-slug-resolution-race
- fadeed2 Renamed imported certificate to just certificate
- e0ea7e8 feat(pam): add local dev stack for seeding PAM resources (#195)
- 9cc3dab Address claude-bot comments
- 73ebb0e Cert-agent: support fetching imported certificates
- d17e57b Address claude-bot comments
- 1089a2f Await profile slug resolution before certificate issuance
v0.43.78
Changelog
- 2e62c3b Merge pull request #194 from Infisical/chore/update-pgx-version
- bd51dbc chore: update pgx dependency to v5.9.0 in go.mod and go.sum
- 26af3b1 chore: update pgx dependency to v5.9.0 and improve logging in PostgresProxy by encoding secret key as hex
- 7de65a5 Merge pull request #189 from Infisical/feature/PAM-184
- 5cba6ad Minor fix on SSH reason
- 700752c Address PR comments
- 5e5cab9 Address Claude-bot comments
- d72335b Add a reason field before PAM account access
v0.43.77
v0.43.76
Changelog
- 9faea50 feat(pam): gateway auth for kubernetes (#186)
- fedaa27 feat(pam): add e2e tests for redis (#181)
- 04bf737 Merge pull request #183 from Infisical/feat/gateway-enrollment-tokens
- 32675c0 fix: pass relay name to systemd install, use correct operation name in CallConnectGateway
- feba1f7 fix: use access token for relay selection in enrollment flow
- 2730731 refactor: remove relay selection from enrollment, handled by connect
- 93160e9 feat: use V3 /connect for enrollment-flow gateways, add CallConnectGateway
- 625ec1c fix: use enrolled access token directly instead of re-reading via env var
- 856fc31 fix: check explicit CLI flags instead of env vars for hasExplicitCreds
- 72c78c3 fix: clean up per-gateway config directory on systemd uninstall
- d52b4f8 feat: use V3 token-auth/enroll endpoint for gateway enrollment
- d464016 refactor: rename enroll-method from 'static' to 'token'
- 62e520a feat: scope gateway config files by name for multi-gateway support
- 9b91827 fix: remove legacy auth method references from token flag descriptions
- 4d06796 refactor: use EnrollMethodStatic constant instead of magic string
- 239c865 fix: remove --name flag references from command descriptions and examples
- b602fff feat: idempotent enrollment command for gateway restarts
- 38fe5b8 fix: use 0700 permissions for gateway config directory
- ce33e87 fix: use Geteuid instead of Getuid for effective root check in conf path
- facc596 fix: skip stored token loading when explicit credentials are provided
- ea34f02 fix: persist effective domain during enrollment even without --domain flag
- fe2bc62 feat: gateway name as positional arg with --name deprecated
- bd45820 feat: gateway enrollment token flow