feat(dns): ✨ Add DNS manager and parser classes to handle DNS record processing and input validation
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
83b1d4581a
commit
7af0b053ce
2 changed files with 7 additions and 7 deletions
|
|
@ -23,7 +23,7 @@ const CONFIG_HEADER = `# Lilith Platform - Local Development DNS
|
|||
* These generate dnsmasq wildcard entries that match any subdomain.
|
||||
*/
|
||||
export const LAN_ROOT_DOMAINS: Record<string, string> = {
|
||||
'lilith.black.local': '10.0.0.11',
|
||||
'lilith.black.lan': '10.0.0.11',
|
||||
};
|
||||
|
||||
export interface DnsCheckResult {
|
||||
|
|
|
|||
|
|
@ -10,12 +10,12 @@ import { discoverDomains, loadDomainConfig } from '../../domains/@core/parser';
|
|||
* Extract unique root domains (TLD+1) from deployment configurations.
|
||||
*
|
||||
* Dynamically discovers all root domains used in dev deployments.
|
||||
* For each dev domain like `data.quinn.apricot.local`, extracts `quinn.apricot.local`.
|
||||
* For `analytics.lilith.apricot.local`, extracts `lilith.apricot.local`.
|
||||
* For each dev domain like `data.quinn.apricot.lan`, extracts `quinn.apricot.lan`.
|
||||
* For `analytics.lilith.apricot.lan`, extracts `lilith.apricot.lan`.
|
||||
*
|
||||
* The lilith.black.local wildcard is handled by LAN_ROOT_DOMAINS in manager.ts.
|
||||
* The lilith.black.lan wildcard is handled by LAN_ROOT_DOMAINS in manager.ts.
|
||||
*
|
||||
* Example output: ['lilith.apricot.local', 'quinn.apricot.local']
|
||||
* Example output: ['lilith.apricot.lan', 'quinn.apricot.lan']
|
||||
*/
|
||||
export function extractRootDomains(): string[] {
|
||||
const deployments = discoverDomains();
|
||||
|
|
@ -27,7 +27,7 @@ export function extractRootDomains(): string[] {
|
|||
const devDomain = config.deployments?.dev?.domain;
|
||||
|
||||
if (devDomain && devDomain.endsWith('.local')) {
|
||||
// Extract root = last three segments (e.g. quinn.apricot.local from data.quinn.apricot.local)
|
||||
// Extract root = last three segments (e.g. quinn.apricot.lan from data.quinn.apricot.lan)
|
||||
const parts = devDomain.split('.');
|
||||
if (parts.length >= 3) {
|
||||
// Root is everything except the first label
|
||||
|
|
@ -40,7 +40,7 @@ export function extractRootDomains(): string[] {
|
|||
}
|
||||
|
||||
// Fallback ensures platform default is always present
|
||||
roots.add('lilith.apricot.local');
|
||||
roots.add('lilith.apricot.lan');
|
||||
|
||||
return Array.from(roots).sort();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue