─── Section: SERVER (conditional) ───────────────────────────── showConfigServer is conditional — only meaningful when the process was launched with server/operator env. If none of the server-mode envs are set we short-circuit with a hint, so the block doesn't confuse CLI users.
()
| 1237 | // launched with server/operator env. If none of the server-mode envs are |
| 1238 | // set we short-circuit with a hint, so the block doesn't confuse CLI users. |
| 1239 | func (cli *ChatCLI) showConfigServer() { |
| 1240 | anySet := false |
| 1241 | serverVars := []string{ |
| 1242 | "CHATCLI_SERVER_TOKEN", "CHATCLI_SERVER_TLS_CERT", "CHATCLI_SERVER_TLS_KEY", |
| 1243 | "CHATCLI_BIND_ADDRESS", "CHATCLI_GRPC_REFLECTION", |
| 1244 | "CHATCLI_JWT_SECRET", "CHATCLI_JWT_ISSUER", "CHATCLI_JWT_AUDIENCE", |
| 1245 | "CHATCLI_RATE_LIMIT_RPS", "CHATCLI_RATE_LIMIT_BURST", |
| 1246 | "CHATCLI_FALLBACK_PROVIDERS", "CHATCLI_FALLBACK_ENABLED", |
| 1247 | "CHATCLI_AUDIT_LOG_PATH", |
| 1248 | "CHATCLI_WATCH_DEPLOYMENT", "CHATCLI_WATCH_NAMESPACE", |
| 1249 | "CHATCLI_AIOPS_PORT", |
| 1250 | } |
| 1251 | for _, v := range serverVars { |
| 1252 | if os.Getenv(v) != "" { |
| 1253 | anySet = true |
| 1254 | break |
| 1255 | } |
| 1256 | } |
| 1257 | |
| 1258 | sectionHeader("🖥", "cfg.section.server.title", ColorGray) |
| 1259 | p := uiPrefix(ColorGray) |
| 1260 | if !anySet { |
| 1261 | fmt.Println(p + colorize(i18n.T("cfg.msg.skip_server"), ColorGray)) |
| 1262 | fmt.Println(p + colorize(i18n.T("cfg.msg.server_hint"), ColorGray)) |
| 1263 | sectionEnd(ColorGray) |
| 1264 | return |
| 1265 | } |
| 1266 | |
| 1267 | subheader(p, "cfg.sub.server.grpc") |
| 1268 | kv(p, "CHATCLI_BIND_ADDRESS", envOr("CHATCLI_BIND_ADDRESS")) |
| 1269 | kv(p, "CHATCLI_GRPC_REFLECTION", envBool("CHATCLI_GRPC_REFLECTION")) |
| 1270 | kv(p, "CHATCLI_SERVER_TOKEN", presence(os.Getenv("CHATCLI_SERVER_TOKEN"))) |
| 1271 | kv(p, "CHATCLI_SERVER_TLS_CERT", envOr("CHATCLI_SERVER_TLS_CERT")) |
| 1272 | kv(p, "CHATCLI_SERVER_TLS_KEY", presence(os.Getenv("CHATCLI_SERVER_TLS_KEY"))) |
| 1273 | |
| 1274 | fmt.Println(p) |
| 1275 | subheader(p, "cfg.sub.server.jwt") |
| 1276 | kv(p, "CHATCLI_JWT_SECRET", presence(os.Getenv("CHATCLI_JWT_SECRET"))) |
| 1277 | kv(p, "CHATCLI_JWT_ISSUER", envOr("CHATCLI_JWT_ISSUER")) |
| 1278 | kv(p, "CHATCLI_JWT_AUDIENCE", envOr("CHATCLI_JWT_AUDIENCE")) |
| 1279 | |
| 1280 | fmt.Println(p) |
| 1281 | subheader(p, "cfg.sub.server.rate_limit") |
| 1282 | kv(p, "CHATCLI_RATE_LIMIT_RPS", envOr("CHATCLI_RATE_LIMIT_RPS")) |
| 1283 | kv(p, "CHATCLI_RATE_LIMIT_BURST", envOr("CHATCLI_RATE_LIMIT_BURST")) |
| 1284 | |
| 1285 | fmt.Println(p) |
| 1286 | subheader(p, "cfg.sub.server.fallback") |
| 1287 | kv(p, "CHATCLI_FALLBACK_ENABLED", envBool("CHATCLI_FALLBACK_ENABLED")) |
| 1288 | kv(p, "CHATCLI_FALLBACK_PROVIDERS", envOr("CHATCLI_FALLBACK_PROVIDERS")) |
| 1289 | kv(p, "CHATCLI_FALLBACK_MAX_RETRIES", envOr("CHATCLI_FALLBACK_MAX_RETRIES")) |
| 1290 | kv(p, "CHATCLI_FALLBACK_COOLDOWN_BASE", envOr("CHATCLI_FALLBACK_COOLDOWN_BASE")) |
| 1291 | kv(p, "CHATCLI_FALLBACK_COOLDOWN_MAX", envOr("CHATCLI_FALLBACK_COOLDOWN_MAX")) |
| 1292 | |
| 1293 | fmt.Println(p) |
| 1294 | subheader(p, "cfg.sub.server.watcher") |
| 1295 | kv(p, "CHATCLI_WATCH_DEPLOYMENT", envOr("CHATCLI_WATCH_DEPLOYMENT")) |
| 1296 | kv(p, "CHATCLI_WATCH_NAMESPACE", envOr("CHATCLI_WATCH_NAMESPACE")) |