Repository navigation
Releases
Releases · gkdis6/opsgate
v0.7.0
AI proposes. Your passkey runs it. This release makes notifications easy to set up and check, especially on iPhone.
Highlights
- Install from any page. Every opsgate page (approval, choices, sign-in, admin) links the inbox manifest and icon, so Add to Home Screen on any of them installs the same app, which opens the inbox. iPhone delivers Web Push only to apps added to the Home Screen.
- iPhone hint. Opened in a Safari tab on iPhone or iPad, the inbox explains that notifications need Add to Home Screen.
- Test notification. Send a test notification / 테스트 알림 보내기 in the inbox pushes to every device of your account, the inbox shows how many devices have notifications on, and the server log records how many devices the push service accepted (counts only).
Upgrade notes
- Approval, sign-in and admin pages now allow
manifest-src 'self'in their CSP; they still run no script. - Open the inbox once on each device so the updated service worker installs.
Full list: CHANGELOG.
Changelog
v0.6.0
AI proposes. Your passkey runs it. This release makes it easy to move from a computer to the phone that holds your passkey.
Highlights
- Open on your phone. Approval pages (while waiting), the approval inbox and choices pages show Open on your phone / 폰에서 열기 with a QR code of the same page. Read an alert on a computer, scan, and approve with the passkey on your phone. The link holds no secret; the phone signs in as the same user.
- Passkey invites as QR codes.
opsgate passkey invitedraws the invite as a QR code on a terminal, or with-qr(for examplekubectl execwithout-t), so you can register a passkey on your phone by scanning the screen. Anyone who sees the code can use the invite. - Setup ends on the phone.
opsgate init -recoverfinishes with a QR code of the inbox, where you enable notifications.
Verify the release as described in deployment. Full list: CHANGELOG.
Changelog
v0.5.0
AI proposes. Your passkey runs it. opsgate is a self-hosted MCP server for Kubernetes with human-in-the-loop approval. This release closes the three gaps between "approved" and "fixed".
Highlights
- Recovery check. After a web-approved
k8s_rollout_restart,k8s_restore_image,k8s_scaleor controller-ownedk8s_delete_pod, opsgate watches the workload for up to 3 minutes with the conditionkubectl rollout statususes. The approval page, inbox,approval_statusand audit log report Recovered, Not recovered yet (with counts and a reason such asCrashLoopBackOff) or unknown, and a push notification names only the result. - Web approval by default. Builtin auth now always defaults to web-only approval, with or without a
mode, so an AI client cannot approve its own change unless you opt in to in-client elicitation. - Phone recovery in one step.
opsgate init -recover "apps/*"writes the server and watch configuration (write scope, restart and image-restore allowlists, Web Push, signed inbox alerts) and prints every remaining command. The reference manifests mount the inbox and webhook key Secrets as optional. - Easier to find. Listed in the official MCP Registry as
io.github.gkdis6/opsgate, with a documentation site at https://gkdis6.github.io/opsgate/,llms.txt, a comparison with other Kubernetes MCP servers and an FAQ.
Upgrade notes
- A configuration with builtin auth and no
modeswitches from in-client elicitation to web approval. Setapproval.web: falseorapproval.require_web: falseto keep the old behavior. - Notification text now comes from the signed-in
/approvals/latest. Open the opsgate inbox once on each device so the updated service worker installs.
Verify the release as described in deployment. Full list: CHANGELOG.
Changelog
- 9fbc63c approval: report whether the service recovered after an action
- c3f6206 config: default to web approval with builtin auth
- 750fb50 docs: lead with the approval card concept
- 55960b8 docs: make opsgate findable by people and AI search
- b607365 init: set up phone recovery in one step
- c18b3e5 release: prepare v0.5.0
v0.4.0
Changelog
- c96706a Remove the experimental Dev provider
- b5329c8 action: one catalog for approval links, with the suggestion source
- 635517a approval: inbox page and Web Push notifications
- ea9a3a3 approval: offer an undo link after reversible actions
- dd6e3f4 approval: open the waiting approval from a notification, no duplicates
- 5f028c3 approval: run a chat-requested write as soon as it is approved
- 67d3062 docs: describe shipped approval features in the README
- 40e801c docs: lead README and roadmap with the problem opsgate solves
- 9c4eec1 docs: mark Dev provider removal done in the roadmap
- a901102 host: drop an unused input type
- 9519be2 host: optional provider for systemd units and Docker containers
- 407c003 release: prepare v0.4.0
- fbdd2ea remediation: offer the actions that fit each failure
- a5bfb53 test: format host options test for Go 1.26 gofmt
- 2e1e6fb watch: route alerts by namespace groups
- 61a5c74 watch: send alerts to the approval inbox and push them to the phone
v0.3.0
v0.2.1
Changelog
- 7867545 analyzer: mask before encoding, bound retained bytes, report timing
- 3bd9a08 ci: release the tag that triggered the workflow
- 94a75c9 deploy: give the API token only to the analyzer's reader container
- c310ccb docs: add the analyzer to the architecture and roadmap
- 62e7369 docs: document v0.2.1 security fixes and known limitations
- 2f08b34 kube: require a ready Pod running the image before offering a restore
- b6fe721 release: prepare v0.2.1
- aefc782 watch: mask every cluster-controlled alert field