From a61a667992b6db5f2715e06656e6b18e9e989a63 Mon Sep 17 00:00:00 2001 From: Ben McIlwain Date: Mon, 18 Aug 2025 18:32:46 -0400 Subject: [PATCH] Add expiry_access_period_enabled boolean column to Tld table (#2804) This is the first in a series of PRs to implement the expiry access period (XAP). The overall fee schedules will be set in YAML config files, so the only DB change necessary should be this single new boolean column on the Tld entity, which defaults to false so as to require XAP explicitly being turned on for a given TLD. BUG=http://b/437398822 --- .../sql/er_diagram/brief_er_diagram.html | 6 +- .../sql/er_diagram/full_er_diagram.html | 5105 +++++++++-------- db/src/main/resources/sql/flyway.txt | 1 + ...V196__tld_expiry_access_period_enabled.sql | 16 + .../resources/sql/schema/nomulus.golden.sql | 3 +- 5 files changed, 2581 insertions(+), 2550 deletions(-) create mode 100644 db/src/main/resources/sql/flyway/V196__tld_expiry_access_period_enabled.sql diff --git a/db/src/main/resources/sql/er_diagram/brief_er_diagram.html b/db/src/main/resources/sql/er_diagram/brief_er_diagram.html index ccd569472..413aa9288 100644 --- a/db/src/main/resources/sql/er_diagram/brief_er_diagram.html +++ b/db/src/main/resources/sql/er_diagram/brief_er_diagram.html @@ -261,11 +261,11 @@ td.section { generated on - 2025-06-04 18:53:06 + 2025-08-18 18:05:23 last flyway file - V195__registrar_poc_id.sql + V196__tld_expiry_access_period_enabled.sql @@ -280,7 +280,7 @@ td.section { generated by SchemaCrawler 16.25.2 generated on - 2025-06-04 18:53:06 + 2025-08-18 18:05:23 diff --git a/db/src/main/resources/sql/er_diagram/full_er_diagram.html b/db/src/main/resources/sql/er_diagram/full_er_diagram.html index dbc3e329a..d4e3a8d24 100644 --- a/db/src/main/resources/sql/er_diagram/full_er_diagram.html +++ b/db/src/main/resources/sql/er_diagram/full_er_diagram.html @@ -261,1421 +261,1424 @@ td.section { </tr> <tr> <td class="property_name">generated on</td> - <td class="property_value">2025-06-04 18:53:03</td> + <td class="property_value">2025-08-18 18:05:20</td> </tr> <tr> <td class="property_name">last flyway file</td> - <td id="lastFlywayFile" class="property_value">V195__registrar_poc_id.sql</td> + <td id="lastFlywayFile" class="property_value">V196__tld_expiry_access_period_enabled.sql</td> </tr> </tbody> </table> <p> </p> <p> </p> - <svg viewBox="0.00 0.00 5683.00 8184.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="erDiagram" style="overflow: hidden; width: 100%; height: 800px"> - <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 8180)"> + <svg viewBox="0.00 0.00 5683.00 8204.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="erDiagram" style="overflow: hidden; width: 100%; height: 800px"> + <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 8200)"> <title> SchemaCrawler_Diagram - + generated by SchemaCrawler 16.25.2 generated on - 2025-06-04 18:53:03 + 2025-08-18 18:05:20 allocationtoken_a08ccbef - - public."AllocationToken" - - [table] - token - - text not null - update_timestamp - - timestamptz - allowed_registrar_ids - - _text - allowed_tlds - - _text - creation_time - - timestamptz not null - discount_fraction - - float8(17, 17) not null - discount_premiums - - bool not null - discount_years - - int4 not null - domain_name - - text - redemption_domain_repo_id - - text - token_status_transitions - - hstore - token_type - - text - redemption_domain_history_id - - int8 - renewal_price_behavior - - text not null - registration_behavior - - text not null - allowed_epp_actions - - _text - renewal_price_amount - - numeric(19, 2) - renewal_price_currency - - text - discount_price_amount - - numeric(19, 2) - discount_price_currency - - text - + + public."AllocationToken" + + [table] + token + + text not null + update_timestamp + + timestamptz + allowed_registrar_ids + + _text + allowed_tlds + + _text + creation_time + + timestamptz not null + discount_fraction + + float8(17, 17) not null + discount_premiums + + bool not null + discount_years + + int4 not null + domain_name + + text + redemption_domain_repo_id + + text + token_status_transitions + + hstore + token_type + + text + redemption_domain_history_id + + int8 + renewal_price_behavior + + text not null + registration_behavior + + text not null + allowed_epp_actions + + _text + renewal_price_amount + + numeric(19, 2) + renewal_price_currency + + text + discount_price_amount + + numeric(19, 2) + discount_price_currency + + text + billingevent_a57d1815 - - public."BillingEvent" - - [table] - billing_event_id - - int8 not null - registrar_id - - text not null - domain_history_revision_id - - int8 not null - domain_repo_id - - text not null - event_time - - timestamptz not null - flags - - _text - reason - - text not null - domain_name - - text not null - allocation_token - - text - billing_time - - timestamptz - cancellation_matching_billing_recurrence_id - - int8 - cost_amount - - numeric(19, 2) - cost_currency - - text - period_years - - int4 - synthetic_creation_time - - timestamptz - recurrence_history_revision_id - - int8 - + + public."BillingEvent" + + [table] + billing_event_id + + int8 not null + registrar_id + + text not null + domain_history_revision_id + + int8 not null + domain_repo_id + + text not null + event_time + + timestamptz not null + flags + + _text + reason + + text not null + domain_name + + text not null + allocation_token + + text + billing_time + + timestamptz + cancellation_matching_billing_recurrence_id + + int8 + cost_amount + + numeric(19, 2) + cost_currency + + text + period_years + + int4 + synthetic_creation_time + + timestamptz + recurrence_history_revision_id + + int8 + billingevent_a57d1815:w->allocationtoken_a08ccbef:e - - - - - - - - fk_billing_event_allocation_token + + + + + + + + fk_billing_event_allocation_token billingrecurrence_5fa2cb01 - - public."BillingRecurrence" - - [table] - billing_recurrence_id - - int8 not null - registrar_id - - text not null - domain_history_revision_id - - int8 not null - domain_repo_id - - text not null - event_time - - timestamptz not null - flags - - _text - reason - - text not null - domain_name - - text not null - recurrence_end_time - - timestamptz - recurrence_time_of_year - - text - renewal_price_behavior - - text not null - renewal_price_currency - - text - renewal_price_amount - - numeric(19, 2) - recurrence_last_expansion - - timestamptz not null - + + public."BillingRecurrence" + + [table] + billing_recurrence_id + + int8 not null + registrar_id + + text not null + domain_history_revision_id + + int8 not null + domain_repo_id + + text not null + event_time + + timestamptz not null + flags + + _text + reason + + text not null + domain_name + + text not null + recurrence_end_time + + timestamptz + recurrence_time_of_year + + text + renewal_price_behavior + + text not null + renewal_price_currency + + text + renewal_price_amount + + numeric(19, 2) + recurrence_last_expansion + + timestamptz not null + billingevent_a57d1815:w->billingrecurrence_5fa2cb01:e - - - - - - - - fk_billing_event_cancellation_matching_billing_recurrence_id + + + + + + + + fk_billing_event_cancellation_matching_billing_recurrence_id registrar_6e1503e3 - - public."Registrar" - - [table] - registrar_id - - text not null - allowed_tlds - - _text - billing_account_map - - hstore - block_premium_names - - bool not null - client_certificate - - text - client_certificate_hash - - text - contacts_require_syncing - - bool not null - creation_time - - timestamptz not null - drive_folder_id - - text - email_address - - text - failover_client_certificate - - text - failover_client_certificate_hash - - text - fax_number - - text - iana_identifier - - int8 - icann_referral_email - - text - i18n_address_city - - text - i18n_address_country_code - - text - i18n_address_state - - text - i18n_address_street_line1 - - text - i18n_address_street_line2 - - text - i18n_address_street_line3 - - text - i18n_address_zip - - text - ip_address_allow_list - - _text - last_certificate_update_time - - timestamptz - last_update_time - - timestamptz not null - localized_address_city - - text - localized_address_country_code - - text - localized_address_state - - text - localized_address_street_line1 - - text - localized_address_street_line2 - - text - localized_address_street_line3 - - text - localized_address_zip - - text - password_hash - - text - phone_number - - text - phone_passcode - - text - po_number - - text - rdap_base_urls - - _text - registrar_name - - text not null - registry_lock_allowed - - bool not null - password_salt - - text - state - - text - type - - text not null - url - - text - whois_server - - text - last_expiring_cert_notification_sent_date - - timestamptz - last_expiring_failover_cert_notification_sent_date - - timestamptz - last_poc_verification_date - - timestamptz - + + public."Registrar" + + [table] + registrar_id + + text not null + allowed_tlds + + _text + billing_account_map + + hstore + block_premium_names + + bool not null + client_certificate + + text + client_certificate_hash + + text + contacts_require_syncing + + bool not null + creation_time + + timestamptz not null + drive_folder_id + + text + email_address + + text + failover_client_certificate + + text + failover_client_certificate_hash + + text + fax_number + + text + iana_identifier + + int8 + icann_referral_email + + text + i18n_address_city + + text + i18n_address_country_code + + text + i18n_address_state + + text + i18n_address_street_line1 + + text + i18n_address_street_line2 + + text + i18n_address_street_line3 + + text + i18n_address_zip + + text + ip_address_allow_list + + _text + last_certificate_update_time + + timestamptz + last_update_time + + timestamptz not null + localized_address_city + + text + localized_address_country_code + + text + localized_address_state + + text + localized_address_street_line1 + + text + localized_address_street_line2 + + text + localized_address_street_line3 + + text + localized_address_zip + + text + password_hash + + text + phone_number + + text + phone_passcode + + text + po_number + + text + rdap_base_urls + + _text + registrar_name + + text not null + registry_lock_allowed + + bool not null + password_salt + + text + state + + text + type + + text not null + url + + text + whois_server + + text + last_expiring_cert_notification_sent_date + + timestamptz + last_expiring_failover_cert_notification_sent_date + + timestamptz + last_poc_verification_date + + timestamptz + billingevent_a57d1815:w->registrar_6e1503e3:e - - - - - - - - fk_billing_event_registrar_id + + + + + + + + fk_billing_event_registrar_id domain_6c51cffa - - public."Domain" - - [table] - repo_id - - text not null - creation_registrar_id - - text not null - creation_time - - timestamptz not null - current_sponsor_registrar_id - - text not null - deletion_time - - timestamptz - last_epp_update_registrar_id - - text - last_epp_update_time - - timestamptz - statuses - - _text - auth_info_repo_id - - text - auth_info_value - - text - domain_name - - text - idn_table_name - - text - last_transfer_time - - timestamptz - launch_notice_accepted_time - - timestamptz - launch_notice_expiration_time - - timestamptz - launch_notice_tcn_id - - text - launch_notice_validator_id - - text - registration_expiration_time - - timestamptz - smd_id - - text - subordinate_hosts - - _text - tld - - text - admin_contact - - text - billing_contact - - text - registrant_contact - - text - tech_contact - - text - transfer_poll_message_id_1 - - int8 - transfer_poll_message_id_2 - - int8 - transfer_billing_cancellation_id - - int8 - transfer_billing_event_id - - int8 - transfer_billing_recurrence_id - - int8 - transfer_autorenew_poll_message_id - - int8 - transfer_renew_period_unit - - text - transfer_renew_period_value - - int4 - transfer_client_txn_id - - text - transfer_server_txn_id - - text - transfer_registration_expiration_time - - timestamptz - transfer_gaining_registrar_id - - text - transfer_losing_registrar_id - - text - transfer_pending_expiration_time - - timestamptz - transfer_request_time - - timestamptz - transfer_status - - text - update_timestamp - - timestamptz - billing_recurrence_id - - int8 - autorenew_poll_message_id - - int8 - deletion_poll_message_id - - int8 - autorenew_end_time - - timestamptz - transfer_autorenew_poll_message_history_id - - int8 - transfer_history_entry_id - - int8 - transfer_repo_id - - text - transfer_poll_message_id_3 - - int8 - current_package_token - - text - lordn_phase - - text not null - last_update_time_via_epp - - timestamptz - + + public."Domain" + + [table] + repo_id + + text not null + creation_registrar_id + + text not null + creation_time + + timestamptz not null + current_sponsor_registrar_id + + text not null + deletion_time + + timestamptz + last_epp_update_registrar_id + + text + last_epp_update_time + + timestamptz + statuses + + _text + auth_info_repo_id + + text + auth_info_value + + text + domain_name + + text + idn_table_name + + text + last_transfer_time + + timestamptz + launch_notice_accepted_time + + timestamptz + launch_notice_expiration_time + + timestamptz + launch_notice_tcn_id + + text + launch_notice_validator_id + + text + registration_expiration_time + + timestamptz + smd_id + + text + subordinate_hosts + + _text + tld + + text + admin_contact + + text + billing_contact + + text + registrant_contact + + text + tech_contact + + text + transfer_poll_message_id_1 + + int8 + transfer_poll_message_id_2 + + int8 + transfer_billing_cancellation_id + + int8 + transfer_billing_event_id + + int8 + transfer_billing_recurrence_id + + int8 + transfer_autorenew_poll_message_id + + int8 + transfer_renew_period_unit + + text + transfer_renew_period_value + + int4 + transfer_client_txn_id + + text + transfer_server_txn_id + + text + transfer_registration_expiration_time + + timestamptz + transfer_gaining_registrar_id + + text + transfer_losing_registrar_id + + text + transfer_pending_expiration_time + + timestamptz + transfer_request_time + + timestamptz + transfer_status + + text + update_timestamp + + timestamptz + billing_recurrence_id + + int8 + autorenew_poll_message_id + + int8 + deletion_poll_message_id + + int8 + autorenew_end_time + + timestamptz + transfer_autorenew_poll_message_history_id + + int8 + transfer_history_entry_id + + int8 + transfer_repo_id + + text + transfer_poll_message_id_3 + + int8 + current_package_token + + text + lordn_phase + + text not null + last_update_time_via_epp + + timestamptz + domain_6c51cffa:w->allocationtoken_a08ccbef:e - - - - - - - - fk_domain_current_package_token + + + + + + + + fk_domain_current_package_token domain_6c51cffa:w->billingevent_a57d1815:e - - - - - - - - fk_domain_transfer_billing_event_id + + + + + + + + fk_domain_transfer_billing_event_id billingcancellation_6eedf614 - - public."BillingCancellation" - - [table] - billing_cancellation_id - - int8 not null - registrar_id - - text not null - domain_history_revision_id - - int8 not null - domain_repo_id - - text not null - event_time - - timestamptz not null - flags - - _text - reason - - text not null - domain_name - - text not null - billing_time - - timestamptz - billing_event_id - - int8 - billing_recurrence_id - - int8 - + + public."BillingCancellation" + + [table] + billing_cancellation_id + + int8 not null + registrar_id + + text not null + domain_history_revision_id + + int8 not null + domain_repo_id + + text not null + event_time + + timestamptz not null + flags + + _text + reason + + text not null + domain_name + + text not null + billing_time + + timestamptz + billing_event_id + + int8 + billing_recurrence_id + + int8 + domain_6c51cffa:w->billingcancellation_6eedf614:e - - - - - - - - fk_domain_transfer_billing_cancellation_id + + + + + + + + fk_domain_transfer_billing_cancellation_id domain_6c51cffa:w->billingrecurrence_5fa2cb01:e - - - - - - - + + + + + + + fk_domain_billing_recurrence_id domain_6c51cffa:w->billingrecurrence_5fa2cb01:e - - - - - - - - fk_domain_transfer_billing_recurrence_id + + + + + + + + fk_domain_transfer_billing_recurrence_id contact_8de8cb16 - - public."Contact" - - [table] - repo_id - - text not null - creation_registrar_id - - text not null - creation_time - - timestamptz not null - current_sponsor_registrar_id - - text not null - deletion_time - - timestamptz - last_epp_update_registrar_id - - text - last_epp_update_time - - timestamptz - statuses - - _text - auth_info_repo_id - - text - auth_info_value - - text - contact_id - - text - disclose_types_addr - - _text - disclose_show_email - - bool - disclose_show_fax - - bool - disclose_mode_flag - - bool - disclose_types_name - - _text - disclose_types_org - - _text - disclose_show_voice - - bool - email - - text - fax_phone_extension - - text - fax_phone_number - - text - addr_i18n_city - - text - addr_i18n_country_code - - text - addr_i18n_state - - text - addr_i18n_street_line1 - - text - addr_i18n_street_line2 - - text - addr_i18n_street_line3 - - text - addr_i18n_zip - - text - addr_i18n_name - - text - addr_i18n_org - - text - addr_i18n_type - - text - last_transfer_time - - timestamptz - addr_local_city - - text - addr_local_country_code - - text - addr_local_state - - text - addr_local_street_line1 - - text - addr_local_street_line2 - - text - addr_local_street_line3 - - text - addr_local_zip - - text - addr_local_name - - text - addr_local_org - - text - addr_local_type - - text - search_name - - text - voice_phone_extension - - text - voice_phone_number - - text - transfer_poll_message_id_1 - - int8 - transfer_poll_message_id_2 - - int8 - transfer_client_txn_id - - text - transfer_server_txn_id - - text - transfer_gaining_registrar_id - - text - transfer_losing_registrar_id - - text - transfer_pending_expiration_time - - timestamptz - transfer_request_time - - timestamptz - transfer_status - - text - update_timestamp - - timestamptz - transfer_history_entry_id - - int8 - transfer_repo_id - - text - transfer_poll_message_id_3 - - int8 - last_update_time_via_epp - - timestamptz - + + public."Contact" + + [table] + repo_id + + text not null + creation_registrar_id + + text not null + creation_time + + timestamptz not null + current_sponsor_registrar_id + + text not null + deletion_time + + timestamptz + last_epp_update_registrar_id + + text + last_epp_update_time + + timestamptz + statuses + + _text + auth_info_repo_id + + text + auth_info_value + + text + contact_id + + text + disclose_types_addr + + _text + disclose_show_email + + bool + disclose_show_fax + + bool + disclose_mode_flag + + bool + disclose_types_name + + _text + disclose_types_org + + _text + disclose_show_voice + + bool + email + + text + fax_phone_extension + + text + fax_phone_number + + text + addr_i18n_city + + text + addr_i18n_country_code + + text + addr_i18n_state + + text + addr_i18n_street_line1 + + text + addr_i18n_street_line2 + + text + addr_i18n_street_line3 + + text + addr_i18n_zip + + text + addr_i18n_name + + text + addr_i18n_org + + text + addr_i18n_type + + text + last_transfer_time + + timestamptz + addr_local_city + + text + addr_local_country_code + + text + addr_local_state + + text + addr_local_street_line1 + + text + addr_local_street_line2 + + text + addr_local_street_line3 + + text + addr_local_zip + + text + addr_local_name + + text + addr_local_org + + text + addr_local_type + + text + search_name + + text + voice_phone_extension + + text + voice_phone_number + + text + transfer_poll_message_id_1 + + int8 + transfer_poll_message_id_2 + + int8 + transfer_client_txn_id + + text + transfer_server_txn_id + + text + transfer_gaining_registrar_id + + text + transfer_losing_registrar_id + + text + transfer_pending_expiration_time + + timestamptz + transfer_request_time + + timestamptz + transfer_status + + text + update_timestamp + + timestamptz + transfer_history_entry_id + + int8 + transfer_repo_id + + text + transfer_poll_message_id_3 + + int8 + last_update_time_via_epp + + timestamptz + domain_6c51cffa:w->contact_8de8cb16:e - - - - - - - - fk_domain_admin_contact + + + + + + + + fk_domain_admin_contact domain_6c51cffa:w->contact_8de8cb16:e - - - - - - - - fk_domain_billing_contact + + + + + + + + fk_domain_billing_contact domain_6c51cffa:w->contact_8de8cb16:e - - - - - - - - fk_domain_registrant_contact + + + + + + + + fk_domain_registrant_contact domain_6c51cffa:w->contact_8de8cb16:e - - - - - - - - fk_domain_tech_contact + + + + + + + + fk_domain_tech_contact domain_6c51cffa:w->registrar_6e1503e3:e - - - - - - - - fk2jc69qyg2tv9hhnmif6oa1cx1 + + + + + + + + fk2jc69qyg2tv9hhnmif6oa1cx1 domain_6c51cffa:w->registrar_6e1503e3:e - - - - - - - - fk2u3srsfbei272093m3b3xwj23 + + + + + + + + fk2u3srsfbei272093m3b3xwj23 domain_6c51cffa:w->registrar_6e1503e3:e - - - - - - - - fkjc0r9r5y1lfbt4gpbqw4wsuvq + + + + + + + + fkjc0r9r5y1lfbt4gpbqw4wsuvq domain_6c51cffa:w->registrar_6e1503e3:e - - - - - - - - fk_domain_transfer_gaining_registrar_id + + + + + + + + fk_domain_transfer_gaining_registrar_id domain_6c51cffa:w->registrar_6e1503e3:e - - - - - - - - fk_domain_transfer_losing_registrar_id + + + + + + + + fk_domain_transfer_losing_registrar_id tld_f1fa57e2 - - public."Tld" - - [table] - tld_name - - text not null - add_grace_period_length - - interval not null - allowed_fully_qualified_host_names - - _text - allowed_registrant_contact_ids - - _text - anchor_tenant_add_grace_period_length - - interval not null - auto_renew_grace_period_length - - interval not null - automatic_transfer_length - - interval not null - claims_period_end - - timestamptz not null - creation_time - - timestamptz not null - currency - - text not null - dns_paused - - bool not null - dns_writers - - _text not null - drive_folder_id - - text - eap_fee_schedule - - hstore not null - escrow_enabled - - bool not null - invoicing_enabled - - bool not null - lordn_username - - text - num_dns_publish_locks - - int4 not null - pending_delete_length - - interval not null - premium_list_name - - text - pricing_engine_class_name - - text - redemption_grace_period_length - - interval not null - registry_lock_or_unlock_cost_amount - - numeric(19, 2) - registry_lock_or_unlock_cost_currency - - text - renew_billing_cost_transitions - - hstore not null - renew_grace_period_length - - interval not null - reserved_list_names - - _text - restore_billing_cost_amount - - numeric(19, 2) - restore_billing_cost_currency - - text - roid_suffix - - text - server_status_change_billing_cost_amount - - numeric(19, 2) - server_status_change_billing_cost_currency - - text - tld_state_transitions - - hstore not null - tld_type - - text not null - tld_unicode - - text not null - transfer_grace_period_length - - interval not null - default_promo_tokens - - _text - dns_a_plus_aaaa_ttl - - interval - dns_ds_ttl - - interval - dns_ns_ttl - - interval - idn_tables - - _text - breakglass_mode - - bool not null - bsa_enroll_start_time - - timestamptz - create_billing_cost_transitions - - hstore not null - + + public."Tld" + + [table] + tld_name + + text not null + add_grace_period_length + + interval not null + allowed_fully_qualified_host_names + + _text + allowed_registrant_contact_ids + + _text + anchor_tenant_add_grace_period_length + + interval not null + auto_renew_grace_period_length + + interval not null + automatic_transfer_length + + interval not null + claims_period_end + + timestamptz not null + creation_time + + timestamptz not null + currency + + text not null + dns_paused + + bool not null + dns_writers + + _text not null + drive_folder_id + + text + eap_fee_schedule + + hstore not null + escrow_enabled + + bool not null + invoicing_enabled + + bool not null + lordn_username + + text + num_dns_publish_locks + + int4 not null + pending_delete_length + + interval not null + premium_list_name + + text + pricing_engine_class_name + + text + redemption_grace_period_length + + interval not null + registry_lock_or_unlock_cost_amount + + numeric(19, 2) + registry_lock_or_unlock_cost_currency + + text + renew_billing_cost_transitions + + hstore not null + renew_grace_period_length + + interval not null + reserved_list_names + + _text + restore_billing_cost_amount + + numeric(19, 2) + restore_billing_cost_currency + + text + roid_suffix + + text + server_status_change_billing_cost_amount + + numeric(19, 2) + server_status_change_billing_cost_currency + + text + tld_state_transitions + + hstore not null + tld_type + + text not null + tld_unicode + + text not null + transfer_grace_period_length + + interval not null + default_promo_tokens + + _text + dns_a_plus_aaaa_ttl + + interval + dns_ds_ttl + + interval + dns_ns_ttl + + interval + idn_tables + + _text + breakglass_mode + + bool not null + bsa_enroll_start_time + + timestamptz + create_billing_cost_transitions + + hstore not null + expiry_access_period_enabled + + bool not null + domain_6c51cffa:w->tld_f1fa57e2:e - - - - - - - - fk_domain_tld + + + + + + + + fk_domain_tld domainhistory_a54cc226 - - public."DomainHistory" - - [table] - history_revision_id - - int8 not null - history_by_superuser - - bool not null - history_registrar_id - - text - history_modification_time - - timestamptz not null - history_reason - - text - history_requested_by_registrar - - bool - history_client_transaction_id - - text - history_server_transaction_id - - text - history_type - - text not null - history_xml_bytes - - bytea - admin_contact - - text - auth_info_repo_id - - text - auth_info_value - - text - billing_recurrence_id - - int8 - autorenew_poll_message_id - - int8 - billing_contact - - text - deletion_poll_message_id - - int8 - domain_name - - text - idn_table_name - - text - last_transfer_time - - timestamptz - launch_notice_accepted_time - - timestamptz - launch_notice_expiration_time - - timestamptz - launch_notice_tcn_id - - text - launch_notice_validator_id - - text - registrant_contact - - text - registration_expiration_time - - timestamptz - smd_id - - text - subordinate_hosts - - _text - tech_contact - - text - tld - - text - transfer_billing_cancellation_id - - int8 - transfer_billing_recurrence_id - - int8 - transfer_autorenew_poll_message_id - - int8 - transfer_billing_event_id - - int8 - transfer_renew_period_unit - - text - transfer_renew_period_value - - int4 - transfer_registration_expiration_time - - timestamptz - transfer_poll_message_id_1 - - int8 - transfer_poll_message_id_2 - - int8 - transfer_client_txn_id - - text - transfer_server_txn_id - - text - transfer_gaining_registrar_id - - text - transfer_losing_registrar_id - - text - transfer_pending_expiration_time - - timestamptz - transfer_request_time - - timestamptz - transfer_status - - text - creation_registrar_id - - text - creation_time - - timestamptz - current_sponsor_registrar_id - - text - deletion_time - - timestamptz - last_epp_update_registrar_id - - text - last_epp_update_time - - timestamptz - statuses - - _text - update_timestamp - - timestamptz - domain_repo_id - - text not null - autorenew_end_time - - timestamptz - history_other_registrar_id - - text - history_period_unit - - text - history_period_value - - int4 - autorenew_poll_message_history_id - - int8 - transfer_autorenew_poll_message_history_id - - int8 - transfer_history_entry_id - - int8 - transfer_repo_id - - text - transfer_poll_message_id_3 - - int8 - current_package_token - - text - lordn_phase - - text not null - last_update_time_via_epp - - timestamptz - + + public."DomainHistory" + + [table] + history_revision_id + + int8 not null + history_by_superuser + + bool not null + history_registrar_id + + text + history_modification_time + + timestamptz not null + history_reason + + text + history_requested_by_registrar + + bool + history_client_transaction_id + + text + history_server_transaction_id + + text + history_type + + text not null + history_xml_bytes + + bytea + admin_contact + + text + auth_info_repo_id + + text + auth_info_value + + text + billing_recurrence_id + + int8 + autorenew_poll_message_id + + int8 + billing_contact + + text + deletion_poll_message_id + + int8 + domain_name + + text + idn_table_name + + text + last_transfer_time + + timestamptz + launch_notice_accepted_time + + timestamptz + launch_notice_expiration_time + + timestamptz + launch_notice_tcn_id + + text + launch_notice_validator_id + + text + registrant_contact + + text + registration_expiration_time + + timestamptz + smd_id + + text + subordinate_hosts + + _text + tech_contact + + text + tld + + text + transfer_billing_cancellation_id + + int8 + transfer_billing_recurrence_id + + int8 + transfer_autorenew_poll_message_id + + int8 + transfer_billing_event_id + + int8 + transfer_renew_period_unit + + text + transfer_renew_period_value + + int4 + transfer_registration_expiration_time + + timestamptz + transfer_poll_message_id_1 + + int8 + transfer_poll_message_id_2 + + int8 + transfer_client_txn_id + + text + transfer_server_txn_id + + text + transfer_gaining_registrar_id + + text + transfer_losing_registrar_id + + text + transfer_pending_expiration_time + + timestamptz + transfer_request_time + + timestamptz + transfer_status + + text + creation_registrar_id + + text + creation_time + + timestamptz + current_sponsor_registrar_id + + text + deletion_time + + timestamptz + last_epp_update_registrar_id + + text + last_epp_update_time + + timestamptz + statuses + + _text + update_timestamp + + timestamptz + domain_repo_id + + text not null + autorenew_end_time + + timestamptz + history_other_registrar_id + + text + history_period_unit + + text + history_period_value + + int4 + autorenew_poll_message_history_id + + int8 + transfer_autorenew_poll_message_history_id + + int8 + transfer_history_entry_id + + int8 + transfer_repo_id + + text + transfer_poll_message_id_3 + + int8 + current_package_token + + text + lordn_phase + + text not null + last_update_time_via_epp + + timestamptz + domainhistory_a54cc226:w->allocationtoken_a08ccbef:e - - - - - - - - fk_domain_history_current_package_token + + + + + + + + fk_domain_history_current_package_token domainhistory_a54cc226:w->domain_6c51cffa:e - - - - - - - - fk_domain_history_domain_repo_id + + + + + + + + fk_domain_history_domain_repo_id domainhistory_a54cc226:w->registrar_6e1503e3:e - - - - - - - - fk_domain_history_registrar_id + + + + + + + + fk_domain_history_registrar_id billingcancellation_6eedf614:w->billingevent_a57d1815:e - - - - - - - - fk_billing_cancellation_billing_event_id + + + + + + + + fk_billing_cancellation_billing_event_id billingcancellation_6eedf614:w->billingrecurrence_5fa2cb01:e - - - - - - - - fk_billing_cancellation_billing_recurrence_id + + + + + + + + fk_billing_cancellation_billing_recurrence_id billingcancellation_6eedf614:w->registrar_6e1503e3:e - - - - - - - - fk_billing_cancellation_registrar_id + + + + + + + + fk_billing_cancellation_registrar_id @@ -1712,790 +1715,790 @@ td.section { <title> graceperiod_cd3b2e8f:w->billingevent_a57d1815:e - + - - - - - fk_grace_period_billing_event_id + + + + + fk_grace_period_billing_event_id graceperiod_cd3b2e8f:w->domain_6c51cffa:e - - + + - - - - - fk_grace_period_domain_repo_id + + + + + fk_grace_period_domain_repo_id graceperiod_cd3b2e8f:w->billingrecurrence_5fa2cb01:e - + - - - - + + + + fk_grace_period_billing_recurrence_id graceperiod_cd3b2e8f:w->registrar_6e1503e3:e - + - - - - + + + + fk_grace_period_registrar_id billingrecurrence_5fa2cb01:w->registrar_6e1503e3:e - - - - - - - - fk_billing_recurrence_registrar_id + + + + + + + + fk_billing_recurrence_registrar_id bsadomainrefresh_c8f4c45d - - public."BsaDomainRefresh" - - [table] - job_id - - bigserial not null - - auto-incremented - creation_time - - timestamptz not null - stage - - text not null - update_timestamp - - timestamptz - + + public."BsaDomainRefresh" + + [table] + job_id + + bigserial not null + + auto-incremented + creation_time + + timestamptz not null + stage + + text not null + update_timestamp + + timestamptz + bsadownload_98d031ce - - public."BsaDownload" - - [table] - job_id - - bigserial not null - - auto-incremented - block_list_checksums - - text not null - creation_time - - timestamptz not null - stage - - text not null - update_timestamp - - timestamptz - + + public."BsaDownload" + + [table] + job_id + + bigserial not null + + auto-incremented + block_list_checksums + + text not null + creation_time + + timestamptz not null + stage + + text not null + update_timestamp + + timestamptz + bsalabel_2755e1da - - public."BsaLabel" - - [table] - label - - text not null - creation_time - - timestamptz not null - + + public."BsaLabel" + + [table] + label + + text not null + creation_time + + timestamptz not null + bsaunblockabledomain_b739a38 - - public."BsaUnblockableDomain" - - [table] - label - - text not null - tld - - text not null - creation_time - - timestamptz not null - reason - - text not null - + + public."BsaUnblockableDomain" + + [table] + label + + text not null + tld + + text not null + creation_time + + timestamptz not null + reason + + text not null + bsaunblockabledomain_b739a38:w->bsalabel_2755e1da:e - - - - - - - - fkbsaunblockabledomainlabel + + + + + + + + fkbsaunblockabledomainlabel claimsentry_105da9f1 - - public."ClaimsEntry" - - [table] - revision_id - - int8 not null - claim_key - - text not null - domain_label - - text not null - + + public."ClaimsEntry" + + [table] + revision_id + + int8 not null + claim_key + + text not null + domain_label + + text not null + claimslist_3d49bc2b - - public."ClaimsList" - - [table] - revision_id - - bigserial not null - - auto-incremented - creation_timestamp - - timestamptz not null - tmdb_generation_time - - timestamptz not null - + + public."ClaimsList" + + [table] + revision_id + + bigserial not null + + auto-incremented + creation_timestamp + + timestamptz not null + tmdb_generation_time + + timestamptz not null + claimsentry_105da9f1:w->claimslist_3d49bc2b:e - - - - - - - - fk6sc6at5hedffc0nhdcab6ivuq + + + + + + + + fk6sc6at5hedffc0nhdcab6ivuq consoleeppactionhistory_bcc2a2c6 - - public."ConsoleEppActionHistory" - - [table] - history_revision_id - - int8 not null - history_modification_time - - timestamptz not null - history_method - - text not null - history_request_body - - text - history_type - - text not null - history_url - - text not null - history_entry_class - - text not null - repo_id - - text not null - revision_id - - int8 not null - history_acting_user - - text not null - + + public."ConsoleEppActionHistory" + + [table] + history_revision_id + + int8 not null + history_modification_time + + timestamptz not null + history_method + + text not null + history_request_body + + text + history_type + + text not null + history_url + + text not null + history_entry_class + + text not null + repo_id + + text not null + revision_id + + int8 not null + history_acting_user + + text not null + consoleupdatehistory_5237b2aa - - public."ConsoleUpdateHistory" - - [table] - revision_id - - int8 not null - modification_time - - timestamptz not null - "method" - - text not null - type - - text not null - url - - text not null - description - - text - acting_user - - text not null - + + public."ConsoleUpdateHistory" + + [table] + revision_id + + int8 not null + modification_time + + timestamptz not null + "method" + + text not null + type + + text not null + url + + text not null + description + + text + acting_user + + text not null + user_f2216f01 - - public."User" - - [table] - email_address - - text not null - registry_lock_password_hash - - text - registry_lock_password_salt - - text - global_role - - text not null - is_admin - - bool not null - registrar_roles - - hstore not null - update_timestamp - - timestamptz - registry_lock_email_address - - text - + + public."User" + + [table] + email_address + + text not null + registry_lock_password_hash + + text + registry_lock_password_salt + + text + global_role + + text not null + is_admin + + bool not null + registrar_roles + + hstore not null + update_timestamp + + timestamptz + registry_lock_email_address + + text + consoleupdatehistory_5237b2aa:w->user_f2216f01:e - - - - - - - - fk_console_update_history_acting_user + + + + + + + + fk_console_update_history_acting_user contact_8de8cb16:w->registrar_6e1503e3:e - - - - - - - - fk1sfyj7o7954prbn1exk7lpnoe + + + + + + + + fk1sfyj7o7954prbn1exk7lpnoe contact_8de8cb16:w->registrar_6e1503e3:e - - - - - - - - fk93c185fx7chn68uv7nl6uv2s0 + + + + + + + + fk93c185fx7chn68uv7nl6uv2s0 contact_8de8cb16:w->registrar_6e1503e3:e - - - - - - - - fkmb7tdiv85863134w1wogtxrb2 + + + + + + + + fkmb7tdiv85863134w1wogtxrb2 contact_8de8cb16:w->registrar_6e1503e3:e - - - - - - - - fk_contact_transfer_gaining_registrar_id + + + + + + + + fk_contact_transfer_gaining_registrar_id contact_8de8cb16:w->registrar_6e1503e3:e - - - - - - - - fk_contact_transfer_losing_registrar_id + + + + + + + + fk_contact_transfer_losing_registrar_id contacthistory_d2964f8a - - public."ContactHistory" - - [table] - history_revision_id - - int8 not null - history_by_superuser - - bool not null - history_registrar_id - - text - history_modification_time - - timestamptz not null - history_reason - - text - history_requested_by_registrar - - bool - history_client_transaction_id - - text - history_server_transaction_id - - text - history_type - - text not null - history_xml_bytes - - bytea - auth_info_repo_id - - text - auth_info_value - - text - contact_id - - text - disclose_types_addr - - _text - disclose_show_email - - bool - disclose_show_fax - - bool - disclose_mode_flag - - bool - disclose_types_name - - _text - disclose_types_org - - _text - disclose_show_voice - - bool - email - - text - fax_phone_extension - - text - fax_phone_number - - text - addr_i18n_city - - text - addr_i18n_country_code - - text - addr_i18n_state - - text - addr_i18n_street_line1 - - text - addr_i18n_street_line2 - - text - addr_i18n_street_line3 - - text - addr_i18n_zip - - text - addr_i18n_name - - text - addr_i18n_org - - text - addr_i18n_type - - text - last_transfer_time - - timestamptz - addr_local_city - - text - addr_local_country_code - - text - addr_local_state - - text - addr_local_street_line1 - - text - addr_local_street_line2 - - text - addr_local_street_line3 - - text - addr_local_zip - - text - addr_local_name - - text - addr_local_org - - text - addr_local_type - - text - search_name - - text - transfer_poll_message_id_1 - - int8 - transfer_poll_message_id_2 - - int8 - transfer_client_txn_id - - text - transfer_server_txn_id - - text - transfer_gaining_registrar_id - - text - transfer_losing_registrar_id - - text - transfer_pending_expiration_time - - timestamptz - transfer_request_time - - timestamptz - transfer_status - - text - voice_phone_extension - - text - voice_phone_number - - text - creation_registrar_id - - text - creation_time - - timestamptz - current_sponsor_registrar_id - - text - deletion_time - - timestamptz - last_epp_update_registrar_id - - text - last_epp_update_time - - timestamptz - statuses - - _text - contact_repo_id - - text not null - update_timestamp - - timestamptz - transfer_history_entry_id - - int8 - transfer_repo_id - - text - transfer_poll_message_id_3 - - int8 - last_update_time_via_epp - - timestamptz - + + public."ContactHistory" + + [table] + history_revision_id + + int8 not null + history_by_superuser + + bool not null + history_registrar_id + + text + history_modification_time + + timestamptz not null + history_reason + + text + history_requested_by_registrar + + bool + history_client_transaction_id + + text + history_server_transaction_id + + text + history_type + + text not null + history_xml_bytes + + bytea + auth_info_repo_id + + text + auth_info_value + + text + contact_id + + text + disclose_types_addr + + _text + disclose_show_email + + bool + disclose_show_fax + + bool + disclose_mode_flag + + bool + disclose_types_name + + _text + disclose_types_org + + _text + disclose_show_voice + + bool + email + + text + fax_phone_extension + + text + fax_phone_number + + text + addr_i18n_city + + text + addr_i18n_country_code + + text + addr_i18n_state + + text + addr_i18n_street_line1 + + text + addr_i18n_street_line2 + + text + addr_i18n_street_line3 + + text + addr_i18n_zip + + text + addr_i18n_name + + text + addr_i18n_org + + text + addr_i18n_type + + text + last_transfer_time + + timestamptz + addr_local_city + + text + addr_local_country_code + + text + addr_local_state + + text + addr_local_street_line1 + + text + addr_local_street_line2 + + text + addr_local_street_line3 + + text + addr_local_zip + + text + addr_local_name + + text + addr_local_org + + text + addr_local_type + + text + search_name + + text + transfer_poll_message_id_1 + + int8 + transfer_poll_message_id_2 + + int8 + transfer_client_txn_id + + text + transfer_server_txn_id + + text + transfer_gaining_registrar_id + + text + transfer_losing_registrar_id + + text + transfer_pending_expiration_time + + timestamptz + transfer_request_time + + timestamptz + transfer_status + + text + voice_phone_extension + + text + voice_phone_number + + text + creation_registrar_id + + text + creation_time + + timestamptz + current_sponsor_registrar_id + + text + deletion_time + + timestamptz + last_epp_update_registrar_id + + text + last_epp_update_time + + timestamptz + statuses + + _text + contact_repo_id + + text not null + update_timestamp + + timestamptz + transfer_history_entry_id + + int8 + transfer_repo_id + + text + transfer_poll_message_id_3 + + int8 + last_update_time_via_epp + + timestamptz + contacthistory_d2964f8a:w->contact_8de8cb16:e - - - - - - - - fk_contact_history_contact_repo_id + + + + + + + + fk_contact_history_contact_repo_id contacthistory_d2964f8a:w->registrar_6e1503e3:e - - - - - - - - fk_contact_history_registrar_id + + + + + + + + fk_contact_history_registrar_id pollmessage_614a523e - - public."PollMessage" - - [table] - type - - text not null - poll_message_id - - int8 not null - registrar_id - - text not null - contact_repo_id - - text - contact_history_revision_id - - int8 - domain_repo_id - - text - domain_history_revision_id - - int8 - event_time - - timestamptz not null - host_repo_id - - text - host_history_revision_id - - int8 - message - - text - transfer_response_contact_id - - text - transfer_response_domain_expiration_time - - timestamptz - transfer_response_domain_name - - text - pending_action_response_action_result - - bool - pending_action_response_name_or_id - - text - pending_action_response_processed_date - - timestamptz - pending_action_response_client_txn_id - - text - pending_action_response_server_txn_id - - text - transfer_response_gaining_registrar_id - - text - transfer_response_losing_registrar_id - - text - transfer_response_pending_transfer_expiration_time - - timestamptz - transfer_response_transfer_request_time - - timestamptz - transfer_response_transfer_status - - text - autorenew_end_time - - timestamptz - autorenew_domain_name - - text - transfer_response_host_id - - text - + + public."PollMessage" + + [table] + type + + text not null + poll_message_id + + int8 not null + registrar_id + + text not null + contact_repo_id + + text + contact_history_revision_id + + int8 + domain_repo_id + + text + domain_history_revision_id + + int8 + event_time + + timestamptz not null + host_repo_id + + text + host_history_revision_id + + int8 + message + + text + transfer_response_contact_id + + text + transfer_response_domain_expiration_time + + timestamptz + transfer_response_domain_name + + text + pending_action_response_action_result + + bool + pending_action_response_name_or_id + + text + pending_action_response_processed_date + + timestamptz + pending_action_response_client_txn_id + + text + pending_action_response_server_txn_id + + text + transfer_response_gaining_registrar_id + + text + transfer_response_losing_registrar_id + + text + transfer_response_pending_transfer_expiration_time + + timestamptz + transfer_response_transfer_request_time + + timestamptz + transfer_response_transfer_status + + text + autorenew_end_time + + timestamptz + autorenew_domain_name + + text + transfer_response_host_id + + text + pollmessage_614a523e:w->domain_6c51cffa:e - - - - - - - - fk_poll_message_domain_repo_id + + + + + + + + fk_poll_message_domain_repo_id pollmessage_614a523e:w->contact_8de8cb16:e - - - - - - - - fk_poll_message_contact_repo_id + + + + + + + + fk_poll_message_contact_repo_id pollmessage_614a523e:w->contacthistory_d2964f8a:e - - - - - - - - fk_poll_message_contact_history + + + + + + + + fk_poll_message_contact_history pollmessage_614a523e:w->contacthistory_d2964f8a:e - - - - - - - - fk_poll_message_contact_history + + + + + + + + fk_poll_message_contact_history @@ -2559,14 +2562,14 @@ td.section { <title> pollmessage_614a523e:w->host_f21b78de:e - - - + + + - fk_poll_message_host_repo_id + fk_poll_message_host_repo_id @@ -2660,425 +2663,425 @@ td.section { <title> pollmessage_614a523e:w->hosthistory_56210c2:e - - - + + + - fk_poll_message_host_history + fk_poll_message_host_history pollmessage_614a523e:w->hosthistory_56210c2:e - - - - - - - - fk_poll_message_host_history + + + + + + + + fk_poll_message_host_history pollmessage_614a523e:w->registrar_6e1503e3:e - - - - - - - - fk_poll_message_registrar_id + + + + + + + + fk_poll_message_registrar_id pollmessage_614a523e:w->registrar_6e1503e3:e - - - - - - - + + + + + + + fk_poll_message_transfer_response_gaining_registrar_id pollmessage_614a523e:w->registrar_6e1503e3:e - - - - - - - + + + + + + + fk_poll_message_transfer_response_losing_registrar_id cursor_6af40e8c - - public."Cursor" - - [table] - "scope" - - text not null - type - - text not null - cursor_time - - timestamptz not null - last_update_time - - timestamptz not null - + + public."Cursor" + + [table] + "scope" + + text not null + type + + text not null + cursor_time + + timestamptz not null + last_update_time + + timestamptz not null + delegationsignerdata_e542a872 - - public."DelegationSignerData" - - [table] - domain_repo_id - - text not null - key_tag - - int4 not null - algorithm - - int4 not null - digest - - bytea not null - digest_type - - int4 not null - + + public."DelegationSignerData" + + [table] + domain_repo_id + + text not null + key_tag + + int4 not null + algorithm + + int4 not null + digest + + bytea not null + digest_type + + int4 not null + delegationsignerdata_e542a872:w->domain_6c51cffa:e - - - - - - - - fktr24j9v14ph2mfuw2gsmt12kq + + + + + + + + fktr24j9v14ph2mfuw2gsmt12kq dnsrefreshrequest_4e6affb3 - - public."DnsRefreshRequest" - - [table] - id - - bigserial not null - - auto-incremented - name - - text not null - request_time - - timestamptz not null - tld - - text not null - type - - text not null - last_process_time - - timestamptz not null - + + public."DnsRefreshRequest" + + [table] + id + + bigserial not null + + auto-incremented + name + + text not null + request_time + + timestamptz not null + tld + + text not null + type + + text not null + last_process_time + + timestamptz not null + domainhost_1ea127c2 - - public."DomainHost" - - [table] - domain_repo_id - - text not null - host_repo_id - - text - + + public."DomainHost" + + [table] + domain_repo_id + + text not null + host_repo_id + + text + domainhost_1ea127c2:w->domain_6c51cffa:e - - - - - - - - fkfmi7bdink53swivs390m2btxg + + + + + + + + fkfmi7bdink53swivs390m2btxg domainhost_1ea127c2:w->host_f21b78de:e - - - + + + - fk_domainhost_host_valid + fk_domainhost_host_valid host_f21b78de:w->domain_6c51cffa:e - - - - - - - - fk_host_superordinate_domain + + + + + + + + fk_host_superordinate_domain host_f21b78de:w->registrar_6e1503e3:e - + - - - - + + + + fk_host_creation_registrar_id host_f21b78de:w->registrar_6e1503e3:e - + - - - - + + + + fk_host_current_sponsor_registrar_id host_f21b78de:w->registrar_6e1503e3:e - + - - - - + + + + fk_host_last_epp_update_registrar_id domaindsdatahistory_995b060d - - public."DomainDsDataHistory" - - [table] - ds_data_history_revision_id - - int8 not null - algorithm - - int4 not null - digest - - bytea not null - digest_type - - int4 not null - domain_history_revision_id - - int8 not null - key_tag - - int4 not null - domain_repo_id - - text - + + public."DomainDsDataHistory" + + [table] + ds_data_history_revision_id + + int8 not null + algorithm + + int4 not null + digest + + bytea not null + digest_type + + int4 not null + domain_history_revision_id + + int8 not null + key_tag + + int4 not null + domain_repo_id + + text + domainhistoryhost_9f3f23ee - - public."DomainHistoryHost" - - [table] - domain_history_history_revision_id - - int8 not null - host_repo_id - - text - domain_history_domain_repo_id - - text not null - + + public."DomainHistoryHost" + + [table] + domain_history_history_revision_id + + int8 not null + host_repo_id + + text + domain_history_domain_repo_id + + text not null + domainhistoryhost_9f3f23ee:w->domainhistory_a54cc226:e - - - - - - - - fka9woh3hu8gx5x0vly6bai327n + + + + + + + + fka9woh3hu8gx5x0vly6bai327n domainhistoryhost_9f3f23ee:w->domainhistory_a54cc226:e - - - - - - - - fka9woh3hu8gx5x0vly6bai327n + + + + + + + + fka9woh3hu8gx5x0vly6bai327n domaintransactionrecord_6e77ff61 - - public."DomainTransactionRecord" - - [table] - id - - bigserial not null - - auto-incremented - report_amount - - int4 not null - report_field - - text not null - reporting_time - - timestamptz not null - tld - - text not null - domain_repo_id - - text - history_revision_id - - int8 - + + public."DomainTransactionRecord" + + [table] + id + + bigserial not null + + auto-incremented + report_amount + + int4 not null + report_field + + text not null + reporting_time + + timestamptz not null + tld + + text not null + domain_repo_id + + text + history_revision_id + + int8 + domaintransactionrecord_6e77ff61:w->tld_f1fa57e2:e - - - - - - - - fk_domain_transaction_record_tld + + + + + + + + fk_domain_transaction_record_tld featureflag_3ee43a78 - - public."FeatureFlag" - - [table] - feature_name - - text not null - status - - hstore not null - + + public."FeatureFlag" + + [table] + feature_name + + text not null + status + + hstore not null + graceperiodhistory_40ccc1f1 - - public."GracePeriodHistory" - - [table] - grace_period_history_revision_id - - int8 not null - billing_event_id - - int8 - billing_recurrence_id - - int8 - registrar_id - - text not null - domain_repo_id - - text not null - expiration_time - - timestamptz not null - type - - text not null - domain_history_revision_id - - int8 - grace_period_id - - int8 not null - + + public."GracePeriodHistory" + + [table] + grace_period_history_revision_id + + int8 not null + billing_event_id + + int8 + billing_recurrence_id + + int8 + registrar_id + + text not null + domain_repo_id + + text not null + expiration_time + + timestamptz not null + type + + text not null + domain_history_revision_id + + int8 + grace_period_id + + int8 not null + @@ -3097,187 +3100,187 @@ td.section { <title> hosthistory_56210c2:w->registrar_6e1503e3:e - + - - - - + + + + fk_history_registrar_id lock_f21d4861 - - public."Lock" - - [table] - resource_name - - text not null - "scope" - - text not null - acquired_time - - timestamptz not null - expiration_time - - timestamptz not null - + + public."Lock" + + [table] + resource_name + + text not null + "scope" + + text not null + acquired_time + + timestamptz not null + expiration_time + + timestamptz not null + packagepromotion_56aa33 - - public."PackagePromotion" - - [table] - package_promotion_id - - bigserial not null - - auto-incremented - last_notification_sent - - timestamptz - max_creates - - int4 not null - max_domains - - int4 not null - next_billing_date - - timestamptz not null - package_price_amount - - numeric(19, 2) not null - package_price_currency - - text not null - token - - text not null - + + public."PackagePromotion" + + [table] + package_promotion_id + + bigserial not null + + auto-incremented + last_notification_sent + + timestamptz + max_creates + + int4 not null + max_domains + + int4 not null + next_billing_date + + timestamptz not null + package_price_amount + + numeric(19, 2) not null + package_price_currency + + text not null + token + + text not null + passwordresetrequest_8484e7b1 - - public."PasswordResetRequest" - - [table] - type - - text not null - request_time - - timestamptz not null - requester - - text not null - fulfillment_time - - timestamptz - destination_email - - text not null - verification_code - - text not null - registrar_id - - text not null - + + public."PasswordResetRequest" + + [table] + type + + text not null + request_time + + timestamptz not null + requester + + text not null + fulfillment_time + + timestamptz + destination_email + + text not null + verification_code + + text not null + registrar_id + + text not null + premiumentry_b0060b91 - - public."PremiumEntry" - - [table] - revision_id - - int8 not null - price - - numeric(19, 2) not null - domain_label - - text not null - + + public."PremiumEntry" + + [table] + revision_id + + int8 not null + price + + numeric(19, 2) not null + domain_label + + text not null + premiumlist_7c3ea68b - - public."PremiumList" - - [table] - revision_id - - bigserial not null - - auto-incremented - creation_timestamp - - timestamptz - name - - text not null - bloom_filter - - bytea not null - currency - - text not null - + + public."PremiumList" + + [table] + revision_id + + bigserial not null + + auto-incremented + creation_timestamp + + timestamptz + name + + text not null + bloom_filter + + bytea not null + currency + + text not null + premiumentry_b0060b91:w->premiumlist_7c3ea68b:e - - - - - - - - fko0gw90lpo1tuee56l0nb6y6g5 + + + + + + + + fko0gw90lpo1tuee56l0nb6y6g5 rderevision_83396864 - - public."RdeRevision" - - [table] - tld - - text not null - mode - - text not null - "date" - - date not null - update_timestamp - - timestamptz - revision - - int4 not null - + + public."RdeRevision" + + [table] + tld + + text not null + mode + + text not null + "date" + + date not null + update_timestamp + + timestamptz + revision + + int4 not null + @@ -3337,13 +3340,13 @@ td.section { <title> registrarpoc_ab47054d:w->registrar_6e1503e3:e - + - - - - + + + + fk_registrar_poc_registrar_id @@ -3519,13 +3522,13 @@ td.section { registrarupdatehistory_8a38bed4:w->registrar_6e1503e3:e - + - - - - + + + + fkregistrarupdatehistoryregistrarid @@ -3631,300 +3634,300 @@ td.section { registrylock_ac88663e - - public."RegistryLock" - - [table] - revision_id - - bigserial not null - - auto-incremented - lock_completion_time - - timestamptz - lock_request_time - - timestamptz not null - domain_name - - text not null - is_superuser - - bool not null - registrar_id - - text not null - registrar_poc_id - - text - repo_id - - text not null - verification_code - - text not null - unlock_request_time - - timestamptz - unlock_completion_time - - timestamptz - last_update_time - - timestamptz not null - relock_revision_id - - int8 - relock_duration - - interval - + + public."RegistryLock" + + [table] + revision_id + + bigserial not null + + auto-incremented + lock_completion_time + + timestamptz + lock_request_time + + timestamptz not null + domain_name + + text not null + is_superuser + + bool not null + registrar_id + + text not null + registrar_poc_id + + text + repo_id + + text not null + verification_code + + text not null + unlock_request_time + + timestamptz + unlock_completion_time + + timestamptz + last_update_time + + timestamptz not null + relock_revision_id + + int8 + relock_duration + + interval + registrylock_ac88663e:w->registrylock_ac88663e:e - - - - - - - - fk2lhcwpxlnqijr96irylrh1707 + + + + + + + + fk2lhcwpxlnqijr96irylrh1707 reservedentry_1a7b8520 - - public."ReservedEntry" - - [table] - revision_id - - int8 not null - comment - - text - reservation_type - - int4 not null - domain_label - - text not null - + + public."ReservedEntry" + + [table] + revision_id + + int8 not null + comment + + text + reservation_type + + int4 not null + domain_label + + text not null + reservedlist_b97c3f1c - - public."ReservedList" - - [table] - revision_id - - bigserial not null - - auto-incremented - creation_timestamp - - timestamptz not null - name - - text not null - + + public."ReservedList" + + [table] + revision_id + + bigserial not null + + auto-incremented + creation_timestamp + + timestamptz not null + name + + text not null + reservedentry_1a7b8520:w->reservedlist_b97c3f1c:e - - - - - - - - fkgq03rk0bt1hb915dnyvd3vnfc + + + + + + + + fkgq03rk0bt1hb915dnyvd3vnfc serversecret_6cc90f09 - - public."ServerSecret" - - [table] - secret - - uuid not null - id - - int8 not null - + + public."ServerSecret" + + [table] + secret + + uuid not null + id + + int8 not null + signedmarkrevocationentry_99c39721 - - public."SignedMarkRevocationEntry" - - [table] - revision_id - - int8 not null - revocation_time - - timestamptz not null - smd_id - - text not null - + + public."SignedMarkRevocationEntry" + + [table] + revision_id + + int8 not null + revocation_time + + timestamptz not null + smd_id + + text not null + signedmarkrevocationlist_c5d968fb - - public."SignedMarkRevocationList" - - [table] - revision_id - - bigserial not null - - auto-incremented - creation_time - - timestamptz - + + public."SignedMarkRevocationList" + + [table] + revision_id + + bigserial not null + + auto-incremented + creation_time + + timestamptz + signedmarkrevocationentry_99c39721:w->signedmarkrevocationlist_c5d968fb:e - - - - - - - - fk5ivlhvs3121yx2li5tqh54u4 + + + + + + + + fk5ivlhvs3121yx2li5tqh54u4 spec11threatmatch_a61228a6 - - public."Spec11ThreatMatch" - - [table] - id - - bigserial not null - - auto-incremented - check_date - - date not null - domain_name - - text not null - domain_repo_id - - text not null - registrar_id - - text not null - threat_types - - _text not null - tld - - text not null - + + public."Spec11ThreatMatch" + + [table] + id + + bigserial not null + + auto-incremented + check_date + + date not null + domain_name + + text not null + domain_repo_id + + text not null + registrar_id + + text not null + threat_types + + _text not null + tld + + text not null + tmchcrl_d282355 - - public."TmchCrl" - - [table] - certificate_revocations - - text not null - update_timestamp - - timestamptz not null - url - - text not null - id - - int8 not null - + + public."TmchCrl" + + [table] + certificate_revocations + + text not null + update_timestamp + + timestamptz not null + url + + text not null + id + + int8 not null + userupdatehistory_24efd476 - - public."UserUpdateHistory" - - [table] - history_revision_id - - int8 not null - history_modification_time - - timestamptz not null - history_method - - text not null - history_request_body - - text - history_type - - text not null - history_url - - text not null - email_address - - text not null - registry_lock_password_hash - - text - registry_lock_password_salt - - text - global_role - - text not null - is_admin - - bool not null - registrar_roles - - hstore - update_timestamp - - timestamptz - history_acting_user - - text not null - registry_lock_email_address - - text - + + public."UserUpdateHistory" + + [table] + history_revision_id + + int8 not null + history_modification_time + + timestamptz not null + history_method + + text not null + history_request_body + + text + history_type + + text not null + history_url + + text not null + email_address + + text not null + registry_lock_password_hash + + text + registry_lock_password_salt + + text + global_role + + text not null + is_admin + + bool not null + registrar_roles + + hstore + update_timestamp + + timestamptz + history_acting_user + + text not null + registry_lock_email_address + + text + @@ -12908,6 +12911,16 @@ td.section { create_billing_cost_transitions hstore not null + + + expiry_access_period_enabled + bool not null + + + + + default false + diff --git a/db/src/main/resources/sql/flyway.txt b/db/src/main/resources/sql/flyway.txt index 619ee22c1..2bb8c4f6e 100644 --- a/db/src/main/resources/sql/flyway.txt +++ b/db/src/main/resources/sql/flyway.txt @@ -193,3 +193,4 @@ V192__add_last_poc_verification_date.sql V193__password_reset_request.sql V194__password_reset_request_registrar.sql V195__registrar_poc_id.sql +V196__tld_expiry_access_period_enabled.sql diff --git a/db/src/main/resources/sql/flyway/V196__tld_expiry_access_period_enabled.sql b/db/src/main/resources/sql/flyway/V196__tld_expiry_access_period_enabled.sql new file mode 100644 index 000000000..da7f7ee73 --- /dev/null +++ b/db/src/main/resources/sql/flyway/V196__tld_expiry_access_period_enabled.sql @@ -0,0 +1,16 @@ +-- Copyright 2025 The Nomulus Authors. All Rights Reserved. +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. + +ALTER TABLE "Tld" + ADD COLUMN IF NOT EXISTS expiry_access_period_enabled boolean DEFAULT false NOT NULL; diff --git a/db/src/main/resources/sql/schema/nomulus.golden.sql b/db/src/main/resources/sql/schema/nomulus.golden.sql index 4209e47dc..a27a8031a 100644 --- a/db/src/main/resources/sql/schema/nomulus.golden.sql +++ b/db/src/main/resources/sql/schema/nomulus.golden.sql @@ -1349,7 +1349,8 @@ CREATE TABLE public."Tld" ( idn_tables text[], breakglass_mode boolean DEFAULT false NOT NULL, bsa_enroll_start_time timestamp with time zone, - create_billing_cost_transitions public.hstore NOT NULL + create_billing_cost_transitions public.hstore NOT NULL, + expiry_access_period_enabled boolean DEFAULT false NOT NULL );