danielmichaels / danielmichaels/gecko

WHOIS/RDAP scanner + domain-lifecycle assessor

Open
#72 0 comments 0 reactions 0 assignees View on GitHub
assessor enhancement scanner
Dominant language
Go
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Part of #61 · Tier 5 · `scanner` `assessor` · Effort: **M**

New passive scanner + domain-lifecycle assessor via RDAP (with WHOIS fallback). Not in the original wishlist; high-value — expiring/unlocked domains are an outage + takeover risk.

### Scanner
- RDAP query (bootstrap to the right registry; WHOIS fallback) → registration/creation/expiry dates, registrar, registrar lock status (`clientTransferProhibited`, `clientDeleteProhibited`, `clientUpdateProhibited`), registry DNSSEC delegation flag, registry-level NS set.
- New projection table for domain-registration facts.

### Assessor
- **Domain-expiry warnings** — tiered (critical near expiry → outage/takeover; high/medium further out).
- Missing registrar transfer/delete lock.
- Registry NS set vs in-zone NS mismatch (delegation drift).

### ⚠️ Cost flag
External RDAP/WHOIS. Rate-limited per registry; cache aggressively (registration data changes slowly — long TTL). Apex domains only (skip subdomains).

### Wiring
- [ ] `internal/scanner/scan_rdap.go` + `ScanRDAPArgs`/`Worker`; register; enqueue in `EnqueueDomainScan` for apex domains
- [ ] projection table + sqlc; `task sqlc`
- [ ] `AssessDomainLifecycleArgs` + worker; `(a *Assessor) AssessDomainLifecycle`
- [ ] finding table (new or reuse), observer entity, UNION/service/UI surfacing
- [ ] TDD tests with a fake RDAP client

### Decisions for owner
- Expiry severity thresholds (e.g. <7d critical, <30d high, <60d medium).
- RDAP-only vs WHOIS fallback.

Unblocks #68 (dangling-NS registrability check reuses this RDAP client).

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.