headscale/hscontrol
Kristoffer Dalby f20bd0cf08 node: implement disable key expiry via CLI and API
Add --disable flag to "headscale nodes expire" CLI command and
disable_expiry field handling in the gRPC API to allow disabling
key expiry for nodes. When disabled, the node's expiry is set to
NULL and IsExpired() returns false.

The CLI follows the new grpcRunE/RunE/printOutput patterns
introduced in the recent CLI refactor.

Also fix NodeSetExpiry to persist directly to the database instead
of going through persistNodeToDB which omits the expiry field.

Fixes #2681

Co-authored-by: Marco Santos <me@marcopsantos.com>
2026-02-20 21:49:55 +01:00
..
assets editorconfig: add basic editor config 2025-12-16 10:12:36 +01:00
capver capver: regenerate from docker tags 2026-02-07 08:23:51 +01:00
db node: implement disable key expiry via CLI and API 2026-02-20 21:49:55 +01:00
derp all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
dns all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
mapper all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
policy policy/v2: add policy unmarshal tests for bracketed IPv6 2026-02-20 21:49:21 +01:00
routes all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
state node: implement disable key expiry via CLI and API 2026-02-20 21:49:55 +01:00
templates Link to headscale.net for docs 2026-01-16 14:54:04 +01:00
types all: apply golangci-lint 2.9.0 fixes 2026-02-19 08:21:23 +01:00
util all: apply golangci-lint 2.9.0 fixes 2026-02-19 08:21:23 +01:00
app.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
auth.go node: implement disable key expiry via CLI and API 2026-02-20 21:49:55 +01:00
auth_tags_test.go state: fix expiry handling during node tag conversion 2026-02-04 15:44:55 +01:00
auth_test.go node: implement disable key expiry via CLI and API 2026-02-20 21:49:55 +01:00
debug.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
grpcv1.go node: implement disable key expiry via CLI and API 2026-02-20 21:49:55 +01:00
grpcv1_test.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
handlers.go all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
metrics.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
noise.go all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
oidc.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
oidc_template_test.go make tags first class node owner (#2885) 2025-12-02 12:01:25 +01:00
oidc_test.go oidc: make email verification configurable 2025-12-18 11:42:32 +00:00
platform_config.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
poll.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
tailsql.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
templates_consistency_test.go Link to headscale.net for docs 2026-01-16 14:54:04 +01:00