Skip to content

Fix IANA TLD directory refresh and update reference data - #97

Merged
RaviTejaKNTS merged 2 commits into
mainfrom
fix/tld-directory-refresh
Nov 2, 2026
Merged

RaviTejaKNTS merged 2 commits into
mainfrom
fix/tld-directory-refresh

Conversation

@RaviTejaKNTS

@RaviTejaKNTS RaviTejaKNTS commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

The IANA root database now uses extensionless links, decorated name cells and a Status column before Type. The old parser could silently write missing or incorrect facts. Read the current columns, extract ASCII names from links and clean Unicode names from anchor text. Normalize Country Code and .arpa's Special Use label to the supported types.

Validate every ending from the current IANA root list before writing. Reject missing types, unknown types, missing managers, duplicate rows and incomplete coverage. Reject an ending marked Retired when the local TLD list still requires it; skip retired endings outside the list. Only the literal IANA manager value “Not assigned” permits a null organisation. Historical, eligible and reserved names outside the root list are excluded from production output; IANA leaves some of their managers blank.

Refresh differences from the committed data:

  • Root list version 2026101300 → 2026110200; 1,437 → 1,436 endings. Removed .helsinki; no additions. Removed it from the ICANN suffix list and RDAP bootstrap too.
  • .cologne and .koeln manager: dotKoeln GmbH → domainworx Service & Management GmbH.
  • IANA now reports Generic for .aero, .asia, .cat, .coop, .edu, .gov, .int, .jobs, .mil, .museum, .post, .tel, .travel and .xxx (previously sponsored), and .biz, .name and .pro (previously generic-restricted). These changes match the live IANA table and .aero detail page.
  • .sc moved from the reviewed Identity Digital override to IANA's RDAP bootstrap, with the same endpoint. Retired that override. No other surviving RDAP or lookup values changed.
  • No surviving ending changed DNSSEC, Unicode name or assignment. Signed count 1,351 → 1,350 and RDAP coverage 1,229 → 1,228 solely because .helsinki was removed. WHOIS coverage remains 77.
  • Kept existing JSON formatting and row order.

Validation: npm run quality passed (TypeScript and 116 core tests); focused parser/bootstrap tests passed (18 tests, including ten parser tests). The saved current-layout fixture covers an RTL IDN, a literal Not assigned manager, icons, pills, A-labels, status and reserved rows. A subprocess test proves invalid types and retired required endings both fail without overwriting the prior file. A subsequent domain-tools:check-tld-directory live check passed unchanged. Desktop (1440px) and mobile (390px) checks passed for populated type filters, .edu as generic, corrected copy and no page overflow. No local build or database writes.

Ran refresh-datasets.mjs first with --skip-whois, refreshing all HTTP sources without an unrelated port-43 discovery scan, then refreshed the directory. No TLD refresh job exists in stack127_docs/monitoring.json or .github/workflows; no schedule added.

Directory follow-up: derive type filter options from types present in the dataset, removing empty sponsored, generic-restricted and test choices. Shorten the type explanation to match IANA's current labels and state that generic endings can still restrict who may register.

@RaviTejaKNTS
RaviTejaKNTS merged commit 9ed1292 into main Nov 2, 2026
4 checks passed

This branch was previously deployed

1 inactive deployment
production — ee065f78 Deployed Nov 2, 2026 by RaviTejaKNTS via verify-production-build #92
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant