92efb8e270
keyCache.Invalidate existed but had zero callers, and refresh silently swallowed store errors — a revoked key kept working off the stale cache for as long as the DB stayed down. Invalidate now clears the key set (not just the timestamp) and is wired through userInvalidatingStore, a decorator at the composition root that drops the cache on AddUser/UpdateUser/DeleteUser/ImportData. Transient refresh errors still retain the previous key set so a DB blip can't lock every admin out, but a post-revocation refresh failure denies. Refresh errors are logged. First tests for the SSH auth gate. Also suppresses per-request HTTP logging when the local TUI owns the terminal — request logs scribbled over the alt screen.
62 lines
2.6 KiB
Modula-2
62 lines
2.6 KiB
Modula-2
module gitea.lerkolabs.com/lerkolabs/uptop
|
|
|
|
go 1.26.4
|
|
|
|
require (
|
|
github.com/charmbracelet/bubbles v0.21.1-0.20250623103423-23b8fd6302d7
|
|
github.com/charmbracelet/bubbletea v1.3.10
|
|
github.com/charmbracelet/harmonica v0.2.0
|
|
github.com/charmbracelet/huh v1.0.0
|
|
github.com/charmbracelet/lipgloss v1.1.0
|
|
github.com/charmbracelet/ssh v0.0.0-20250826160808-ebfa259c7309
|
|
github.com/charmbracelet/wish v1.4.7
|
|
github.com/lib/pq v1.11.1
|
|
github.com/lrstanley/bubblezone v1.0.0
|
|
github.com/mattn/go-isatty v0.0.20
|
|
github.com/mattn/go-sqlite3 v1.14.33
|
|
github.com/miekg/dns v1.1.72
|
|
github.com/prometheus-community/pro-bing v0.8.0
|
|
golang.org/x/crypto v0.52.0
|
|
gopkg.in/yaml.v3 v3.0.1
|
|
)
|
|
|
|
require (
|
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
|
|
github.com/atotto/clipboard v0.1.4 // indirect
|
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
|
github.com/catppuccin/go v0.3.0 // indirect
|
|
github.com/charmbracelet/colorprofile v0.3.1 // indirect
|
|
github.com/charmbracelet/keygen v0.5.3 // indirect
|
|
github.com/charmbracelet/log v0.4.2 // indirect
|
|
github.com/charmbracelet/x/ansi v0.10.1 // indirect
|
|
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
|
|
github.com/charmbracelet/x/conpty v0.1.0 // indirect
|
|
github.com/charmbracelet/x/errors v0.0.0-20240508181413-e8d8b6e2de86 // indirect
|
|
github.com/charmbracelet/x/exp/strings v0.0.0-20240722160745-212f7b056ed0 // indirect
|
|
github.com/charmbracelet/x/input v0.3.4 // indirect
|
|
github.com/charmbracelet/x/term v0.2.1 // indirect
|
|
github.com/charmbracelet/x/termios v0.1.1 // indirect
|
|
github.com/charmbracelet/x/windows v0.2.0 // indirect
|
|
github.com/creack/pty v1.1.24 // indirect
|
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
|
|
github.com/go-logfmt/logfmt v0.6.0 // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
|
github.com/mattn/go-localereader v0.0.1 // indirect
|
|
github.com/mattn/go-runewidth v0.0.16 // indirect
|
|
github.com/mitchellh/hashstructure/v2 v2.0.2 // indirect
|
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
|
github.com/muesli/cancelreader v0.2.2 // indirect
|
|
github.com/muesli/termenv v0.16.0 // indirect
|
|
github.com/rivo/uniseg v0.4.7 // indirect
|
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
|
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
|
|
golang.org/x/mod v0.35.0 // indirect
|
|
golang.org/x/net v0.55.0 // indirect
|
|
golang.org/x/sync v0.20.0 // indirect
|
|
golang.org/x/sys v0.45.0 // indirect
|
|
golang.org/x/text v0.37.0 // indirect
|
|
golang.org/x/tools v0.44.0 // indirect
|
|
)
|