You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Naive command parsing — execute_shell_command/1 uses String.split(cmd_string) (lib/caddy/server/external.ex:358), so quoted arguments break. Support {executable, args} tuples in config :caddy, commands: or shell out via sh -c.
Coarse health classification — only econnrefused maps to :stopped (lib/caddy/server/external.ex:302); timeouts and ehostunreach land in :unknown with no distinction and no retry/backoff policy.
No drift policy — check_sync_status/0 exists but is on-demand only. Add an optional periodic drift check and a configurable policy:
Problems in
Caddy.Server.ExternalNaive command parsing —
execute_shell_command/1usesString.split(cmd_string)(lib/caddy/server/external.ex:358), so quoted arguments break. Support{executable, args}tuples inconfig :caddy, commands:or shell out viash -c.Coarse health classification — only
econnrefusedmaps to:stopped(lib/caddy/server/external.ex:302); timeouts andehostunreachland in:unknownwith no distinction and no retry/backoff policy.No drift policy —
check_sync_status/0exists but is on-demand only. Add an optional periodic drift check and a configurable policy:Health check cost —
Api.health_check/0fetches the entire/config/as a liveness probe. Caddy's cheapGET /would be lighter at scale.