Turn the status page into a full status page generator
Components can be put in groups and given public names. Public incidents carry posts written for customers (the internal timeline stays internal), the components they affect, and a page for each incident plus paged history. Scheduled maintenance has its own window, shows affected components as under maintenance, and is announced when scheduled, started, ended or canceled. Branding (title, logo, accent checked for contrast, contact link, footer) and a custom domain that serves only the status page. Visitors follow by RSS, by confirmed email, or by webhook that must answer a test request. Admin UI for all of it, tests, README and design notes. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b4fd31a182
commit
cf4d5b3ce2
12 files changed
+2403
-147
No files matched your search
@@ -30,15 +30,17 @@ type Monitor struct {
|
||||
Target string `json:"target"` // URL, host:port, hostname, or host[:port] for tls
|
||||
IntervalS int `json:"intervalS"`
|
||||
TimeoutS int `json:"timeoutS"`
|
||||
Retries int `json:"retries"` // failures in a row before it is down (default 2)
|
||||
Expect string `json:"expect"` // http: accepted status, e.g. "200-299" (default)
|
||||
Keyword string `json:"keyword"` // http: text the body must contain
|
||||
WarnDays int `json:"warnDays"` // tls: fail when the certificate expires within this many days (default 14)
|
||||
GraceS int `json:"graceS"` // heartbeat: extra time allowed past the interval
|
||||
Token string `json:"token"` // heartbeat: the secret in the ping URL
|
||||
PolicyID string `json:"policyId"` // escalation policy for the alert it raises
|
||||
Severity string `json:"severity"` // alert severity (default critical)
|
||||
Public bool `json:"public"` // shown on the status page
|
||||
Retries int `json:"retries"` // failures in a row before it is down (default 2)
|
||||
Expect string `json:"expect"` // http: accepted status, e.g. "200-299" (default)
|
||||
Keyword string `json:"keyword"` // http: text the body must contain
|
||||
WarnDays int `json:"warnDays"` // tls: fail when the certificate expires within this many days (default 14)
|
||||
GraceS int `json:"graceS"` // heartbeat: extra time allowed past the interval
|
||||
Token string `json:"token"` // heartbeat: the secret in the ping URL
|
||||
PolicyID string `json:"policyId"` // escalation policy for the alert it raises
|
||||
Severity string `json:"severity"` // alert severity (default critical)
|
||||
Public bool `json:"public"` // shown on the status page
|
||||
Group string `json:"group"` // status page component group id; empty for none
|
||||
PublicName string `json:"publicName"` // name on the status page; empty to use Name
|
||||
AllowPrivate bool `json:"allowPrivate"`
|
||||
Enabled bool `json:"enabled"`
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user