Skip to content

Releases: nikicat/secrets-dispatcher

v0.6.0

Choose a tag to compare

@nikicat nikicat released this 21 Jul 12:28
b9908ce

What's Changed

  • demo: permanent install/uninstall recordings via host-side VNC capture + QMP input by @nikicat in #24
  • docs: actualize project docs, drop stale .planning tree by @nikicat in #25

Full Changelog: v0.5.0...v0.6.0

v0.5.0

Choose a tag to compare

@nikicat nikicat released this 20 Jul 12:53
618a48b

What's Changed

  • fix(proxy): track approval requests per-request, not per-sender (#6) by @nikicat in #10
  • build: add make install target for the documented from-source flow by @nikicat in #11
  • feat(proxy): forward org.freedesktop.Secret.Prompt to the backend by @nikicat in #13
  • feat(service): GNOME takeover — provider detection + secrets-only gnome-keyring demotion by @nikicat in #14
  • feat: make plain go install ship the full web UI by @nikicat in #15
  • docs: onboarding & Ubuntu e2e testing plan by @nikicat in #12
  • PR C: reversible trial (try), --dry-run plan, doctor status by @nikicat in #16
  • test(e2e): run the Tier-2 GNOME VM against Ubuntu 26.04 too by @nikicat in #17
  • Record product demos in the Tier-2 GNOME VM (make demo) by @nikicat in #18
  • service: use gopass-secret as the gopass backend (drop legacy standalone) by @nikicat in #19
  • fix(notification): don't wedge signal loop on undrained closed channel by @nikicat in #20
  • feat(service): colorize try / try --dry-run output by @nikicat in #21
  • refactor(e2e): decompose fast.sh into setup + gate functions by @nikicat in #22
  • ci(demos): show recordings in the run summary, drop the PR comment by @nikicat in #23

Full Changelog: v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@nikicat nikicat released this 14 Jul 16:20
0dc0103

What's Changed

  • feat: add process.args trust-rule matcher for interpreter-run scripts by @nikicat in #9

New Contributors

Full Changelog: v0.3.1...v0.4.0

v0.3.1 — Security follow-ups & AUR packaging

Choose a tag to compare

@nikicat nikicat released this 10 Jul 16:46
81218b3

Patch release: hardening follow-ups from the v0.3.0 security review, a dependency security bump, and automated AUR publishing.

Fixes

  • Malformed input now fails loudly at the entry point — gpg-sign requests with an empty commit_object are rejected with 400 (nothing to sign, nothing to bind the approval display to), and JWTs without a jti are rejected instead of silently sharing "" as a single-use nonce, which would have voided replay protection after the first redemption.
  • Notification escaping no longer mangles quotes — bodies escape only the markup-significant & < >, so commit subjects with apostrophes render correctly in dunst/mako/GNOME Shell; the v0.3.0 anti-spoofing property is unchanged.

Security

  • golang.org/x/crypto bumped v0.48.0 → v0.54.0, clearing all 13 open Dependabot advisories — mostly in ssh/ssh/agent (key/agent constraint enforcement, @revoked bypass, U2F presence-check bypass, several DoS vectors), which the SSH agent proxy uses directly.

Packaging

  • Releases now publish to the AUR automatically — the release workflow renders the PKGBUILD template, test-builds it in an Arch container, and pushes to the AUR. workflow_dispatch can republish an existing tag after a template fix.

v0.3.0 — Security hardening

Choose a tag to compare

@nikicat nikicat released this 08 Jul 14:18
ca1605d

Security review follow-up: seven findings fixed (see per-commit detail).

Fixes

  • GPG signing oracle — the approval prompt/notification/UI now derive the displayed author/committer/message from the exact commit bytes being signed (WYSIWYS); client display fields are discarded.
  • Login token amplification — the session cookie is now an independent, revocable server-side session ID (never the master token), and the login link is single-use.
  • Batch GetSecrets — every item in a batch is authorized, not just the first; deny fires on any in-scope item, approve/auto-approve only when all items are covered.
  • Ephemeral auto-approve — keyed on the non-spoofable invoker /proc/exe, not the spoofable comm.
  • trusted_signers silent path — gated on the request arriving through our own gpg-sign thin client, so forged repo/file fields can't obtain a silent signature. Any-ancestor exe_path matching (e.g. an editor) is preserved.
  • process.unit matcher — now matches the caller's real systemd unit (via GetUnitByPID); name documented as advisory (spoofable comm).
  • Notification markup injection — all client-controlled fields are HTML-escaped in the notification body.

Breaking / behavior changes

  • API wire rename: sender_info.unit_namesender_info.invoker_name, plus a new systemd_unit field. Affects only custom clients of the local API; the bundled web UI is updated.
  • A daemon restart now invalidates existing browser sessions (in-memory sessions) — re-login required.
  • unit: trust rules now match the real systemd unit rather than the process comm.

v0.1.3

Choose a tag to compare

@nikicat nikicat released this 11 May 11:33
c6ca976

Changes since v0.1.2

  • fix: honor ephemeral auto-approve rules for gpg_sign requests. HandleGPGSignRequest only consulted permanent TrustedSigners before falling through to a desktop notification, so "approve and auto-approve" added a rule that never matched subsequent gpg_sign calls. Bursts of signing (e.g. kubelogin rotating its token cache) silently failed any time the user missed a notification within the 5-minute timeout. Manager now exposes CheckAutoApproveRules, and the handler consults it before opening a notification.
  • fix: strip " (deleted)" suffix from /proc/PID/exe so trust rules match after package upgrades. Linux appends the suffix to the readlink target when the on-disk binary has been replaced while the process is still running, which silently broke exe-based trust rules for long-running daemons (e.g. EDS) after system updates.
  • feat: propagate caller context to all upstream D-Bus calls for slow-upstream notifications, so prompts on slow keyring/gpg unlocks identify the triggering client.

v0.1.2

Choose a tag to compare

@nikicat nikicat released this 12 Mar 19:31
8dcdcac

Changes since v0.1.1

  • Add release version badge to README
  • Add GitHub Actions release workflow for pre-built linux/amd64 and linux/arm64 binaries
  • Remove Homebrew and Grafana dashboard from promotion plan

v0.1.1

Choose a tag to compare

@nikicat nikicat released this 12 Mar 19:29
adbcd6e

Changes since v0.1.0

  • Add MIT license file
  • Add example configuration file
  • Add Go Report Card and release badges to README
  • Add SECURITY.md, CONTRIBUTING.md, issue templates
  • Add search-relevant phrases to README for discoverability
  • Add GO_LDFLAGS variable to Makefile for distro packaging
  • Add GitHub Actions release workflow for pre-built binaries
  • Update GitHub repo description and topics
  • Unpin Deno and Playwright (denoland/deno#32600 fixed)