The deadline nobody wrote down

· Proyecto: VR9 Infra

Every stack has one. A certificate issued ninety days ago by a renewal job that quietly stopped. A domain registered on a card that expired before it did. A staging box someone promised to shut down in March. None of it is a bug. It just has a date on it, and nobody is looking at the date.

VR9 Infra is an inventory for servers, sites and services. In August we taught it to read the dates itself.

Ask the source, not the spreadsheet

A site record in Infra has a domain and, usually, a certificate. Both have an expiry, and both are public. The certificate hands its own notAfter to anyone who completes a TLS handshake on port 443. The domain's registration dates sit in RDAP, the JSON successor to WHOIS.

So a background worker does what a browser or a registrar would do. Every twelve hours it opens a TLS connection to the host, reads the certificate, closes. Once a day it asks the registry's RDAP endpoint about the domain, reads the expiry, stops.

Finding that endpoint is the one piece of plumbing worth describing. IANA publishes a bootstrap file, dns.json, that maps each zone that offers RDAP to the server responsible for it. The worker fetches that file, keeps it in memory, and looks up the zone of each domain it checks. There is no list of registrars to maintain and no account with any of them.

Empty beats wrong

Not every registry talks. The .ru zone, for one, publishes nothing over RDAP. The tempting move is to estimate: parse a WHOIS page, extrapolate from the creation date, show something.

We show nothing. An empty field is a field you know to check by hand. A field with a plausible wrong date is a field you will trust until the morning the site is gone. The error from a failed check is stored on the record, so the worker knows why it has nothing, but it is never rendered as a date.

Your own records come first. If you have already entered a renewal event of the same kind on the same site, and its date falls within 14 days of what the worker found, the automatic date is hidden. One deadline, not two versions of it. Outside that window both are shown, because a difference of a month between what you wrote down and what the registry says is exactly the thing worth seeing.

An automatic date is not editable. Two things are: "Don't remind" postpones the reminder until the expiry date the worker knows, and "Create your own reminder" opens the usual event form with that date filled in. Renew the certificate, and the next twelve-hour check reads a new notAfter, the postponement no longer applies, and the reminder for the new date returns on its own.

At most five emails per deadline

Reading a date is the easy half. The hard half is telling someone without becoming noise.

Infra sends one digest a day, at 09:00 in the company's own timezone, listing what crosses a threshold: 30 days out, then 14, 7, 3 and 1. Five touches per deadline, never more. A day when nothing crosses a threshold sends no email at all, so the letter's existence is the alert. Browser push carries the same digest for people who live outside their inbox, and it asks for permission only when you flip the switch, not on page load.

Recipients are a setting on the company, starting with whoever created it. Anyone on the list can leave with one click from inside the email, no login required.

Nothing is deleted when Pro ends

Infra has a free Start plan and a Pro plan at $9.99 a month or $99 a year. When Pro ends, records above the free limit move to the Archive, and not immediately: there is a three-day grace, and the records you had before subscribing are the ones that stay active. Archived records keep their links, access entries and history, and the lists say what happened, so nothing looks lost.

Subscribe again and everything comes back on its own, with the same twelve-hour certificate check and the same daily RDAP read picking up where they stopped.

Try VR9 Infra

← Todos los artículos