diff --git a/database/registry.mariadb.sql b/database/registry.mariadb.sql index 7c07d91..3a832ee 100644 --- a/database/registry.mariadb.sql +++ b/database/registry.mariadb.sql @@ -3,40 +3,41 @@ SET FOREIGN_KEY_CHECKS=0; CREATE DATABASE IF NOT EXISTS `registry`; CREATE TABLE IF NOT EXISTS `registry`.`domain_tld` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `tld` varchar(32) NOT NULL, - `idn_table` varchar(255) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `tld` (`tld`) + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `tld` varchar(32) NOT NULL, + `idn_table` varchar(255) NOT NULL, + `secure` TINYINT UNSIGNED NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `tld` (`tld`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='domain tld'; CREATE TABLE IF NOT EXISTS `registry`.`domain_price` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `tldid` int(10) unsigned NOT NULL, - `command` enum('create','renew','transfer') NOT NULL default 'create', - `m0` decimal(10,2) NOT NULL default '0.00', - `m12` decimal(10,2) NOT NULL default '0.00', - `m24` decimal(10,2) NOT NULL default '0.00', - `m36` decimal(10,2) NOT NULL default '0.00', - `m48` decimal(10,2) NOT NULL default '0.00', - `m60` decimal(10,2) NOT NULL default '0.00', - `m72` decimal(10,2) NOT NULL default '0.00', - `m84` decimal(10,2) NOT NULL default '0.00', - `m96` decimal(10,2) NOT NULL default '0.00', - `m108` decimal(10,2) NOT NULL default '0.00', - `m120` decimal(10,2) NOT NULL default '0.00', - PRIMARY KEY (`id`), - UNIQUE KEY `unique_record` (`tldid`,`command`), - CONSTRAINT `domain_price_ibfk_1` FOREIGN KEY (`tldid`) REFERENCES `domain_tld` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `tldid` int(10) unsigned NOT NULL, + `command` enum('create','renew','transfer') NOT NULL default 'create', + `m0` decimal(10,2) NOT NULL default '0.00', + `m12` decimal(10,2) NOT NULL default '0.00', + `m24` decimal(10,2) NOT NULL default '0.00', + `m36` decimal(10,2) NOT NULL default '0.00', + `m48` decimal(10,2) NOT NULL default '0.00', + `m60` decimal(10,2) NOT NULL default '0.00', + `m72` decimal(10,2) NOT NULL default '0.00', + `m84` decimal(10,2) NOT NULL default '0.00', + `m96` decimal(10,2) NOT NULL default '0.00', + `m108` decimal(10,2) NOT NULL default '0.00', + `m120` decimal(10,2) NOT NULL default '0.00', + PRIMARY KEY (`id`), + UNIQUE KEY `unique_record` (`tldid`,`command`), + CONSTRAINT `domain_price_ibfk_1` FOREIGN KEY (`tldid`) REFERENCES `domain_tld` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='domain price'; CREATE TABLE IF NOT EXISTS `registry`.`domain_restore_price` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `tldid` int(10) unsigned NOT NULL, - `price` decimal(10,2) NOT NULL default '0.00', - PRIMARY KEY (`id`), - UNIQUE KEY `tldid` (`tldid`), - CONSTRAINT `domain_restore_price_ibfk_1` FOREIGN KEY (`tldid`) REFERENCES `domain_tld` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `tldid` int(10) unsigned NOT NULL, + `price` decimal(10,2) NOT NULL default '0.00', + PRIMARY KEY (`id`), + UNIQUE KEY `tldid` (`tldid`), + CONSTRAINT `domain_restore_price_ibfk_1` FOREIGN KEY (`tldid`) REFERENCES `domain_tld` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='domain restore price'; CREATE TABLE IF NOT EXISTS `registry`.`error_log` ( @@ -47,390 +48,390 @@ CREATE TABLE IF NOT EXISTS `registry`.`error_log` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='registry error log'; CREATE TABLE IF NOT EXISTS `registry`.`reserved_domain_names` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(68) NOT NULL, - `type` enum('reserved','restricted') NOT NULL default 'reserved', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(68) NOT NULL, + `type` enum('reserved','restricted') NOT NULL default 'reserved', + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='reserved domain names'; CREATE TABLE IF NOT EXISTS `registry`.`registrar` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL, - `iana_id` int(5) DEFAULT NULL, - `clid` varchar(16) NOT NULL, - `pw` varchar(256) NOT NULL, - `prefix` char(2) NOT NULL, - `email` varchar(255) NOT NULL, - `whois_server` varchar(255) NOT NULL, - `rdap_server` varchar(255) NOT NULL, - `url` varchar(255) NOT NULL, - `abuse_email` varchar(255) NOT NULL, - `abuse_phone` varchar(255) NOT NULL, - `accountBalance` decimal(8,2) NOT NULL default '0.00', - `creditLimit` decimal(8,2) NOT NULL default '0.00', - `creditThreshold` decimal(8,2) NOT NULL default '0.00', - `thresholdType` enum('fixed','percent') NOT NULL default 'fixed', - `currency` varchar(5) NOT NULL, - `crdate` datetime NOT NULL, - `update` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `clid` (`clid`), - UNIQUE KEY `prefix` (`prefix`), - UNIQUE KEY `email` (`email`) + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `iana_id` int(5) DEFAULT NULL, + `clid` varchar(16) NOT NULL, + `pw` varchar(256) NOT NULL, + `prefix` char(2) NOT NULL, + `email` varchar(255) NOT NULL, + `whois_server` varchar(255) NOT NULL, + `rdap_server` varchar(255) NOT NULL, + `url` varchar(255) NOT NULL, + `abuse_email` varchar(255) NOT NULL, + `abuse_phone` varchar(255) NOT NULL, + `accountBalance` decimal(8,2) NOT NULL default '0.00', + `creditLimit` decimal(8,2) NOT NULL default '0.00', + `creditThreshold` decimal(8,2) NOT NULL default '0.00', + `thresholdType` enum('fixed','percent') NOT NULL default 'fixed', + `currency` varchar(5) NOT NULL, + `crdate` datetime NOT NULL, + `update` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `clid` (`clid`), + UNIQUE KEY `prefix` (`prefix`), + UNIQUE KEY `email` (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='registrar'; CREATE TABLE IF NOT EXISTS `registry`.`registrar_whitelist` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `registrar_id` int(10) unsigned NOT NULL, - `addr` varchar(45) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `uniquekey` (`registrar_id`,`addr`), - CONSTRAINT `registrar_whitelist_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `registrar_id` int(10) unsigned NOT NULL, + `addr` varchar(45) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `uniquekey` (`registrar_id`,`addr`), + CONSTRAINT `registrar_whitelist_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='registrar whitelist'; CREATE TABLE IF NOT EXISTS `registry`.`registrar_contact` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `registrar_id` int(10) unsigned NOT NULL, - `type` enum('owner','admin','billing','tech') NOT NULL default 'admin', - `title` varchar(255) NOT NULL, - `first_name` varchar(255) NOT NULL, - `middle_name` varchar(255) NOT NULL, - `last_name` varchar(255) NOT NULL, - `org` varchar(255) default NULL, - `street1` varchar(255) default NULL, - `street2` varchar(255) default NULL, - `street3` varchar(255) default NULL, - `city` varchar(255) NOT NULL, - `sp` varchar(255) default NULL, - `pc` varchar(16) default NULL, - `cc` char(2) NOT NULL, - `voice` varchar(17) default NULL, - `fax` varchar(17) default NULL, - `email` varchar(255) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `uniquekey` (`registrar_id`,`type`), - CONSTRAINT `registrar_contact_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `registrar_id` int(10) unsigned NOT NULL, + `type` enum('owner','admin','billing','tech','abuse') NOT NULL default 'admin', + `title` varchar(255) NOT NULL, + `first_name` varchar(255) NOT NULL, + `middle_name` varchar(255) NOT NULL, + `last_name` varchar(255) NOT NULL, + `org` varchar(255) default NULL, + `street1` varchar(255) default NULL, + `street2` varchar(255) default NULL, + `street3` varchar(255) default NULL, + `city` varchar(255) NOT NULL, + `sp` varchar(255) default NULL, + `pc` varchar(16) default NULL, + `cc` char(2) NOT NULL, + `voice` varchar(17) default NULL, + `fax` varchar(17) default NULL, + `email` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `uniquekey` (`registrar_id`,`type`), + CONSTRAINT `registrar_contact_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='registrar data'; CREATE TABLE IF NOT EXISTS `registry`.`poll` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `registrar_id` int(10) unsigned NOT NULL, - `qdate` datetime NOT NULL, - `msg` text default NULL, - `msg_type` enum('lowBalance','domainTransfer','contactTransfer') default NULL, - `obj_name_or_id` varchar(68), - `obj_trStatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, - `obj_reID` varchar(255), - `obj_reDate` datetime, - `obj_acID` varchar(255), - `obj_acDate` datetime, - `obj_exDate` datetime default NULL, - `registrarName` varchar(255), - `creditLimit` decimal(8,2) default '0.00', - `creditThreshold` decimal(8,2) default '0.00', - `creditThresholdType` enum('FIXED','PERCENT'), - `availableCredit` decimal(8,2) default '0.00', - PRIMARY KEY (`id`), - CONSTRAINT `poll_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `registrar_id` int(10) unsigned NOT NULL, + `qdate` datetime NOT NULL, + `msg` text default NULL, + `msg_type` enum('lowBalance','domainTransfer','contactTransfer') default NULL, + `obj_name_or_id` varchar(68), + `obj_trStatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, + `obj_reID` varchar(255), + `obj_reDate` datetime, + `obj_acID` varchar(255), + `obj_acDate` datetime, + `obj_exDate` datetime default NULL, + `registrarName` varchar(255), + `creditLimit` decimal(8,2) default '0.00', + `creditThreshold` decimal(8,2) default '0.00', + `creditThresholdType` enum('FIXED','PERCENT'), + `availableCredit` decimal(8,2) default '0.00', + PRIMARY KEY (`id`), + CONSTRAINT `poll_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='poll'; CREATE TABLE IF NOT EXISTS `registry`.`payment_history` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `registrar_id` int(10) unsigned NOT NULL, - `date` datetime NOT NULL, - `description` text NOT NULL, - `amount` decimal(8,2) NOT NULL, - PRIMARY KEY (`id`), - CONSTRAINT `payment_history_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `registrar_id` int(10) unsigned NOT NULL, + `date` datetime NOT NULL, + `description` text NOT NULL, + `amount` decimal(8,2) NOT NULL, + PRIMARY KEY (`id`), + CONSTRAINT `payment_history_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='payment history'; CREATE TABLE IF NOT EXISTS `registry`.`statement` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `registrar_id` int(10) unsigned NOT NULL, - `date` datetime NOT NULL, - `command` enum('create','renew','transfer','restore','autoRenew') NOT NULL default 'create', - `domain_name` varchar(68) NOT NULL, - `length_in_months` tinyint(3) unsigned NOT NULL, - `from` datetime NOT NULL, - `to` datetime NOT NULL, - `amount` decimal(8,2) NOT NULL, - PRIMARY KEY (`id`), - CONSTRAINT `statement_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `registrar_id` int(10) unsigned NOT NULL, + `date` datetime NOT NULL, + `command` enum('create','renew','transfer','restore','autoRenew') NOT NULL default 'create', + `domain_name` varchar(68) NOT NULL, + `length_in_months` tinyint(3) unsigned NOT NULL, + `from` datetime NOT NULL, + `to` datetime NOT NULL, + `amount` decimal(8,2) NOT NULL, + PRIMARY KEY (`id`), + CONSTRAINT `statement_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='financial statement'; CREATE TABLE IF NOT EXISTS `registry`.`contact` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `identifier` varchar(255) NOT NULL, - `voice` varchar(17) default NULL, - `voice_x` int(10) default NULL, - `fax` varchar(17) default NULL, - `fax_x` int(10) default NULL, - `email` varchar(255) NOT NULL, - `nin` varchar(255) default NULL, - `nin_type` enum('personal','business') default NULL, - `clid` int(10) unsigned NOT NULL, - `crid` int(10) unsigned NOT NULL, - `crdate` datetime NOT NULL, - `upid` int(10) unsigned default NULL, - `update` datetime default NULL, - `trdate` datetime default NULL, - `trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, - `reid` int(10) unsigned default NULL, - `redate` datetime default NULL, - `acid` int(10) unsigned default NULL, - `acdate` datetime default NULL, - `disclose_voice` enum('0','1') NOT NULL default '1', - `disclose_fax` enum('0','1') NOT NULL default '1', - `disclose_email` enum('0','1') NOT NULL default '1', - PRIMARY KEY (`id`), - UNIQUE KEY `identifier` (`identifier`), - CONSTRAINT `contact_ibfk_1` FOREIGN KEY (`clid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, - CONSTRAINT `contact_ibfk_2` FOREIGN KEY (`crid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, - CONSTRAINT `contact_ibfk_3` FOREIGN KEY (`upid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `identifier` varchar(255) NOT NULL, + `voice` varchar(17) default NULL, + `voice_x` int(10) default NULL, + `fax` varchar(17) default NULL, + `fax_x` int(10) default NULL, + `email` varchar(255) NOT NULL, + `nin` varchar(255) default NULL, + `nin_type` enum('personal','business') default NULL, + `clid` int(10) unsigned NOT NULL, + `crid` int(10) unsigned NOT NULL, + `crdate` datetime NOT NULL, + `upid` int(10) unsigned default NULL, + `update` datetime default NULL, + `trdate` datetime default NULL, + `trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, + `reid` int(10) unsigned default NULL, + `redate` datetime default NULL, + `acid` int(10) unsigned default NULL, + `acdate` datetime default NULL, + `disclose_voice` enum('0','1') NOT NULL default '1', + `disclose_fax` enum('0','1') NOT NULL default '1', + `disclose_email` enum('0','1') NOT NULL default '1', + PRIMARY KEY (`id`), + UNIQUE KEY `identifier` (`identifier`), + CONSTRAINT `contact_ibfk_1` FOREIGN KEY (`clid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, + CONSTRAINT `contact_ibfk_2` FOREIGN KEY (`crid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, + CONSTRAINT `contact_ibfk_3` FOREIGN KEY (`upid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='contact'; CREATE TABLE IF NOT EXISTS `registry`.`contact_postalInfo` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `contact_id` int(10) unsigned NOT NULL, - `type` enum('int','loc') NOT NULL default 'int', - `name` varchar(255) NOT NULL, - `org` varchar(255) default NULL, - `street1` varchar(255) default NULL, - `street2` varchar(255) default NULL, - `street3` varchar(255) default NULL, - `city` varchar(255) NOT NULL, - `sp` varchar(255) default NULL, - `pc` varchar(16) default NULL, - `cc` char(2) NOT NULL, - `disclose_name_int` enum('0','1') NOT NULL default '1', - `disclose_name_loc` enum('0','1') NOT NULL default '1', - `disclose_org_int` enum('0','1') NOT NULL default '1', - `disclose_org_loc` enum('0','1') NOT NULL default '1', - `disclose_addr_int` enum('0','1') NOT NULL default '1', - `disclose_addr_loc` enum('0','1') NOT NULL default '1', - PRIMARY KEY (`id`), - UNIQUE KEY `uniquekey` (`contact_id`,`type`), - CONSTRAINT `contact_postalInfo_ibfk_1` FOREIGN KEY (`contact_id`) REFERENCES `contact` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `contact_id` int(10) unsigned NOT NULL, + `type` enum('int','loc') NOT NULL default 'int', + `name` varchar(255) NOT NULL, + `org` varchar(255) default NULL, + `street1` varchar(255) default NULL, + `street2` varchar(255) default NULL, + `street3` varchar(255) default NULL, + `city` varchar(255) NOT NULL, + `sp` varchar(255) default NULL, + `pc` varchar(16) default NULL, + `cc` char(2) NOT NULL, + `disclose_name_int` enum('0','1') NOT NULL default '1', + `disclose_name_loc` enum('0','1') NOT NULL default '1', + `disclose_org_int` enum('0','1') NOT NULL default '1', + `disclose_org_loc` enum('0','1') NOT NULL default '1', + `disclose_addr_int` enum('0','1') NOT NULL default '1', + `disclose_addr_loc` enum('0','1') NOT NULL default '1', + PRIMARY KEY (`id`), + UNIQUE KEY `uniquekey` (`contact_id`,`type`), + CONSTRAINT `contact_postalInfo_ibfk_1` FOREIGN KEY (`contact_id`) REFERENCES `contact` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='contact:postalInfo'; CREATE TABLE IF NOT EXISTS `registry`.`contact_authInfo` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `contact_id` int(10) unsigned NOT NULL, - `authtype` enum('pw','ext') NOT NULL default 'pw', - `authinfo` varchar(64) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `contact_id` (`contact_id`), - CONSTRAINT `contact_authInfo_ibfk_1` FOREIGN KEY (`contact_id`) REFERENCES `contact` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `contact_id` int(10) unsigned NOT NULL, + `authtype` enum('pw','ext') NOT NULL default 'pw', + `authinfo` varchar(64) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `contact_id` (`contact_id`), + CONSTRAINT `contact_authInfo_ibfk_1` FOREIGN KEY (`contact_id`) REFERENCES `contact` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='contact:authInfo'; CREATE TABLE IF NOT EXISTS `registry`.`contact_status` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `contact_id` int(10) unsigned NOT NULL, - `status` enum('clientDeleteProhibited','clientTransferProhibited','clientUpdateProhibited','linked','ok','pendingCreate','pendingDelete','pendingTransfer','pendingUpdate','serverDeleteProhibited','serverTransferProhibited','serverUpdateProhibited') NOT NULL default 'ok', - PRIMARY KEY (`id`), - UNIQUE KEY `uniquekey` (`contact_id`,`status`), - CONSTRAINT `contact_status_ibfk_1` FOREIGN KEY (`contact_id`) REFERENCES `contact` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `contact_id` int(10) unsigned NOT NULL, + `status` enum('clientDeleteProhibited','clientTransferProhibited','clientUpdateProhibited','linked','ok','pendingCreate','pendingDelete','pendingTransfer','pendingUpdate','serverDeleteProhibited','serverTransferProhibited','serverUpdateProhibited') NOT NULL default 'ok', + PRIMARY KEY (`id`), + UNIQUE KEY `uniquekey` (`contact_id`,`status`), + CONSTRAINT `contact_status_ibfk_1` FOREIGN KEY (`contact_id`) REFERENCES `contact` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='contact:status'; CREATE TABLE IF NOT EXISTS `registry`.`domain` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(68) NOT NULL, - `tldid` int(10) unsigned NOT NULL, - `registrant` int(10) unsigned default NULL, - `crdate` datetime NOT NULL, - `exdate` datetime NOT NULL, - `update` datetime default NULL, - `clid` int(10) unsigned NOT NULL, - `crid` int(10) unsigned NOT NULL, - `upid` int(10) unsigned default NULL, - `trdate` datetime default NULL, - `trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, - `reid` int(10) unsigned default NULL, - `redate` datetime default NULL, - `acid` int(10) unsigned default NULL, - `acdate` datetime default NULL, - `transfer_exdate` datetime default NULL, - `idnlang` varchar(16) default NULL, - `delTime` datetime default NULL, - `resTime` datetime default NULL, - `rgpstatus` enum('addPeriod','autoRenewPeriod','renewPeriod','transferPeriod','pendingDelete','pendingRestore','redemptionPeriod') default NULL, - `rgppostData` text default NULL, - `rgpdelTime` datetime default NULL, - `rgpresTime` datetime default NULL, - `rgpresReason` text default NULL, - `rgpstatement1` text default NULL, - `rgpstatement2` text default NULL, - `rgpother` text default NULL, - `addPeriod` tinyint(3) unsigned default NULL, - `autoRenewPeriod` tinyint(3) unsigned default NULL, - `renewPeriod` tinyint(3) unsigned default NULL, - `transferPeriod` tinyint(3) unsigned default NULL, - `renewedDate` datetime default NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`), - CONSTRAINT `domain_ibfk_1` FOREIGN KEY (`clid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, - CONSTRAINT `domain_ibfk_2` FOREIGN KEY (`crid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, - CONSTRAINT `domain_ibfk_3` FOREIGN KEY (`upid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, - CONSTRAINT `domain_ibfk_4` FOREIGN KEY (`registrant`) REFERENCES `contact` (`id`) ON DELETE RESTRICT, - CONSTRAINT `domain_ibfk_5` FOREIGN KEY (`reid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, - CONSTRAINT `domain_ibfk_6` FOREIGN KEY (`acid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, - CONSTRAINT `domain_ibfk_7` FOREIGN KEY (`tldid`) REFERENCES `domain_tld` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(68) NOT NULL, + `tldid` int(10) unsigned NOT NULL, + `registrant` int(10) unsigned default NULL, + `crdate` datetime NOT NULL, + `exdate` datetime NOT NULL, + `update` datetime default NULL, + `clid` int(10) unsigned NOT NULL, + `crid` int(10) unsigned NOT NULL, + `upid` int(10) unsigned default NULL, + `trdate` datetime default NULL, + `trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, + `reid` int(10) unsigned default NULL, + `redate` datetime default NULL, + `acid` int(10) unsigned default NULL, + `acdate` datetime default NULL, + `transfer_exdate` datetime default NULL, + `idnlang` varchar(16) default NULL, + `delTime` datetime default NULL, + `resTime` datetime default NULL, + `rgpstatus` enum('addPeriod','autoRenewPeriod','renewPeriod','transferPeriod','pendingDelete','pendingRestore','redemptionPeriod') default NULL, + `rgppostData` text default NULL, + `rgpdelTime` datetime default NULL, + `rgpresTime` datetime default NULL, + `rgpresReason` text default NULL, + `rgpstatement1` text default NULL, + `rgpstatement2` text default NULL, + `rgpother` text default NULL, + `addPeriod` tinyint(3) unsigned default NULL, + `autoRenewPeriod` tinyint(3) unsigned default NULL, + `renewPeriod` tinyint(3) unsigned default NULL, + `transferPeriod` tinyint(3) unsigned default NULL, + `renewedDate` datetime default NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`), + CONSTRAINT `domain_ibfk_1` FOREIGN KEY (`clid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, + CONSTRAINT `domain_ibfk_2` FOREIGN KEY (`crid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, + CONSTRAINT `domain_ibfk_3` FOREIGN KEY (`upid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, + CONSTRAINT `domain_ibfk_4` FOREIGN KEY (`registrant`) REFERENCES `contact` (`id`) ON DELETE RESTRICT, + CONSTRAINT `domain_ibfk_5` FOREIGN KEY (`reid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, + CONSTRAINT `domain_ibfk_6` FOREIGN KEY (`acid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, + CONSTRAINT `domain_ibfk_7` FOREIGN KEY (`tldid`) REFERENCES `domain_tld` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='domain'; CREATE TABLE IF NOT EXISTS `registry`.`domain_contact_map` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `domain_id` int(10) unsigned NOT NULL, - `contact_id` int(10) unsigned NOT NULL, - `type` enum('admin','billing','tech') NOT NULL default 'admin', - PRIMARY KEY (`id`), - UNIQUE KEY `uniquekey` (`domain_id`,`contact_id`,`type`), - CONSTRAINT `domain_contact_map_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domain` (`id`) ON DELETE RESTRICT, - CONSTRAINT `domain_contact_map_ibfk_2` FOREIGN KEY (`contact_id`) REFERENCES `contact` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `domain_id` int(10) unsigned NOT NULL, + `contact_id` int(10) unsigned NOT NULL, + `type` enum('admin','billing','tech') NOT NULL default 'admin', + PRIMARY KEY (`id`), + UNIQUE KEY `uniquekey` (`domain_id`,`contact_id`,`type`), + CONSTRAINT `domain_contact_map_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domain` (`id`) ON DELETE RESTRICT, + CONSTRAINT `domain_contact_map_ibfk_2` FOREIGN KEY (`contact_id`) REFERENCES `contact` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='contact map'; CREATE TABLE IF NOT EXISTS `registry`.`domain_authInfo` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `domain_id` int(10) unsigned NOT NULL, - `authtype` enum('pw','ext') NOT NULL default 'pw', - `authinfo` varchar(64) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `domain_id` (`domain_id`), - CONSTRAINT `domain_authInfo_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domain` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `domain_id` int(10) unsigned NOT NULL, + `authtype` enum('pw','ext') NOT NULL default 'pw', + `authinfo` varchar(64) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `domain_id` (`domain_id`), + CONSTRAINT `domain_authInfo_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domain` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='domain:authInfo'; CREATE TABLE IF NOT EXISTS `registry`.`domain_status` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `domain_id` int(10) unsigned NOT NULL, - `status` enum('clientDeleteProhibited','clientHold','clientRenewProhibited','clientTransferProhibited','clientUpdateProhibited','inactive','ok','pendingCreate','pendingDelete','pendingRenew','pendingTransfer','pendingUpdate','serverDeleteProhibited','serverHold','serverRenewProhibited','serverTransferProhibited','serverUpdateProhibited') NOT NULL default 'ok', - PRIMARY KEY (`id`), - UNIQUE KEY `uniquekey` (`domain_id`,`status`), - CONSTRAINT `domain_status_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domain` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `domain_id` int(10) unsigned NOT NULL, + `status` enum('clientDeleteProhibited','clientHold','clientRenewProhibited','clientTransferProhibited','clientUpdateProhibited','inactive','ok','pendingCreate','pendingDelete','pendingRenew','pendingTransfer','pendingUpdate','serverDeleteProhibited','serverHold','serverRenewProhibited','serverTransferProhibited','serverUpdateProhibited') NOT NULL default 'ok', + PRIMARY KEY (`id`), + UNIQUE KEY `uniquekey` (`domain_id`,`status`), + CONSTRAINT `domain_status_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domain` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='domain:status'; CREATE TABLE IF NOT EXISTS `registry`.`secdns` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `domain_id` int(10) unsigned NOT NULL, - `maxsiglife` int(10) unsigned default '604800', - `interface` enum('dsData','keyData') NOT NULL default 'dsData', - `keytag` smallint(5) unsigned NOT NULL, - `alg` tinyint(3) unsigned NOT NULL default '5', - `digesttype` tinyint(3) unsigned NOT NULL default '1', - `digest` varchar(64) NOT NULL, - `flags` smallint(5) unsigned default NULL, - `protocol` smallint(5) unsigned default NULL, - `keydata_alg` tinyint(3) unsigned default NULL, - `pubkey` varchar(255) default NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `uniquekey` (`domain_id`,`digest`), - CONSTRAINT `secdns_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domain` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `domain_id` int(10) unsigned NOT NULL, + `maxsiglife` int(10) unsigned default '604800', + `interface` enum('dsData','keyData') NOT NULL default 'dsData', + `keytag` smallint(5) unsigned NOT NULL, + `alg` tinyint(3) unsigned NOT NULL default '5', + `digesttype` tinyint(3) unsigned NOT NULL default '1', + `digest` varchar(64) NOT NULL, + `flags` smallint(5) unsigned default NULL, + `protocol` smallint(5) unsigned default NULL, + `keydata_alg` tinyint(3) unsigned default NULL, + `pubkey` varchar(255) default NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `uniquekey` (`domain_id`,`digest`), + CONSTRAINT `secdns_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domain` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='secDNS'; CREATE TABLE IF NOT EXISTS `registry`.`host` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL, - `domain_id` int(10) unsigned default NULL, - `clid` int(10) unsigned NOT NULL, - `crid` int(10) unsigned NOT NULL, - `crdate` datetime NOT NULL, - `upid` int(10) unsigned default NULL, - `update` datetime default NULL, - `trdate` datetime default NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`), - CONSTRAINT `host_ibfk_1` FOREIGN KEY (`clid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, - CONSTRAINT `host_ibfk_2` FOREIGN KEY (`crid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, - CONSTRAINT `host_ibfk_3` FOREIGN KEY (`upid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, - CONSTRAINT `host_ibfk_4` FOREIGN KEY (`domain_id`) REFERENCES `domain` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `domain_id` int(10) unsigned default NULL, + `clid` int(10) unsigned NOT NULL, + `crid` int(10) unsigned NOT NULL, + `crdate` datetime NOT NULL, + `upid` int(10) unsigned default NULL, + `update` datetime default NULL, + `trdate` datetime default NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`), + CONSTRAINT `host_ibfk_1` FOREIGN KEY (`clid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, + CONSTRAINT `host_ibfk_2` FOREIGN KEY (`crid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, + CONSTRAINT `host_ibfk_3` FOREIGN KEY (`upid`) REFERENCES `registrar` (`id`) ON DELETE RESTRICT, + CONSTRAINT `host_ibfk_4` FOREIGN KEY (`domain_id`) REFERENCES `domain` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='host'; CREATE TABLE IF NOT EXISTS `registry`.`domain_host_map` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `domain_id` int(10) unsigned NOT NULL, - `host_id` int(10) unsigned NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `domain_host_map_id` (`domain_id`,`host_id`), - CONSTRAINT `domain_host_map_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domain` (`id`) ON DELETE RESTRICT, - CONSTRAINT `domain_host_map_ibfk_2` FOREIGN KEY (`host_id`) REFERENCES `host` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `domain_id` int(10) unsigned NOT NULL, + `host_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `domain_host_map_id` (`domain_id`,`host_id`), + CONSTRAINT `domain_host_map_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domain` (`id`) ON DELETE RESTRICT, + CONSTRAINT `domain_host_map_ibfk_2` FOREIGN KEY (`host_id`) REFERENCES `host` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='contact map'; CREATE TABLE IF NOT EXISTS `registry`.`host_addr` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `host_id` int(10) unsigned NOT NULL, - `addr` varchar(45) NOT NULL, - `ip` enum('v4','v6') NOT NULL default 'v4', - PRIMARY KEY (`id`), - UNIQUE KEY `unique` (`host_id`,`addr`,`ip`), - CONSTRAINT `host_addr_ibfk_1` FOREIGN KEY (`host_id`) REFERENCES `host` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `host_id` int(10) unsigned NOT NULL, + `addr` varchar(45) NOT NULL, + `ip` enum('v4','v6') NOT NULL default 'v4', + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`host_id`,`addr`,`ip`), + CONSTRAINT `host_addr_ibfk_1` FOREIGN KEY (`host_id`) REFERENCES `host` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='host_addr'; CREATE TABLE IF NOT EXISTS `registry`.`host_status` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `host_id` int(10) unsigned NOT NULL, - `status` enum('clientDeleteProhibited','clientUpdateProhibited','linked','ok','pendingCreate','pendingDelete','pendingTransfer','pendingUpdate','serverDeleteProhibited','serverUpdateProhibited') NOT NULL default 'ok', - PRIMARY KEY (`id`), - UNIQUE KEY `uniquekey` (`host_id`,`status`), - CONSTRAINT `host_status_ibfk_1` FOREIGN KEY (`host_id`) REFERENCES `host` (`id`) ON DELETE RESTRICT + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `host_id` int(10) unsigned NOT NULL, + `status` enum('clientDeleteProhibited','clientUpdateProhibited','linked','ok','pendingCreate','pendingDelete','pendingTransfer','pendingUpdate','serverDeleteProhibited','serverUpdateProhibited') NOT NULL default 'ok', + PRIMARY KEY (`id`), + UNIQUE KEY `uniquekey` (`host_id`,`status`), + CONSTRAINT `host_status_ibfk_1` FOREIGN KEY (`host_id`) REFERENCES `host` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='host:status'; CREATE TABLE IF NOT EXISTS `registry`.`domain_auto_approve_transfer` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(68) NOT NULL, - `registrant` int(10) unsigned default NULL, - `crdate` datetime NOT NULL, - `exdate` datetime NOT NULL, - `update` datetime default NULL, - `clid` int(10) unsigned NOT NULL, - `crid` int(10) unsigned NOT NULL, - `upid` int(10) unsigned default NULL, - `trdate` datetime default NULL, - `trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, - `reid` int(10) unsigned default NULL, - `redate` datetime default NULL, - `acid` int(10) unsigned default NULL, - `acdate` datetime default NULL, - `transfer_exdate` datetime default NULL, - PRIMARY KEY (`id`) + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(68) NOT NULL, + `registrant` int(10) unsigned default NULL, + `crdate` datetime NOT NULL, + `exdate` datetime NOT NULL, + `update` datetime default NULL, + `clid` int(10) unsigned NOT NULL, + `crid` int(10) unsigned NOT NULL, + `upid` int(10) unsigned default NULL, + `trdate` datetime default NULL, + `trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, + `reid` int(10) unsigned default NULL, + `redate` datetime default NULL, + `acid` int(10) unsigned default NULL, + `acdate` datetime default NULL, + `transfer_exdate` datetime default NULL, + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='domain_auto_approve_transfer'; CREATE TABLE IF NOT EXISTS `registry`.`contact_auto_approve_transfer` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `identifier` varchar(255) NOT NULL, - `voice` varchar(17) default NULL, - `voice_x` int(10) default NULL, - `fax` varchar(17) default NULL, - `fax_x` int(10) default NULL, - `email` varchar(255) NOT NULL, - `nin` varchar(255) default NULL, - `nin_type` enum('personal','business') default NULL, - `clid` int(10) unsigned NOT NULL, - `crid` int(10) unsigned NOT NULL, - `crdate` datetime NOT NULL, - `upid` int(10) unsigned default NULL, - `update` datetime default NULL, - `trdate` datetime default NULL, - `trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, - `reid` int(10) unsigned default NULL, - `redate` datetime default NULL, - `acid` int(10) unsigned default NULL, - `acdate` datetime default NULL, - `disclose_voice` enum('0','1') NOT NULL default '1', - `disclose_fax` enum('0','1') NOT NULL default '1', - `disclose_email` enum('0','1') NOT NULL default '1', - PRIMARY KEY (`id`) + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `identifier` varchar(255) NOT NULL, + `voice` varchar(17) default NULL, + `voice_x` int(10) default NULL, + `fax` varchar(17) default NULL, + `fax_x` int(10) default NULL, + `email` varchar(255) NOT NULL, + `nin` varchar(255) default NULL, + `nin_type` enum('personal','business') default NULL, + `clid` int(10) unsigned NOT NULL, + `crid` int(10) unsigned NOT NULL, + `crdate` datetime NOT NULL, + `upid` int(10) unsigned default NULL, + `update` datetime default NULL, + `trdate` datetime default NULL, + `trstatus` enum('clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled') default NULL, + `reid` int(10) unsigned default NULL, + `redate` datetime default NULL, + `acid` int(10) unsigned default NULL, + `acdate` datetime default NULL, + `disclose_voice` enum('0','1') NOT NULL default '1', + `disclose_fax` enum('0','1') NOT NULL default '1', + `disclose_email` enum('0','1') NOT NULL default '1', + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='contact_auto_approve_transfer'; CREATE TABLE IF NOT EXISTS `registry`.`statistics` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `date` date NOT NULL, - `total_domains` int(10) unsigned NOT NULL DEFAULT '0', - `created_domains` int(10) unsigned NOT NULL DEFAULT '0', - `renewed_domains` int(10) unsigned NOT NULL DEFAULT '0', - `transfered_domains` int(10) unsigned NOT NULL DEFAULT '0', - `deleted_domains` int(10) unsigned NOT NULL DEFAULT '0', - `restored_domains` int(10) unsigned NOT NULL DEFAULT '0', - PRIMARY KEY (`id`), - UNIQUE KEY `date` (`date`) + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `date` date NOT NULL, + `total_domains` int(10) unsigned NOT NULL DEFAULT '0', + `created_domains` int(10) unsigned NOT NULL DEFAULT '0', + `renewed_domains` int(10) unsigned NOT NULL DEFAULT '0', + `transfered_domains` int(10) unsigned NOT NULL DEFAULT '0', + `deleted_domains` int(10) unsigned NOT NULL DEFAULT '0', + `restored_domains` int(10) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `date` (`date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Statistics'; CREATE TABLE IF NOT EXISTS `registry`.`users` ( @@ -655,25 +656,25 @@ GRANT UPDATE ON `registry`.`payment_history` TO 'registry-update'@'localhost'; CREATE DATABASE IF NOT EXISTS `registryTransaction`; CREATE TABLE IF NOT EXISTS `registryTransaction`.`transaction_identifier` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `registrar_id` int(10) unsigned NOT NULL, - `clTRID` varchar(64), - `clTRIDframe` text, - `cldate` datetime, - `clmicrosecond` int(6), - `cmd` enum('login','logout','check','info','poll','transfer','create','delete','renew','update') default NULL, - `obj_type` enum('domain','host','contact') default NULL, - `obj_id` text default NULL, - `code` smallint(4) unsigned default NULL, - `msg` varchar(255) default NULL, - `svTRID` varchar(64), - `svTRIDframe` text, - `svdate` datetime, - `svmicrosecond` int(6), - PRIMARY KEY (`id`), - UNIQUE KEY `clTRID` (`clTRID`), - UNIQUE KEY `svTRID` (`svTRID`), - CONSTRAINT `transaction_identifier_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registry`.`registrar` (`id`) ON DELETE RESTRICT + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `registrar_id` int(10) unsigned NOT NULL, + `clTRID` varchar(64), + `clTRIDframe` text, + `cldate` datetime, + `clmicrosecond` int(6), + `cmd` enum('login','logout','check','info','poll','transfer','create','delete','renew','update') default NULL, + `obj_type` enum('domain','host','contact') default NULL, + `obj_id` text default NULL, + `code` smallint(4) unsigned default NULL, + `msg` varchar(255) default NULL, + `svTRID` varchar(64), + `svTRIDframe` text, + `svdate` datetime, + `svmicrosecond` int(6), + PRIMARY KEY (`id`), + UNIQUE KEY `clTRID` (`clTRID`), + UNIQUE KEY `svTRID` (`svTRID`), + CONSTRAINT `transaction_identifier_ibfk_1` FOREIGN KEY (`registrar_id`) REFERENCES `registry`.`registrar` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='transaction identifier'; GRANT ALL ON `registryTransaction`.* TO 'registry'@'localhost'; diff --git a/database/registry.postgres.sql b/database/registry.postgres.sql index 48fd845..76c348b 100644 --- a/database/registry.postgres.sql +++ b/database/registry.postgres.sql @@ -4,38 +4,39 @@ CREATE SCHEMA registryTransaction; SET search_path TO registry, registryTransaction, public; CREATE TABLE registry.domain_tld ( - "id" serial8, - "tld" varchar(32) NOT NULL, - "idn_table" varchar(255) NOT NULL, - primary key ("id"), - unique ("tld") + "id" serial8, + "tld" varchar(32) NOT NULL, + "idn_table" varchar(255) NOT NULL, + "secure" SMALLINT NOT NULL, + primary key ("id"), + unique ("tld") ); CREATE TABLE registry.domain_price ( - "id" serial8, - "tldid" int CHECK ("tldid" >= 0) NOT NULL, - "command" varchar CHECK ("command" IN ( 'create','renew','transfer' )) NOT NULL default 'create', - "m0" decimal(10,2) NOT NULL default '0.00', - "m12" decimal(10,2) NOT NULL default '0.00', - "m24" decimal(10,2) NOT NULL default '0.00', - "m36" decimal(10,2) NOT NULL default '0.00', - "m48" decimal(10,2) NOT NULL default '0.00', - "m60" decimal(10,2) NOT NULL default '0.00', - "m72" decimal(10,2) NOT NULL default '0.00', - "m84" decimal(10,2) NOT NULL default '0.00', - "m96" decimal(10,2) NOT NULL default '0.00', - "m108" decimal(10,2) NOT NULL default '0.00', - "m120" decimal(10,2) NOT NULL default '0.00', - primary key ("id"), + "id" serial8, + "tldid" int CHECK ("tldid" >= 0) NOT NULL, + "command" varchar CHECK ("command" IN ( 'create','renew','transfer' )) NOT NULL default 'create', + "m0" decimal(10,2) NOT NULL default '0.00', + "m12" decimal(10,2) NOT NULL default '0.00', + "m24" decimal(10,2) NOT NULL default '0.00', + "m36" decimal(10,2) NOT NULL default '0.00', + "m48" decimal(10,2) NOT NULL default '0.00', + "m60" decimal(10,2) NOT NULL default '0.00', + "m72" decimal(10,2) NOT NULL default '0.00', + "m84" decimal(10,2) NOT NULL default '0.00', + "m96" decimal(10,2) NOT NULL default '0.00', + "m108" decimal(10,2) NOT NULL default '0.00', + "m120" decimal(10,2) NOT NULL default '0.00', + primary key ("id"), unique ("tldid", "command") ); CREATE TABLE registry.domain_restore_price ( - "id" serial8 , - "tldid" int CHECK ("tldid" >= 0) NOT NULL, - "price" decimal(10,2) NOT NULL default '0.00', - primary key ("id"), - unique ("tldid") + "id" serial8 , + "tldid" int CHECK ("tldid" >= 0) NOT NULL, + "price" decimal(10,2) NOT NULL default '0.00', + primary key ("id"), + unique ("tldid") ); CREATE TABLE registry.error_log ( @@ -46,37 +47,37 @@ CREATE TABLE registry.error_log ( ); CREATE TABLE registry.reserved_domain_names ( - "id" serial8 , - "name" varchar(68) NOT NULL, + "id" serial8 , + "name" varchar(68) NOT NULL, "type" varchar CHECK ("type" IN ( 'reserved','restricted' )) NOT NULL default 'reserved', - primary key ("id"), + primary key ("id"), unique ("name") ); CREATE TABLE registry.registrar ( - "id" serial8, - "name" varchar(255) NOT NULL, - "iana_id" int DEFAULT NULL, - "clid" varchar(16) NOT NULL, - "pw" varchar(256) NOT NULL, - "prefix" char(2) NOT NULL, - "email" varchar(255) NOT NULL, - "whois_server" varchar(255) NOT NULL, - "rdap_server" varchar(255) NOT NULL, - "url" varchar(255) NOT NULL, - "abuse_email" varchar(255) NOT NULL, - "abuse_phone" varchar(255) NOT NULL, - "accountbalance" decimal(8,2) NOT NULL default '0.00', - "creditlimit" decimal(8,2) NOT NULL default '0.00', - "creditthreshold" decimal(8,2) NOT NULL default '0.00', + "id" serial8, + "name" varchar(255) NOT NULL, + "iana_id" int DEFAULT NULL, + "clid" varchar(16) NOT NULL, + "pw" varchar(256) NOT NULL, + "prefix" char(2) NOT NULL, + "email" varchar(255) NOT NULL, + "whois_server" varchar(255) NOT NULL, + "rdap_server" varchar(255) NOT NULL, + "url" varchar(255) NOT NULL, + "abuse_email" varchar(255) NOT NULL, + "abuse_phone" varchar(255) NOT NULL, + "accountbalance" decimal(8,2) NOT NULL default '0.00', + "creditlimit" decimal(8,2) NOT NULL default '0.00', + "creditthreshold" decimal(8,2) NOT NULL default '0.00', "thresholdtype" varchar CHECK ("thresholdtype" IN ( 'fixed','percent' )) NOT NULL default 'fixed', - "currency" varchar(5) NOT NULL, - "crdate" timestamp without time zone NOT NULL, - "update" TIMESTAMP , - primary key ("id"), - unique ("clid") , - unique ("prefix") , - unique ("email") + "currency" varchar(5) NOT NULL, + "crdate" timestamp without time zone NOT NULL, + "update" TIMESTAMP , + primary key ("id"), + unique ("clid") , + unique ("prefix") , + unique ("email") ); CREATE OR REPLACE FUNCTION update_registrar() RETURNS trigger AS ' @@ -91,375 +92,375 @@ CREATE TRIGGER add_current_date_to_registrar BEFORE UPDATE ON registry.registrar update_registrar(); CREATE TABLE registry.registrar_whitelist ( - "id" serial8, - "registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL, - "addr" varchar(45) NOT NULL, - primary key ("id"), + "id" serial8, + "registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL, + "addr" varchar(45) NOT NULL, + primary key ("id"), unique ("registrar_id", "addr") ); CREATE TABLE registry.registrar_contact ( - "id" serial8, - "registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL, - "type" varchar CHECK ("type" IN ( 'owner','admin','billing','tech' )) NOT NULL default 'admin', - "title" varchar(255) NOT NULL, - "first_name" varchar(255) NOT NULL, - "middle_name" varchar(255) NOT NULL, - "last_name" varchar(255) NOT NULL, - "org" varchar(255) default NULL, - "street1" varchar(255) default NULL, - "street2" varchar(255) default NULL, - "street3" varchar(255) default NULL, - "city" varchar(255) NOT NULL, - "sp" varchar(255) default NULL, - "pc" varchar(16) default NULL, - "cc" char(2) NOT NULL, - "voice" varchar(17) default NULL, - "fax" varchar(17) default NULL, - "email" varchar(255) NOT NULL, - primary key ("id"), - unique ("registrar_id", "type") + "id" serial8, + "registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL, + "type" varchar CHECK ("type" IN ( 'owner','admin','billing','tech','abuse' )) NOT NULL default 'admin', + "title" varchar(255) NOT NULL, + "first_name" varchar(255) NOT NULL, + "middle_name" varchar(255) NOT NULL, + "last_name" varchar(255) NOT NULL, + "org" varchar(255) default NULL, + "street1" varchar(255) default NULL, + "street2" varchar(255) default NULL, + "street3" varchar(255) default NULL, + "city" varchar(255) NOT NULL, + "sp" varchar(255) default NULL, + "pc" varchar(16) default NULL, + "cc" char(2) NOT NULL, + "voice" varchar(17) default NULL, + "fax" varchar(17) default NULL, + "email" varchar(255) NOT NULL, + primary key ("id"), + unique ("registrar_id", "type") ); CREATE TABLE registry.poll ( - "id" serial8, - "registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL, - "qdate" timestamp without time zone NOT NULL, - "msg" text default NULL, - "msg_type" varchar CHECK ("msg_type" IN ( 'lowBalance','domainTransfer','contactTransfer' )) default NULL, - "obj_name_or_id" varchar(68), - "obj_trstatus" varchar CHECK ("obj_trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, - "obj_reid" varchar(255), - "obj_redate" timestamp without time zone, - "obj_acid" varchar(255), - "obj_acdate" timestamp without time zone, - "obj_exdate" timestamp without time zone default NULL, - "registrarname" varchar(255), - "creditlimit" decimal(8,2) default '0.00', - "creditthreshold" decimal(8,2) default '0.00', - "creditthresholdtype" varchar CHECK ("creditthresholdtype" IN ( 'FIXED','PERCENT' )), - "availablecredit" decimal(8,2) default '0.00', - primary key ("id") + "id" serial8, + "registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL, + "qdate" timestamp without time zone NOT NULL, + "msg" text default NULL, + "msg_type" varchar CHECK ("msg_type" IN ( 'lowBalance','domainTransfer','contactTransfer' )) default NULL, + "obj_name_or_id" varchar(68), + "obj_trstatus" varchar CHECK ("obj_trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, + "obj_reid" varchar(255), + "obj_redate" timestamp without time zone, + "obj_acid" varchar(255), + "obj_acdate" timestamp without time zone, + "obj_exdate" timestamp without time zone default NULL, + "registrarname" varchar(255), + "creditlimit" decimal(8,2) default '0.00', + "creditthreshold" decimal(8,2) default '0.00', + "creditthresholdtype" varchar CHECK ("creditthresholdtype" IN ( 'FIXED','PERCENT' )), + "availablecredit" decimal(8,2) default '0.00', + primary key ("id") ); CREATE TABLE registry.payment_history ( - "id" serial8, - "registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL, - "date" timestamp without time zone NOT NULL, - "description" text NOT NULL, - "amount" decimal(8,2) NOT NULL, - primary key ("id") + "id" serial8, + "registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL, + "date" timestamp without time zone NOT NULL, + "description" text NOT NULL, + "amount" decimal(8,2) NOT NULL, + primary key ("id") ); CREATE TABLE registry.statement ( - "id" serial8, - "registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL, - "date" timestamp without time zone NOT NULL, - "command" varchar CHECK ("command" IN ( 'create','renew','transfer','restore','autoRenew' )) NOT NULL default 'create', - "domain_name" varchar(68) NOT NULL, - "length_in_months" smallint CHECK ("length_in_months" >= 0) NOT NULL, - "from" timestamp without time zone NOT NULL, - "to" timestamp without time zone NOT NULL, - "amount" decimal(8,2) NOT NULL, - primary key ("id") + "id" serial8, + "registrar_id" int CHECK ("registrar_id" >= 0) NOT NULL, + "date" timestamp without time zone NOT NULL, + "command" varchar CHECK ("command" IN ( 'create','renew','transfer','restore','autoRenew' )) NOT NULL default 'create', + "domain_name" varchar(68) NOT NULL, + "length_in_months" smallint CHECK ("length_in_months" >= 0) NOT NULL, + "from" timestamp without time zone NOT NULL, + "to" timestamp without time zone NOT NULL, + "amount" decimal(8,2) NOT NULL, + primary key ("id") ); CREATE TABLE registry.contact ( - "id" serial8, - "identifier" varchar(255) NOT NULL, - "voice" varchar(17) default NULL, - "voice_x" int default NULL, - "fax" varchar(17) default NULL, - "fax_x" int default NULL, - "email" varchar(255) NOT NULL, - "nin" varchar(255) default NULL, - "nin_type" varchar CHECK ("nin_type" IN ( 'personal','business' )) default NULL, - "clid" int CHECK ("clid" >= 0) NOT NULL, - "crid" int CHECK ("crid" >= 0) NOT NULL, - "crdate" timestamp without time zone NOT NULL, - "upid" int CHECK ("upid" >= 0) default NULL, - "update" timestamp without time zone default NULL, - "trdate" timestamp without time zone default NULL, - "trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, - "reid" int CHECK ("reid" >= 0) default NULL, - "redate" timestamp without time zone default NULL, - "acid" int CHECK ("acid" >= 0) default NULL, - "acdate" timestamp without time zone default NULL, - "disclose_voice" varchar CHECK ("disclose_voice" IN ( '0','1' )) NOT NULL default '1', - "disclose_fax" varchar CHECK ("disclose_fax" IN ( '0','1' )) NOT NULL default '1', - "disclose_email" varchar CHECK ("disclose_email" IN ( '0','1' )) NOT NULL default '1', - primary key ("id"), - unique ("identifier") + "id" serial8, + "identifier" varchar(255) NOT NULL, + "voice" varchar(17) default NULL, + "voice_x" int default NULL, + "fax" varchar(17) default NULL, + "fax_x" int default NULL, + "email" varchar(255) NOT NULL, + "nin" varchar(255) default NULL, + "nin_type" varchar CHECK ("nin_type" IN ( 'personal','business' )) default NULL, + "clid" int CHECK ("clid" >= 0) NOT NULL, + "crid" int CHECK ("crid" >= 0) NOT NULL, + "crdate" timestamp without time zone NOT NULL, + "upid" int CHECK ("upid" >= 0) default NULL, + "update" timestamp without time zone default NULL, + "trdate" timestamp without time zone default NULL, + "trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, + "reid" int CHECK ("reid" >= 0) default NULL, + "redate" timestamp without time zone default NULL, + "acid" int CHECK ("acid" >= 0) default NULL, + "acdate" timestamp without time zone default NULL, + "disclose_voice" varchar CHECK ("disclose_voice" IN ( '0','1' )) NOT NULL default '1', + "disclose_fax" varchar CHECK ("disclose_fax" IN ( '0','1' )) NOT NULL default '1', + "disclose_email" varchar CHECK ("disclose_email" IN ( '0','1' )) NOT NULL default '1', + primary key ("id"), + unique ("identifier") ); CREATE TABLE registry.contact_postalinfo ( - "id" serial8, - "contact_id" int CHECK ("contact_id" >= 0) NOT NULL, - "type" varchar CHECK ("type" IN ( 'int','loc' )) NOT NULL default 'int', - "name" varchar(255) NOT NULL, - "org" varchar(255) default NULL, - "street1" varchar(255) default NULL, - "street2" varchar(255) default NULL, - "street3" varchar(255) default NULL, - "city" varchar(255) NOT NULL, - "sp" varchar(255) default NULL, - "pc" varchar(16) default NULL, - "cc" char(2) NOT NULL, - "disclose_name_int" varchar CHECK ("disclose_name_int" IN ( '0','1' )) NOT NULL default '1', - "disclose_name_loc" varchar CHECK ("disclose_name_loc" IN ( '0','1' )) NOT NULL default '1', - "disclose_org_int" varchar CHECK ("disclose_org_int" IN ( '0','1' )) NOT NULL default '1', - "disclose_org_loc" varchar CHECK ("disclose_org_loc" IN ( '0','1' )) NOT NULL default '1', - "disclose_addr_int" varchar CHECK ("disclose_addr_int" IN ( '0','1' )) NOT NULL default '1', - "disclose_addr_loc" varchar CHECK ("disclose_addr_loc" IN ( '0','1' )) NOT NULL default '1', - primary key ("id"), - unique ("contact_id", "type") + "id" serial8, + "contact_id" int CHECK ("contact_id" >= 0) NOT NULL, + "type" varchar CHECK ("type" IN ( 'int','loc' )) NOT NULL default 'int', + "name" varchar(255) NOT NULL, + "org" varchar(255) default NULL, + "street1" varchar(255) default NULL, + "street2" varchar(255) default NULL, + "street3" varchar(255) default NULL, + "city" varchar(255) NOT NULL, + "sp" varchar(255) default NULL, + "pc" varchar(16) default NULL, + "cc" char(2) NOT NULL, + "disclose_name_int" varchar CHECK ("disclose_name_int" IN ( '0','1' )) NOT NULL default '1', + "disclose_name_loc" varchar CHECK ("disclose_name_loc" IN ( '0','1' )) NOT NULL default '1', + "disclose_org_int" varchar CHECK ("disclose_org_int" IN ( '0','1' )) NOT NULL default '1', + "disclose_org_loc" varchar CHECK ("disclose_org_loc" IN ( '0','1' )) NOT NULL default '1', + "disclose_addr_int" varchar CHECK ("disclose_addr_int" IN ( '0','1' )) NOT NULL default '1', + "disclose_addr_loc" varchar CHECK ("disclose_addr_loc" IN ( '0','1' )) NOT NULL default '1', + primary key ("id"), + unique ("contact_id", "type") ); CREATE TABLE registry.contact_authinfo ( - "id" serial8, - "contact_id" int CHECK ("contact_id" >= 0) NOT NULL, - "authtype" varchar CHECK ("authtype" IN ( 'pw','ext' )) NOT NULL default 'pw', - "authinfo" varchar(64) NOT NULL, - primary key ("id"), - unique ("contact_id") + "id" serial8, + "contact_id" int CHECK ("contact_id" >= 0) NOT NULL, + "authtype" varchar CHECK ("authtype" IN ( 'pw','ext' )) NOT NULL default 'pw', + "authinfo" varchar(64) NOT NULL, + primary key ("id"), + unique ("contact_id") ); CREATE TABLE registry.contact_status ( - "id" serial8, - "contact_id" int CHECK ("contact_id" >= 0) NOT NULL, - "status" varchar CHECK ("status" IN ( 'clientDeleteProhibited','clientTransferProhibited','clientUpdateProhibited','linked','ok','pendingCreate','pendingDelete','pendingTransfer','pendingUpdate','serverDeleteProhibited','serverTransferProhibited','serverUpdateProhibited' )) NOT NULL default 'ok', - primary key ("id"), - unique ("contact_id", "status") + "id" serial8, + "contact_id" int CHECK ("contact_id" >= 0) NOT NULL, + "status" varchar CHECK ("status" IN ( 'clientDeleteProhibited','clientTransferProhibited','clientUpdateProhibited','linked','ok','pendingCreate','pendingDelete','pendingTransfer','pendingUpdate','serverDeleteProhibited','serverTransferProhibited','serverUpdateProhibited' )) NOT NULL default 'ok', + primary key ("id"), + unique ("contact_id", "status") ); CREATE TABLE registry.domain ( - "id" serial8, - "name" varchar(68) NOT NULL, - "tldid" int CHECK ("tldid" >= 0) NOT NULL, - "registrant" int CHECK ("registrant" >= 0) default NULL, - "crdate" timestamp without time zone NOT NULL, - "exdate" timestamp without time zone NOT NULL, - "update" timestamp without time zone default NULL, - "clid" int CHECK ("clid" >= 0) NOT NULL, - "crid" int CHECK ("crid" >= 0) NOT NULL, - "upid" int CHECK ("upid" >= 0) default NULL, - "trdate" timestamp without time zone default NULL, - "trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, - "reid" int CHECK ("reid" >= 0) default NULL, - "redate" timestamp without time zone default NULL, - "acid" int CHECK ("acid" >= 0) default NULL, - "acdate" timestamp without time zone default NULL, - "transfer_exdate" timestamp without time zone default NULL, - "idnlang" varchar(16) default NULL, - "deltime" timestamp without time zone default NULL, - "restime" timestamp without time zone default NULL, - "rgpstatus" varchar CHECK ("rgpstatus" IN ( 'addPeriod','autoRenewPeriod','renewPeriod','transferPeriod','pendingDelete','pendingRestore','redemptionPeriod' )) default NULL, - "rgppostdata" text default NULL, - "rgpdeltime" timestamp without time zone default NULL, - "rgprestime" timestamp without time zone default NULL, - "rgpresreason" text default NULL, - "rgpstatement1" text default NULL, - "rgpstatement2" text default NULL, - "rgpother" text default NULL, - "addperiod" smallint CHECK ("addperiod" >= 0) default NULL, - "autorenewperiod" smallint CHECK ("autorenewperiod" >= 0) default NULL, - "renewperiod" smallint CHECK ("renewperiod" >= 0) default NULL, - "transferperiod" smallint CHECK ("transferperiod" >= 0) default NULL, - "reneweddate" timestamp without time zone default NULL, - primary key ("id"), - unique ("name") + "id" serial8, + "name" varchar(68) NOT NULL, + "tldid" int CHECK ("tldid" >= 0) NOT NULL, + "registrant" int CHECK ("registrant" >= 0) default NULL, + "crdate" timestamp without time zone NOT NULL, + "exdate" timestamp without time zone NOT NULL, + "update" timestamp without time zone default NULL, + "clid" int CHECK ("clid" >= 0) NOT NULL, + "crid" int CHECK ("crid" >= 0) NOT NULL, + "upid" int CHECK ("upid" >= 0) default NULL, + "trdate" timestamp without time zone default NULL, + "trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, + "reid" int CHECK ("reid" >= 0) default NULL, + "redate" timestamp without time zone default NULL, + "acid" int CHECK ("acid" >= 0) default NULL, + "acdate" timestamp without time zone default NULL, + "transfer_exdate" timestamp without time zone default NULL, + "idnlang" varchar(16) default NULL, + "deltime" timestamp without time zone default NULL, + "restime" timestamp without time zone default NULL, + "rgpstatus" varchar CHECK ("rgpstatus" IN ( 'addPeriod','autoRenewPeriod','renewPeriod','transferPeriod','pendingDelete','pendingRestore','redemptionPeriod' )) default NULL, + "rgppostdata" text default NULL, + "rgpdeltime" timestamp without time zone default NULL, + "rgprestime" timestamp without time zone default NULL, + "rgpresreason" text default NULL, + "rgpstatement1" text default NULL, + "rgpstatement2" text default NULL, + "rgpother" text default NULL, + "addperiod" smallint CHECK ("addperiod" >= 0) default NULL, + "autorenewperiod" smallint CHECK ("autorenewperiod" >= 0) default NULL, + "renewperiod" smallint CHECK ("renewperiod" >= 0) default NULL, + "transferperiod" smallint CHECK ("transferperiod" >= 0) default NULL, + "reneweddate" timestamp without time zone default NULL, + primary key ("id"), + unique ("name") ); CREATE TABLE registry.domain_contact_map ( - "id" serial8, - "domain_id" int CHECK ("domain_id" >= 0) NOT NULL, - "contact_id" int CHECK ("contact_id" >= 0) NOT NULL, - "type" varchar CHECK ("type" IN ( 'admin','billing','tech' )) NOT NULL default 'admin', - primary key ("id"), - unique ("domain_id", "contact_id", "type") + "id" serial8, + "domain_id" int CHECK ("domain_id" >= 0) NOT NULL, + "contact_id" int CHECK ("contact_id" >= 0) NOT NULL, + "type" varchar CHECK ("type" IN ( 'admin','billing','tech' )) NOT NULL default 'admin', + primary key ("id"), + unique ("domain_id", "contact_id", "type") ); CREATE TABLE registry.domain_authinfo ( - "id" serial8, - "domain_id" int CHECK ("domain_id" >= 0) NOT NULL, - "authtype" varchar CHECK ("authtype" IN ( 'pw','ext' )) NOT NULL default 'pw', - "authinfo" varchar(64) NOT NULL, - primary key ("id"), - unique ("domain_id") + "id" serial8, + "domain_id" int CHECK ("domain_id" >= 0) NOT NULL, + "authtype" varchar CHECK ("authtype" IN ( 'pw','ext' )) NOT NULL default 'pw', + "authinfo" varchar(64) NOT NULL, + primary key ("id"), + unique ("domain_id") ); CREATE TABLE registry.domain_status ( - "id" serial8, - "domain_id" int CHECK ("domain_id" >= 0) NOT NULL, - "status" varchar CHECK ("status" IN ( 'clientDeleteProhibited','clientHold','clientRenewProhibited','clientTransferProhibited','clientUpdateProhibited','inactive','ok','pendingCreate','pendingDelete','pendingRenew','pendingTransfer','pendingUpdate','serverDeleteProhibited','serverHold','serverRenewProhibited','serverTransferProhibited','serverUpdateProhibited' )) NOT NULL default 'ok', - primary key ("id"), - unique ("domain_id", "status") + "id" serial8, + "domain_id" int CHECK ("domain_id" >= 0) NOT NULL, + "status" varchar CHECK ("status" IN ( 'clientDeleteProhibited','clientHold','clientRenewProhibited','clientTransferProhibited','clientUpdateProhibited','inactive','ok','pendingCreate','pendingDelete','pendingRenew','pendingTransfer','pendingUpdate','serverDeleteProhibited','serverHold','serverRenewProhibited','serverTransferProhibited','serverUpdateProhibited' )) NOT NULL default 'ok', + primary key ("id"), + unique ("domain_id", "status") ); CREATE TABLE registry.secdns ( - "id" serial8, - "domain_id" int CHECK ("domain_id" >= 0) NOT NULL, - "maxsiglife" int CHECK ("maxsiglife" >= 0) default '604800', - "interface" varchar CHECK ("interface" IN ( 'dsData','keyData' )) NOT NULL default 'dsData', - "keytag" smallint CHECK ("keytag" >= 0) NOT NULL, - "alg" smallint CHECK ("alg" >= 0) NOT NULL default '5', - "digesttype" smallint CHECK ("digesttype" >= 0) NOT NULL default '1', - "digest" varchar(64) NOT NULL, - "flags" smallint CHECK ("flags" >= 0) default NULL, - "protocol" smallint CHECK ("protocol" >= 0) default NULL, - "keydata_alg" smallint CHECK ("keydata_alg" >= 0) default NULL, - "pubkey" varchar(255) default NULL, - primary key ("id"), - unique ("domain_id", "digest") + "id" serial8, + "domain_id" int CHECK ("domain_id" >= 0) NOT NULL, + "maxsiglife" int CHECK ("maxsiglife" >= 0) default '604800', + "interface" varchar CHECK ("interface" IN ( 'dsData','keyData' )) NOT NULL default 'dsData', + "keytag" smallint CHECK ("keytag" >= 0) NOT NULL, + "alg" smallint CHECK ("alg" >= 0) NOT NULL default '5', + "digesttype" smallint CHECK ("digesttype" >= 0) NOT NULL default '1', + "digest" varchar(64) NOT NULL, + "flags" smallint CHECK ("flags" >= 0) default NULL, + "protocol" smallint CHECK ("protocol" >= 0) default NULL, + "keydata_alg" smallint CHECK ("keydata_alg" >= 0) default NULL, + "pubkey" varchar(255) default NULL, + primary key ("id"), + unique ("domain_id", "digest") ); CREATE TABLE registry.host ( - "id" serial8, - "name" varchar(255) NOT NULL, - "domain_id" int CHECK ("domain_id" >= 0) default NULL, - "clid" int CHECK ("clid" >= 0) NOT NULL, - "crid" int CHECK ("crid" >= 0) NOT NULL, - "crdate" timestamp without time zone NOT NULL, - "upid" int CHECK ("upid" >= 0) default NULL, - "update" timestamp without time zone default NULL, - "trdate" timestamp without time zone default NULL, - primary key ("id"), - unique ("name") + "id" serial8, + "name" varchar(255) NOT NULL, + "domain_id" int CHECK ("domain_id" >= 0) default NULL, + "clid" int CHECK ("clid" >= 0) NOT NULL, + "crid" int CHECK ("crid" >= 0) NOT NULL, + "crdate" timestamp without time zone NOT NULL, + "upid" int CHECK ("upid" >= 0) default NULL, + "update" timestamp without time zone default NULL, + "trdate" timestamp without time zone default NULL, + primary key ("id"), + unique ("name") ); CREATE TABLE registry.domain_host_map ( - "id" serial8, - "domain_id" int CHECK ("domain_id" >= 0) NOT NULL, - "host_id" int CHECK ("host_id" >= 0) NOT NULL, - primary key ("id"), - unique ("domain_id", "host_id") + "id" serial8, + "domain_id" int CHECK ("domain_id" >= 0) NOT NULL, + "host_id" int CHECK ("host_id" >= 0) NOT NULL, + primary key ("id"), + unique ("domain_id", "host_id") ); CREATE TABLE registry.host_addr ( - "id" serial8, - "host_id" int CHECK ("host_id" >= 0) NOT NULL, - "addr" varchar(45) NOT NULL, - "ip" varchar CHECK ("ip" IN ( 'v4','v6' )) NOT NULL default 'v4', - primary key ("id"), - unique ("host_id", "addr", "ip") + "id" serial8, + "host_id" int CHECK ("host_id" >= 0) NOT NULL, + "addr" varchar(45) NOT NULL, + "ip" varchar CHECK ("ip" IN ( 'v4','v6' )) NOT NULL default 'v4', + primary key ("id"), + unique ("host_id", "addr", "ip") ); CREATE TABLE registry.host_status ( - "id" serial8, - "host_id" int CHECK ("host_id" >= 0) NOT NULL, - "status" varchar CHECK ("status" IN ( 'clientDeleteProhibited','clientUpdateProhibited','linked','ok','pendingCreate','pendingDelete','pendingTransfer','pendingUpdate','serverDeleteProhibited','serverUpdateProhibited' )) NOT NULL default 'ok', - primary key ("id"), - unique ("host_id", "status") + "id" serial8, + "host_id" int CHECK ("host_id" >= 0) NOT NULL, + "status" varchar CHECK ("status" IN ( 'clientDeleteProhibited','clientUpdateProhibited','linked','ok','pendingCreate','pendingDelete','pendingTransfer','pendingUpdate','serverDeleteProhibited','serverUpdateProhibited' )) NOT NULL default 'ok', + primary key ("id"), + unique ("host_id", "status") ); CREATE TABLE registry.domain_auto_approve_transfer ( - "id" serial8, - "name" varchar(68) NOT NULL, - "registrant" int CHECK ("registrant" >= 0) default NULL, - "crdate" timestamp without time zone NOT NULL, - "exdate" timestamp without time zone NOT NULL, - "update" timestamp without time zone default NULL, - "clid" int CHECK ("clid" >= 0) NOT NULL, - "crid" int CHECK ("crid" >= 0) NOT NULL, - "upid" int CHECK ("upid" >= 0) default NULL, - "trdate" timestamp without time zone default NULL, - "trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, - "reid" int CHECK ("reid" >= 0) default NULL, - "redate" timestamp without time zone default NULL, - "acid" int CHECK ("acid" >= 0) default NULL, - "acdate" timestamp without time zone default NULL, - "transfer_exdate" timestamp without time zone default NULL, - primary key ("id") + "id" serial8, + "name" varchar(68) NOT NULL, + "registrant" int CHECK ("registrant" >= 0) default NULL, + "crdate" timestamp without time zone NOT NULL, + "exdate" timestamp without time zone NOT NULL, + "update" timestamp without time zone default NULL, + "clid" int CHECK ("clid" >= 0) NOT NULL, + "crid" int CHECK ("crid" >= 0) NOT NULL, + "upid" int CHECK ("upid" >= 0) default NULL, + "trdate" timestamp without time zone default NULL, + "trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, + "reid" int CHECK ("reid" >= 0) default NULL, + "redate" timestamp without time zone default NULL, + "acid" int CHECK ("acid" >= 0) default NULL, + "acdate" timestamp without time zone default NULL, + "transfer_exdate" timestamp without time zone default NULL, + primary key ("id") ); CREATE TABLE registry.contact_auto_approve_transfer ( - "id" serial8, - "identifier" varchar(255) NOT NULL, - "voice" varchar(17) default NULL, - "voice_x" int default NULL, - "fax" varchar(17) default NULL, - "fax_x" int default NULL, - "email" varchar(255) NOT NULL, - "nin" varchar(255) default NULL, - "nin_type" varchar CHECK ("nin_type" IN ( 'personal','business' )) default NULL, - "clid" int CHECK ("clid" >= 0) NOT NULL, - "crid" int CHECK ("crid" >= 0) NOT NULL, - "crdate" timestamp without time zone NOT NULL, - "upid" int CHECK ("upid" >= 0) default NULL, - "update" timestamp without time zone default NULL, - "trdate" timestamp without time zone default NULL, - "trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, - "reid" int CHECK ("reid" >= 0) default NULL, - "redate" timestamp without time zone default NULL, - "acid" int CHECK ("acid" >= 0) default NULL, - "acdate" timestamp without time zone default NULL, - "disclose_voice" varchar CHECK ("disclose_voice" IN ( '0','1' )) NOT NULL default '1', - "disclose_fax" varchar CHECK ("disclose_fax" IN ( '0','1' )) NOT NULL default '1', - "disclose_email" varchar CHECK ("disclose_email" IN ( '0','1' )) NOT NULL default '1', - primary key ("id") + "id" serial8, + "identifier" varchar(255) NOT NULL, + "voice" varchar(17) default NULL, + "voice_x" int default NULL, + "fax" varchar(17) default NULL, + "fax_x" int default NULL, + "email" varchar(255) NOT NULL, + "nin" varchar(255) default NULL, + "nin_type" varchar CHECK ("nin_type" IN ( 'personal','business' )) default NULL, + "clid" int CHECK ("clid" >= 0) NOT NULL, + "crid" int CHECK ("crid" >= 0) NOT NULL, + "crdate" timestamp without time zone NOT NULL, + "upid" int CHECK ("upid" >= 0) default NULL, + "update" timestamp without time zone default NULL, + "trdate" timestamp without time zone default NULL, + "trstatus" varchar CHECK ("trstatus" IN ( 'clientApproved','clientCancelled','clientRejected','pending','serverApproved','serverCancelled' )) default NULL, + "reid" int CHECK ("reid" >= 0) default NULL, + "redate" timestamp without time zone default NULL, + "acid" int CHECK ("acid" >= 0) default NULL, + "acdate" timestamp without time zone default NULL, + "disclose_voice" varchar CHECK ("disclose_voice" IN ( '0','1' )) NOT NULL default '1', + "disclose_fax" varchar CHECK ("disclose_fax" IN ( '0','1' )) NOT NULL default '1', + "disclose_email" varchar CHECK ("disclose_email" IN ( '0','1' )) NOT NULL default '1', + primary key ("id") ); CREATE TABLE registry.statistics ( - "id" serial8, - "date" date NOT NULL, - "total_domains" int CHECK ("total_domains" >= 0) NOT NULL DEFAULT '0', - "created_domains" int CHECK ("created_domains" >= 0) NOT NULL DEFAULT '0', - "renewed_domains" int CHECK ("renewed_domains" >= 0) NOT NULL DEFAULT '0', - "transfered_domains" int CHECK ("transfered_domains" >= 0) NOT NULL DEFAULT '0', - "deleted_domains" int CHECK ("deleted_domains" >= 0) NOT NULL DEFAULT '0', - "restored_domains" int CHECK ("restored_domains" >= 0) NOT NULL DEFAULT '0', - primary key ("id"), + "id" serial8, + "date" date NOT NULL, + "total_domains" int CHECK ("total_domains" >= 0) NOT NULL DEFAULT '0', + "created_domains" int CHECK ("created_domains" >= 0) NOT NULL DEFAULT '0', + "renewed_domains" int CHECK ("renewed_domains" >= 0) NOT NULL DEFAULT '0', + "transfered_domains" int CHECK ("transfered_domains" >= 0) NOT NULL DEFAULT '0', + "deleted_domains" int CHECK ("deleted_domains" >= 0) NOT NULL DEFAULT '0', + "restored_domains" int CHECK ("restored_domains" >= 0) NOT NULL DEFAULT '0', + primary key ("id"), unique ("date") ); CREATE TABLE IF NOT EXISTS registry.users ( - "id" SERIAL PRIMARY KEY CHECK ("id" >= 0), - "email" VARCHAR(249) UNIQUE NOT NULL, - "password" VARCHAR(255) NOT NULL, - "username" VARCHAR(100) DEFAULT NULL, - "status" SMALLINT NOT NULL DEFAULT '0' CHECK ("status" >= 0), - "verified" SMALLINT NOT NULL DEFAULT '0' CHECK ("verified" >= 0), - "resettable" SMALLINT NOT NULL DEFAULT '1' CHECK ("resettable" >= 0), - "roles_mask" INTEGER NOT NULL DEFAULT '0' CHECK ("roles_mask" >= 0), - "registered" INTEGER NOT NULL CHECK ("registered" >= 0), - "last_login" INTEGER DEFAULT NULL CHECK ("last_login" >= 0), - "force_logout" INTEGER NOT NULL DEFAULT '0' CHECK ("force_logout" >= 0) + "id" SERIAL PRIMARY KEY CHECK ("id" >= 0), + "email" VARCHAR(249) UNIQUE NOT NULL, + "password" VARCHAR(255) NOT NULL, + "username" VARCHAR(100) DEFAULT NULL, + "status" SMALLINT NOT NULL DEFAULT '0' CHECK ("status" >= 0), + "verified" SMALLINT NOT NULL DEFAULT '0' CHECK ("verified" >= 0), + "resettable" SMALLINT NOT NULL DEFAULT '1' CHECK ("resettable" >= 0), + "roles_mask" INTEGER NOT NULL DEFAULT '0' CHECK ("roles_mask" >= 0), + "registered" INTEGER NOT NULL CHECK ("registered" >= 0), + "last_login" INTEGER DEFAULT NULL CHECK ("last_login" >= 0), + "force_logout" INTEGER NOT NULL DEFAULT '0' CHECK ("force_logout" >= 0) ); CREATE TABLE IF NOT EXISTS registry.users_confirmations ( - "id" SERIAL PRIMARY KEY CHECK ("id" >= 0), - "user_id" INTEGER NOT NULL CHECK ("user_id" >= 0), - "email" VARCHAR(249) NOT NULL, - "selector" VARCHAR(16) UNIQUE NOT NULL, - "token" VARCHAR(255) NOT NULL, - "expires" INTEGER NOT NULL CHECK ("expires" >= 0) + "id" SERIAL PRIMARY KEY CHECK ("id" >= 0), + "user_id" INTEGER NOT NULL CHECK ("user_id" >= 0), + "email" VARCHAR(249) NOT NULL, + "selector" VARCHAR(16) UNIQUE NOT NULL, + "token" VARCHAR(255) NOT NULL, + "expires" INTEGER NOT NULL CHECK ("expires" >= 0) ); CREATE INDEX IF NOT EXISTS "email_expires" ON registry.users_confirmations ("email", "expires"); CREATE INDEX IF NOT EXISTS "user_id" ON registry.users_confirmations ("user_id"); CREATE TABLE IF NOT EXISTS registry.users_remembered ( - "id" BIGSERIAL PRIMARY KEY CHECK ("id" >= 0), - "user" INTEGER NOT NULL CHECK ("user" >= 0), - "selector" VARCHAR(24) UNIQUE NOT NULL, - "token" VARCHAR(255) NOT NULL, - "expires" INTEGER NOT NULL CHECK ("expires" >= 0) + "id" BIGSERIAL PRIMARY KEY CHECK ("id" >= 0), + "user" INTEGER NOT NULL CHECK ("user" >= 0), + "selector" VARCHAR(24) UNIQUE NOT NULL, + "token" VARCHAR(255) NOT NULL, + "expires" INTEGER NOT NULL CHECK ("expires" >= 0) ); CREATE INDEX IF NOT EXISTS "user" ON registry.users_remembered ("user"); CREATE TABLE IF NOT EXISTS registry.users_resets ( - "id" BIGSERIAL PRIMARY KEY CHECK ("id" >= 0), - "user" INTEGER NOT NULL CHECK ("user" >= 0), - "selector" VARCHAR(20) UNIQUE NOT NULL, - "token" VARCHAR(255) NOT NULL, - "expires" INTEGER NOT NULL CHECK ("expires" >= 0) + "id" BIGSERIAL PRIMARY KEY CHECK ("id" >= 0), + "user" INTEGER NOT NULL CHECK ("user" >= 0), + "selector" VARCHAR(20) UNIQUE NOT NULL, + "token" VARCHAR(255) NOT NULL, + "expires" INTEGER NOT NULL CHECK ("expires" >= 0) ); CREATE INDEX IF NOT EXISTS "user_expires" ON registry.users_resets ("user", "expires"); CREATE TABLE IF NOT EXISTS registry.users_throttling ( - "bucket" VARCHAR(44) PRIMARY KEY, - "tokens" REAL NOT NULL CHECK ("tokens" >= 0), - "replenished_at" INTEGER NOT NULL CHECK ("replenished_at" >= 0), - "expires_at" INTEGER NOT NULL CHECK ("expires_at" >= 0) + "bucket" VARCHAR(44) PRIMARY KEY, + "tokens" REAL NOT NULL CHECK ("tokens" >= 0), + "replenished_at" INTEGER NOT NULL CHECK ("replenished_at" >= 0), + "expires_at" INTEGER NOT NULL CHECK ("expires_at" >= 0) ); CREATE INDEX IF NOT EXISTS "expires_at" ON registry.users_throttling ("expires_at"); @@ -489,7 +490,7 @@ CREATE TABLE registry.rde_escrow_deposits ( "id" serial8 PRIMARY KEY, "deposit_id" VARCHAR(255) UNIQUE, -- Unique deposit identifier "deposit_date" DATE NOT NULL, - "revision" INTEGER NOT NULL DEFAULT 1, + "revision" INTEGER NOT NULL DEFAULT 1, "file_name" VARCHAR(255) NOT NULL, "file_format" file_format_enum NOT NULL, -- Format of the data file "file_size" BIGINT CHECK ("file_size" >= 0), diff --git a/rdap/start_rdap.php b/rdap/start_rdap.php index dcd5c5c..4ce33f9 100644 --- a/rdap/start_rdap.php +++ b/rdap/start_rdap.php @@ -7,7 +7,32 @@ if (!extension_loaded('swoole')) { function mapContactToVCard($contactDetails, $role) { return [ 'objectClassName' => 'entity', + 'handle' => [$contactDetails['identifier']], 'roles' => [$role], + 'remarks' => [ + [ + "description" => [ + "This object's data has been partially omitted for privacy.", + "Only the registrar managing the record can view personal contact data." + ], + "links" => [ + [ + "href" => "https://namingo.org", + "rel" => "alternate", + "type" => "text/html" + ] + ], + "title" => "REDACTED FOR PRIVACY", + "type" => "Details are withheld due to privacy restrictions." + ], + [ + "description" => [ + "To obtain contact information for the domain registrant, please refer to the Registrar of Record's RDDS service as indicated in this report." + ], + "title" => "EMAIL REDACTED FOR PRIVACY", + "type" => "Details are withheld due to privacy restrictions." + ], + ], 'vcardArray' => [ "vcard", [ @@ -199,12 +224,29 @@ function handleDomainQuery($request, $response, $pdo, $domainName) { $stmt2->bindParam(':domain_id', $domainDetails['id'], PDO::PARAM_INT); $stmt2->execute(); $statuses = $stmt2->fetchAll(PDO::FETCH_COLUMN, 0); + + // Query: Get DNSSEC details + $stmt2a = $pdo->prepare("SELECT `interface` FROM `secdns` WHERE `domain_id` = :domain_id"); + $stmt2a->bindParam(':domain_id', $domainDetails['id'], PDO::PARAM_INT); + $stmt2a->execute(); + $isDelegationSigned = $stmt2a->fetchColumn() > 0; + + $stmt2b = $pdo->prepare("SELECT `secure` FROM `domain_tld` WHERE `tld` = :tld"); + $stmt2b->bindParam(':tld', $tld, PDO::PARAM_STR); + $stmt2b->execute(); + $isZoneSigned = ($stmt2b->fetchColumn() == 1); // Query 3: Get registrar details - $stmt3 = $pdo->prepare("SELECT `name`,`whois_server`,`url`,`abuse_email`,`abuse_phone` FROM `registrar` WHERE `id` = :clid"); + $stmt3 = $pdo->prepare("SELECT `name`,`iana_id`,`whois_server`,`rdap_server`,`url`,`abuse_email`,`abuse_phone` FROM `registrar` WHERE `id` = :clid"); $stmt3->bindParam(':clid', $domainDetails['clid'], PDO::PARAM_INT); $stmt3->execute(); $registrarDetails = $stmt3->fetch(PDO::FETCH_ASSOC); + + // Query: Get registrar abuse details + $stmt3a = $pdo->prepare("SELECT `first_name`,`last_name` FROM `registrar_contact` WHERE `registrar_id` = :clid"); + $stmt3a->bindParam(':clid', $domainDetails['clid'], PDO::PARAM_INT); + $stmt3a->execute(); + $registrarAbuseDetails = $stmt3a->fetch(PDO::FETCH_ASSOC); // Query 4: Get registrant details $stmt4 = $pdo->prepare("SELECT contact.identifier,contact_postalInfo.name,contact_postalInfo.org,contact_postalInfo.street1,contact_postalInfo.street2,contact_postalInfo.street3,contact_postalInfo.city,contact_postalInfo.sp,contact_postalInfo.pc,contact_postalInfo.cc,contact.voice,contact.voice_x,contact.fax,contact.fax_x,contact.email FROM contact,contact_postalInfo WHERE contact.id=:registrant AND contact_postalInfo.contact_id=contact.id"); @@ -269,6 +311,8 @@ function handleDomainQuery($request, $response, $pdo, $domainName) { if (isset($domainDetails['trdate']) && !empty($domainDetails['trdate'])) { $events[] = ['eventAction' => 'domain transfer', 'eventDate' => date('Y-m-d', strtotime($domainDetails['trdate']))]; } + + $abuseContactName = ($registrarAbuseDetails) ? $registrarAbuseDetails['first_name'] . ' ' . $registrarAbuseDetails['last_name'] : ''; // Construct the RDAP response in JSON format $rdapResponse = [ @@ -279,6 +323,54 @@ function handleDomainQuery($request, $response, $pdo, $domainName) { ], 'objectClassName' => 'domain', 'entities' => array_merge( + [ + [ + 'objectClassName' => 'entity', + 'entities' => [ + 'objectClassName' => 'entity', + 'roles' => ["abuse"], + "status" => ["active"], + "vcardArray" => [ + "vcard", + [ + ["version", [], "text", "4.0"], + ["fn", [], "text", $abuseContactName], + ["tel", ["type" => "voice"], "uri", "tel:" . $registrarDetails['abuse_phone']], + ["email", [], "text", $registrarDetails['abuse_email']] + ] + ], + ], + "handle" => $registrarDetails['iana_id'], + "links" => [ + [ + "href" => "https://rdap.example.com/entity/" . $registrarDetails['iana_id'], + "rel" => "self", + "type" => "application/rdap+json" + ] + ], + "publicIds" => [ + [ + "identifier" => $registrarDetails['iana_id'], + "type" => "IANA Registrar ID" + ] + ], + "remarks" => [ + [ + "description" => ["This record contains only a summary. For detailed information, please submit a query specifically for this object."], + "title" => "Incomplete Data", + "type" => "object truncated" + ] + ], + "roles" => ["registrar"], + "vcardArray" => [ + "vcard", + [ + ["version", [], "text", "4.0"], + ["fn", [], "text", $registrarDetails['name']] + ] + ], + ], + ], [ mapContactToVCard($registrantDetails, 'registrant') ], @@ -295,7 +387,6 @@ function handleDomainQuery($request, $response, $pdo, $domainName) { 'events' => $events, 'handle' => $domainDetails['id'] . '', 'ldhName' => $domain, - 'status' => $statuses, 'links' => [ [ 'href' => 'https://rdap.example.com/domain/' . $domain, @@ -320,8 +411,22 @@ function handleDomainQuery($request, $response, $pdo, $domainName) { 'type' => 'application/rdap+json', ], ], + 'remarks' => [ + [ + "description" => [ + "This record contains only a brief summary. To access the full details, please initiate a specific query targeting this entity." + ], + "title" => "Incomplete Data", + "type" => "The object's information is incomplete due to reasons not currently understood." + ], + ], ]; }, $nameservers), + "secureDNS" => [ + "delegationSigned" => $isDelegationSigned, + "zoneSigned" => $isZoneSigned + ], + 'status' => $statuses, "notices" => [ [ "description" => [