Skip to content

fix(domains): skip non-public-TLD bases in boot seeding + prune lingering pending rows - #186

Merged
CallMeTechie merged 2 commits into
masterfrom
worktree-fix+domain-seed-skip-internal
Jun 25, 2026
Merged

CallMeTechie merged 2 commits into
masterfrom
worktree-fix+domain-seed-skip-internal

Conversation

@CallMeTechie

Copy link
Copy Markdown
Owner

A-Folge-Fix: nicht-öffentliche Basen nicht ins Boot-Seeding

Folge-Fix zur Domain-Initiative A→C→B (B = #185). Teilprojekt A's Boot-Seeding (domainBoot.runDomainSeedAndVerify) nahm die last-two-labels-Basis aller Route-Domains, auch nicht-öffentlicher (gc.internal, foo.lan, …). Diese sind über öffentliches DNS nie verifizierbar → blieben dauerhaft pending und erschienen seit B sichtbar als „unbestätigt" auf der Domains-Seite (reines Rauschen, kein Funktionsfehler).

Änderung (src/services/domainBoot.js)

  • Nur öffentliche TLDs seeden: extractBaseDomains(...).filter(isPublicDomain) — nicht-öffentliche Basen werden gar nicht erst angelegt.
  • Einmalige Bereinigung: bestehende, von früheren Boots auto-geseedete pending-Zeilen mit nicht-öffentlicher TLD werden entfernt. Verifizierte Zeilen bleiben unberührt (Cleanup trifft nur status='pending').

Sicherheit

  • Nichts referenziert die domains-Tabelle per FK; Routen lesen routes.domain direkt. Das Löschen von pending-Rauschzeilen hat keine funktionale Auswirkung (sie sind nie in baseDomains()/isVerified()).

Tests

  • tests/domain_boot_seed.test.js erweitert: interne-TLD-Route wird nicht geseedet, lingernde old.lan-pending-Zeile wird gepruned, verifizierte kept.internal-Zeile überlebt. RED→GREEN.
  • Regression: domain_seed / domain_reverify / domain_service / domains_api / domain_server_ip = 16/16 grün.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Nfanfu8v8xvSMCbuAmd8Sq

…ring pending rows

Non-public bases (.internal/.lan/...) can never verify against public DNS,
so they lingered as permanent 'pending' noise on the Domains page once B made
them visible. Now they are never seeded, and existing auto-seeded pending
non-public rows are pruned on boot. Verified rows are never touched; routes
read routes.domain directly and nothing FKs to the domains table.

Follow-up to the A→C→B domain initiative (B = PR #185).
Comment thread tests/domain_boot_seed.test.js Fixed
Comment thread tests/domain_boot_seed.test.js Fixed
@CallMeTechie
CallMeTechie merged commit 308f817 into master Jun 25, 2026
8 checks passed
@CallMeTechie
CallMeTechie deleted the worktree-fix+domain-seed-skip-internal branch June 25, 2026 20:05
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.

2 participants