From 3592a03f150880473b8cb729fdd4cf75be6104f1 Mon Sep 17 00:00:00 2001 From: Brian Fromm Date: Sat, 15 Nov 2025 08:36:13 -0700 Subject: [PATCH] fix: add tokenExpirationTime to quick setup, config init, and config set Fixes issue where token expiration time from config file was not saved to database during initial setup, causing Docker deployments to ignore the tokenExpirationTime setting. Changes: - Add TokenExpirationTime to quick setup initialization (cmd/root.go) - Add TokenExpirationTime to config init command (cmd/config_init.go) - Add token-expiration-time support to config set command (cmd/config_set.go) - Display token expiration time in config cat output (cmd/config.go) All initialization paths now properly read and save token expiration settings from config files, environment variables, and CLI flags. Fixes #3718, #3150, #2554, #2553 Related to #2753 --- cmd/config.go | 1 + cmd/config_init.go | 19 +++++++++++-------- cmd/config_set.go | 2 ++ cmd/root.go | 15 ++++++++------- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/cmd/config.go b/cmd/config.go index 6b739610..170b035b 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -217,6 +217,7 @@ func printSettings(ser *settings.Server, set *settings.Settings, auther auth.Aut fmt.Fprintf(w, "\tAddress:\t%s\n", ser.Address) fmt.Fprintf(w, "\tTLS Cert:\t%s\n", ser.TLSCert) fmt.Fprintf(w, "\tTLS Key:\t%s\n", ser.TLSKey) + fmt.Fprintf(w, "\tToken Expiration Time:\t%s\n", ser.TokenExpirationTime) fmt.Fprintf(w, "\tExec Enabled:\t%t\n", ser.EnableExec) fmt.Fprintln(w, "\nTUS:") fmt.Fprintf(w, "\tChunk size:\t%d\n", set.Tus.ChunkSize) diff --git a/cmd/config_init.go b/cmd/config_init.go index 47d02d8a..dc7b6196 100644 --- a/cmd/config_init.go +++ b/cmd/config_init.go @@ -168,15 +168,18 @@ override the options.`, return err } + tokenExpirationTime := getStringParam(flags, "token-expiration-time") + ser := &settings.Server{ - Address: address, - Socket: socket, - Root: root, - BaseURL: baseURL, - TLSKey: tlsKey, - TLSCert: cert, - Port: port, - Log: log, + Address: address, + Socket: socket, + Root: root, + BaseURL: baseURL, + TLSKey: tlsKey, + TLSCert: cert, + Port: port, + Log: log, + TokenExpirationTime: tokenExpirationTime, } err = d.store.Settings.Save(s) diff --git a/cmd/config_set.go b/cmd/config_set.go index c362e2e1..eff63f1c 100644 --- a/cmd/config_set.go +++ b/cmd/config_set.go @@ -50,6 +50,8 @@ you want to change. Other options will remain unchanged.`, ser.Port, err = getString(flags, flag.Name) case "log": ser.Log, err = getString(flags, flag.Name) + case "token-expiration-time": + ser.TokenExpirationTime, err = getString(flags, flag.Name) case "hide-login-button": set.HideLoginButton, err = getBool(flags, flag.Name) case "signup": diff --git a/cmd/root.go b/cmd/root.go index 0d103b29..cde562bf 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -456,13 +456,14 @@ func quickSetup(flags *pflag.FlagSet, d pythonData) error { } ser := &settings.Server{ - BaseURL: getStringParam(flags, "baseurl"), - Port: getStringParam(flags, "port"), - Log: getStringParam(flags, "log"), - TLSKey: getStringParam(flags, "key"), - TLSCert: getStringParam(flags, "cert"), - Address: getStringParam(flags, "address"), - Root: getStringParam(flags, "root"), + BaseURL: getStringParam(flags, "baseurl"), + Port: getStringParam(flags, "port"), + Log: getStringParam(flags, "log"), + TLSKey: getStringParam(flags, "key"), + TLSCert: getStringParam(flags, "cert"), + Address: getStringParam(flags, "address"), + Root: getStringParam(flags, "root"), + TokenExpirationTime: getStringParam(flags, "token-expiration-time"), } err = d.store.Settings.SaveServer(ser)