From is-it-up
to is-it-recoverable.
A rule is one thing Vigil verifies. You group rules into a rulebook, and a project can run as many rulebooks as it needs. Twenty-three rule types across thirteen categories — every one included on every plan. Pricing scales by how many units you watch, never by which rules you switch on.
Project
One client engagement. Everything you run for them — sites, APIs, mail domains — lives under a single project.
Rulebook
A named, scheduled set of rules pointed at one surface. A project can hold as many rulebooks as it needs — production, staging, mail.
Rule
One thing to verify, chosen from the catalogue below and given its inputs. It passes, warns, fails — or reports that it could not be evaluated.
Every rule answers one of four questions
Is it up?
Liveness and the critical path — the heartbeat every unit gets.
Is it secure?
Encryption, headers, exposure, ports, dependencies and CMS leaks.
Is it delivered?
Mail auth, real end-to-end sends, DNS posture, domain and reputation.
Is it recoverable?
Backup freshness and a real restore, proven — not assumed.
Availability
Is the site actually up, and does the critical path still work?
HTTP liveness
Probes a URL and asserts the status code and a maximum response time, following redirects the way a real browser would. The baseline heartbeat for any site or endpoint.
Synthetic transaction
A scripted HTTP request with assertions on status, body, a json-path value and latency. Confirms a real user journey still returns what it should — not just a 200.
TLS & Certificates
Is the encryption valid, trusted, and not about to expire?
Certificate expiry
Inspects the live certificate and warns well before it expires — no 3 a.m. surprises. Reads even invalid or expired certs so it can tell you why.
HTTP → HTTPS redirect
Confirms plain http:// requests are redirected to https://. Catches the classic misconfiguration where a page stays reachable unencrypted.
TLS grade
Grades transport security: weak protocols and ciphers, hostname/SAN mismatches, incomplete chains, weak or missing HSTS. One letter for how hardened you really are.
Security Headers
Are the browser-level defenses in place?
Security headers
AUTHORIZEDChecks your header policy — HSTS, Content-Security-Policy, nosniff, framing protection, Referrer and Permissions-Policy. Signature-pack driven, so the policy grows without a redeploy.
Cookie policy
Inspects Set-Cookie hardening: Secure over HTTPS, HttpOnly on session cookies, an explicit SameSite, tight scope. Catches sessions that could be stolen or leaked.
CORS policy
Probes cross-origin sharing: reflected or wildcard Allow-Origin, credentialed wildcards, trusted null origins — the misconfigurations that let any site read your API.
Authentication
Is anything that should be protected actually protected?
URL authentication
Classifies a path’s auth posture from its WWW-Authenticate challenge. Flags endpoints that should require auth but don’t, and Basic auth sent over plaintext HTTP.
Exposure
Is anything sensitive accidentally reachable?
Exposed paths
AUTHORIZEDSignature-pack-driven probe for leaked paths — .env files, .git directories, backups, config dumps. Confirms a real leak by content signature, not a bare 200, so SPAs don’t false-alarm.
Network
What’s listening that shouldn’t be?
Open ports
AUTHORIZEDA TCP-connect scan of a curated port set; flags reachable sensitive or admin services — databases, management consoles — that aren’t on your allow-list.
Email & DNS
Will your mail be delivered — and can attackers spoof your domain?
Email auth (SPF / DMARC)
Resolves and validates SPF and DMARC for a mail domain — the records that stop others spoofing your email and keep your own messages out of spam.
Email delivery (end-to-end)
Actually sends a message and confirms receipt via the provider’s activity API inside a time window. The truest test of "can we send mail right now?"
DNS security policy
Audits the full posture: SPF without +all, an enforcing DMARC policy, optional DKIM selectors, plus CAA, MTA-STS and TLS-RPT. The deep dive behind the basic check.
Domain
Is the domain itself safe and yours?
Domain expiry
Checks registration expiry via RDAP and warns before it lapses — because an expired domain is an instant, total outage, and a hijack risk.
Subdomain takeover
Resolves the CNAME chain and flags dangling delegations pointing at unclaimed third-party services — GitHub Pages, S3, Heroku, Azure, Fastly. A common hijack route.
Content Integrity
Is the page you serve the page you think you’re serving?
Mixed content & sub-certs
Detects insecure http:// sub-resources on an HTTPS page, and independently validates the certificates of external sub-resources. Catches "padlock but not really secure".
Content integrity
Flags cross-origin scripts and styles missing SRI, outdated client-side JS libraries, and login forms submitting over plain HTTP. Guards against tampered or stale third-party code.
CMS / WordPress
Is your WordPress leaking the keys to the kingdom?
WordPress / WooCommerce probes
AUTHORIZEDProbes for user enumeration, an exposed debug.log, an open xmlrpc and version disclosure — the most common WordPress leaks — all confirmed by content signature.
Backups
If today went wrong, could you actually recover?
Backup freshness
Compares the last backup heartbeat against a freshness window, so a silently-failed job becomes a visible alert instead of a nasty discovery mid-incident.
Backup restore test
Restores an artifact into a throwaway database and asserts real integrity — expected tables exist, each has the expected rows, the artifact isn’t stale. Proves it is restorable.
Supply Chain
Are the components you ship free of known vulnerabilities?
Dependency / CVE scan
Scans your deployed container image via Trivy and surfaces CVEs at or above a severity threshold you choose. Turns "which images have known criticals?" into a monitored answer.
Reputation
Is the world treating your domain as trustworthy?
Reputation
Checks the domain against DNS domain-blocklists and flags any listing — an early warning that deliverability and trust are at risk.
Four rules look inward. They only run where you’ve proven ownership.
Security headers, exposed paths, open ports and the WordPress probes are intrusive by nature — so Vigil will not add them to a rulebook until the domain has been verified as yours. The other nineteen rules need nothing but a URL.
23 rule types. One severity. Whole portfolio in three seconds.
Every rule on every plan, from your first unit. Point a rulebook at a URL and it starts working on schedule.