boban pushed to feat/v1-foundation at boban/clusev
-
bf4366dfc9 harden(opsec): disguise honeypot action labels in the audit log
boban pushed to feat/v1-foundation at boban/clusev
-
930f78efbd polish(ui): in-system design refinements from the design review
boban pushed to feat/v1-foundation at boban/clusev
-
0943d56201 harden(update): verify the self-update commit signature before the root re-exec/build
-
46924135e6 perf(fleet,wg) + i18n(dashboard,update) + a11y(btn): re-audit design/perf cleanups
-
6927987a0d harden(fleet,infra): enforce credential revocation on the poller + prod container hardening
- Compare 3 commits »
boban pushed to feat/v1-foundation at boban/clusev
-
bc2f2b527f fix(security): close file-read RBAC gap + fail2ban arg-injection + update/HMAC hardening
boban pushed to feat/v1-foundation at boban/clusev
-
c914790a46 harden honeypot/ban path: close evasions, unmask & audit-DoS vectors
boban pushed to feat/v1-foundation at boban/clusev
-
f804e25a66 refactor(release): single stable channel — cut internal release candidates (-rc), remove all beta wording
boban pushed to feat/v1-foundation at boban/clusev
-
e6f6e7f8a4 fix(dev): read VITE_HMR_HOST from the .env FILE (loadEnv), restoring dev HMR assets
boban pushed to feat/v1-foundation at boban/clusev
-
c63af35194 feat(honeypot): surface login attempts in the dashboard (threats KPI, tried-credentials, sidebar badge)
boban pushed to feat/v1-foundation at boban/clusev
-
473fa8c0d0 feat(honeypot): trap fake-login submits + capture the attempted credentials
boban pushed to feat/v1-foundation at boban/clusev
-
6c70d885f7 feat(honeypot): realistic styled decoy pages (WordPress, phpMyAdmin, generic login)
boban pushed to feat/v1-foundation at boban/clusev
-
1b3e058de6 fix(honeypot): route non-existent .php probes through nginx to the trap
boban pushed to feat/v1-foundation at boban/clusev
-
72de7b9a22 fix(rbac,honeypot): gate audit-retention + email sendTest; honeytoken scans JSON body
-
e602320c9d fix(rbac,honeypot): gate settings/release surfaces + per-install canaries, no reflected/auth-user honeypot bans
-
e58d1a4b07 feat(rbac): hide the system-update trigger behind manage-fleet too
-
8b34ed8ef5 feat(rbac): hide gated controls in the UI with @can (operator/viewer see no dead buttons)
-
4f9699d470 feat(honeypot): threats dashboard — probe feed, KPIs, banned-IP management
- Compare 11 commits »
boban pushed to feat/v1-foundation at boban/clusev
-
3c25f097fa fix(security): close the TOCTOU in the symlink-safe status write (Codex review)
-
a6176341e2 fix(security): keep internal IPs out of shipped code and docs/ out of the public image
-
d7156ddc96 fix(security): harden the update path — signed sentinel, symlink-safe root writes, .env 0600
- Compare 3 commits »
boban pushed to feat/v1-foundation at boban/clusev
-
8a814337ff fix(install): validate release-image digests as ghcr.io/<owner>/<name>@sha256:<64-hex>
-
4af1633ca9 fix(install): harden release-image resolver — safe build fallback, ghcr digest allowlist, lint + CI coverage
-
ace3af5849 feat(install): pull promoted image on public installs via release-images.lock
-
a3cc563883 feat(install): resolve prod image from release-images.lock (pull vs build)
- Compare 4 commits »
boban pushed to feat/v1-foundation at boban/clusev
-
383f2fe74a feat(release): remove the no-op channel selector + dead beta→stable promotion (single stable channel)
boban pushed to feat/v1-foundation at boban/clusev
-
10486672a5 ci: build+push prod images, gated auto-promote to public
boban pushed to feat/v1-foundation at boban/clusev
-
fff2d017be build: export-ignore the promote.sh test scripts too (they invoke the ignored script)
-
4e4023f12d feat(release): collapse to a single stable channel
-
176b132da9 chore(release): remove every 'gitea' reference from the public tree (comments, test fake-host, redundant ignore)
-
54518c1f30 feat(release): string leak-guard in promote.sh + shell test
-
e02f4d036a build: export-ignore the full dev-release bridge + its tests from the public tree
- Compare 5 commits »
boban pushed to feat/v1-foundation at boban/clusev
-
72b82df7a1 fix(update): surface update failures instead of spinning forever
boban pushed to feat/v1-foundation at boban/clusev
-
6348d269a5 docs: fix stale first-login copy (random initial password, rotation optional)
boban pushed to feat/v1-foundation at boban/clusev
-
d08a8a3866 docs: rename the generated password "one-time" → "initial" (rotation is optional)