feat(package): initialize standalone @serve.zone/interfaces package with shared TypeScript contracts
This commit is contained in:
+100
@@ -0,0 +1,100 @@
|
||||
export type TDnsRecordType = 'A' | 'AAAA' | 'CNAME' | 'MX' | 'TXT' | 'NS' | 'SOA' | 'SRV' | 'CAA' | 'PTR';
|
||||
|
||||
export interface IDnsEntry {
|
||||
id: string;
|
||||
data: {
|
||||
/**
|
||||
* The DNS record type
|
||||
*/
|
||||
type: TDnsRecordType;
|
||||
|
||||
/**
|
||||
* The DNS record name (e.g., www, @, mail)
|
||||
* @ represents the root domain
|
||||
*/
|
||||
name: string;
|
||||
|
||||
/**
|
||||
* The value of the DNS record
|
||||
* - For A/AAAA: IP address
|
||||
* - For CNAME: Target domain
|
||||
* - For MX: Mail server hostname
|
||||
* - For TXT: Text value
|
||||
* - For NS: Nameserver hostname
|
||||
* - For SRV: Target hostname
|
||||
* - For CAA: CAA record value
|
||||
* - For PTR: Domain name
|
||||
*/
|
||||
value: string;
|
||||
|
||||
/**
|
||||
* Time to live in seconds
|
||||
* Default: 3600 (1 hour)
|
||||
*/
|
||||
ttl: number;
|
||||
|
||||
/**
|
||||
* Priority (used for MX and SRV records)
|
||||
* Lower values have higher priority
|
||||
*/
|
||||
priority?: number;
|
||||
|
||||
/**
|
||||
* The DNS zone this entry belongs to
|
||||
* e.g., example.com
|
||||
* @deprecated Use domainId instead
|
||||
*/
|
||||
zone: string;
|
||||
|
||||
/**
|
||||
* The domain ID this DNS entry belongs to
|
||||
* Links to the Domain entity
|
||||
*/
|
||||
domainId?: string;
|
||||
|
||||
/**
|
||||
* Additional fields for SRV records
|
||||
*/
|
||||
weight?: number;
|
||||
port?: number;
|
||||
|
||||
/**
|
||||
* Whether this DNS entry is active
|
||||
*/
|
||||
active: boolean;
|
||||
|
||||
/**
|
||||
* Optional description for documentation
|
||||
*/
|
||||
description?: string;
|
||||
|
||||
/**
|
||||
* Timestamp when the entry was created
|
||||
*/
|
||||
createdAt?: number;
|
||||
|
||||
/**
|
||||
* Timestamp when the entry was last updated
|
||||
*/
|
||||
updatedAt?: number;
|
||||
|
||||
/**
|
||||
* Whether this DNS entry was auto-generated
|
||||
*/
|
||||
isAutoGenerated?: boolean;
|
||||
|
||||
/**
|
||||
* The service ID that created this DNS entry (for auto-generated entries)
|
||||
*/
|
||||
sourceServiceId?: string;
|
||||
|
||||
/**
|
||||
* The source type of this DNS entry
|
||||
* - manual: Created by user through UI/API
|
||||
* - service: Auto-generated from service configuration
|
||||
* - system: Created by system processes
|
||||
* - external: Synced from external DNS providers
|
||||
*/
|
||||
sourceType?: 'manual' | 'service' | 'system' | 'external';
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user