Scheduler: refresh DNS provider domain lists on interval (#69)

The host scheduler already checked wildcard cert expiry; add the second half of
the scheduler controller — DnsProvider.refreshAllDomains() re-syncs every
provider's domain list (get -> updateDomains, per-provider errors isolated),
scheduled 30s after start and every 24h alongside the cert check.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-11 11:31:03 -04:00
parent c19cd2243e
commit 6465e3d9f5
2 changed files with 29 additions and 0 deletions
+22
View File
@@ -149,6 +149,28 @@ class DnsProvider extends Table{
return out;
}
// Re-sync every configured provider's domain list from its API. Mirrors the
// manual /dns/domain/refresh/:item route (get -> updateDomains) across all
// providers; used by the host scheduler. Never throws — one bad provider
// (e.g. a revoked key) must not abort the rest.
static async refreshAllDomains(){
let ids;
try{
ids = await this.list();
}catch(error){
console.error('refreshAllDomains: could not list providers', error.message);
return;
}
for(let id of ids){
try{
let provider = await this.get(id);
await provider.updateDomains();
}catch(error){
console.error('refreshAllDomains: provider', id, error.message);
}
}
}
get api(){
return new this.constructor.Provider(this);
}