Ping-Body-Limit Response Header
===============================
After the discussion in #32, Healthchecks added a response header that
sends the instances configured ping body limit.
- If the instance sent the header and user did not pass a limit via
command-line flags, value in the header is used.
/!\ This value is currently capped to 10MB by runitor.
Underlying ring buffer implementation used for tailing the output
eagerly allocates memory. If not capped, it can become a DoS
vector from untrusted instances or in resource constrained runtime
environments (VMs, containers, embedded systems, etc)
- If the user passed a limit and the instance sent its limit with the
header, the lower of the two is used.
- If the instance doesn't send this header, and user doesn't specify an
explicit value, we still default to 10KB.
Runitor discovers this limit with from the response of start ping. If
you're not sending start pings, then currently you can't use this
instance configuration discovery feature.
Request Headers
===============
Requested in issue #30, the use case is for Healthchecks instance behind
reverse proxies that require additional authentication headers.
Headers are passed with `-req-header` flag in "key: value" format. This
flag can be repeated for multiple headers. In case of multiple instances
of same key header, last one is sent. Header key MUST comprise US-ASCII
alpha numeric characters and _some_ punctuation marks, defined as "token
chars" in RFC 7230 Section 3.2.6
Example:
% runitor -uuid 123-abc \
-api-url https://example.com/hc \
-req-header 'CF-Access-Client-Id: c0ffee.access' \
-req-header 'CF-Access-Client-Secret: fa15edecaf' \
-- /opt/bin/do-things.sh
Go 1.18
=======
Due to use of generics, now the minimum Go version is 1.18