mirror of
https://github.com/google/nomulus.git
synced 2025-05-29 00:40:09 +02:00
* Store the superordinateDomain reference as a VKey rather than Key This is a reference to a Domain object, so we should store it as a VKey in reference to the Domain table. This should not affect any business logic, but rather will allow us to set up the SQL tables for HostResource et al. properly.
426 lines
15 KiB
Text
426 lines
15 KiB
Text
-- Copyright 2019 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.
|
|
|
|
create table "BillingCancellation" (
|
|
billing_cancellation_id bigserial not null,
|
|
client_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,
|
|
primary key (billing_cancellation_id)
|
|
);
|
|
|
|
create table "BillingEvent" (
|
|
billing_event_id bigserial not null,
|
|
client_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_id 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,
|
|
primary key (billing_event_id)
|
|
);
|
|
|
|
create table "BillingRecurrence" (
|
|
billing_recurrence_id bigserial not null,
|
|
client_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,
|
|
primary key (billing_recurrence_id)
|
|
);
|
|
|
|
create table "ClaimsEntry" (
|
|
revision_id int8 not null,
|
|
claim_key text not null,
|
|
domain_label text not null,
|
|
primary key (revision_id, domain_label)
|
|
);
|
|
|
|
create table "ClaimsList" (
|
|
revision_id bigserial not null,
|
|
creation_timestamp timestamptz not null,
|
|
tmdb_generation_time timestamptz not null,
|
|
primary key (revision_id)
|
|
);
|
|
|
|
create table "Contact" (
|
|
repo_id text not null,
|
|
creation_client_id text not null,
|
|
creation_time timestamptz not null,
|
|
current_sponsor_client_id text not null,
|
|
deletion_time timestamptz,
|
|
last_epp_update_client_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 boolean,
|
|
disclose_show_fax boolean,
|
|
disclose_mode_flag boolean,
|
|
disclose_types_name text[],
|
|
disclose_types_org text[],
|
|
disclose_show_voice boolean,
|
|
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,
|
|
primary key (repo_id)
|
|
);
|
|
|
|
create table "Cursor" (
|
|
scope text not null,
|
|
type text not null,
|
|
cursor_time timestamptz not null,
|
|
last_update_time timestamptz not null,
|
|
primary key (scope, type)
|
|
);
|
|
|
|
create table "DelegationSignerData" (
|
|
key_tag int4 not null,
|
|
algorithm int4 not null,
|
|
digest bytea,
|
|
digest_type int4 not null,
|
|
primary key (key_tag)
|
|
);
|
|
|
|
create table "Domain" (
|
|
repo_id text not null,
|
|
creation_client_id text not null,
|
|
creation_time timestamptz not null,
|
|
current_sponsor_client_id text not null,
|
|
deletion_time timestamptz,
|
|
last_epp_update_client_id text,
|
|
last_epp_update_time timestamptz,
|
|
statuses text[],
|
|
admin_contact text,
|
|
auth_info_repo_id text,
|
|
auth_info_value text,
|
|
billing_contact text,
|
|
fully_qualified_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,
|
|
primary key (repo_id)
|
|
);
|
|
|
|
create table "DomainHost" (
|
|
domain_repo_id text not null,
|
|
ns_hosts text
|
|
);
|
|
|
|
create table "GracePeriod" (
|
|
id bigserial not null,
|
|
billing_event_one_time bytea,
|
|
billing_event_recurring bytea,
|
|
client_id text,
|
|
expiration_time timestamptz,
|
|
type int4,
|
|
primary key (id)
|
|
);
|
|
|
|
create table "HostResource" (
|
|
repo_id text not null,
|
|
creation_client_id text not null,
|
|
creation_time timestamptz not null,
|
|
current_sponsor_client_id text not null,
|
|
deletion_time timestamptz,
|
|
last_epp_update_client_id text,
|
|
last_epp_update_time timestamptz,
|
|
statuses text[],
|
|
fully_qualified_host_name text,
|
|
last_superordinate_change timestamptz,
|
|
last_transfer_time timestamptz,
|
|
superordinate_domain text,
|
|
primary key (repo_id)
|
|
);
|
|
|
|
create table "HostResource_inetAddresses" (
|
|
host_resource_repo_id text not null,
|
|
inet_addresses bytea
|
|
);
|
|
|
|
create table "Lock" (
|
|
resource_name text not null,
|
|
tld text not null,
|
|
acquired_time timestamptz not null,
|
|
expiration_time timestamptz not null,
|
|
request_log_id text not null,
|
|
primary key (resource_name, tld)
|
|
);
|
|
|
|
create table "PollMessage" (
|
|
type text not null,
|
|
poll_message_id bigserial not null,
|
|
registrar_id text not null,
|
|
contact_repo_id text,
|
|
contact_revision_id int8,
|
|
domain_repo_id text,
|
|
domain_revision_id int8,
|
|
event_time timestamptz not null,
|
|
host_repo_id text,
|
|
host_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 boolean,
|
|
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,
|
|
primary key (poll_message_id)
|
|
);
|
|
|
|
create table "PremiumEntry" (
|
|
revision_id int8 not null,
|
|
domain_label text not null,
|
|
price numeric(19, 2) not null,
|
|
primary key (revision_id, domain_label)
|
|
);
|
|
|
|
create table "PremiumList" (
|
|
revision_id bigserial not null,
|
|
bloom_filter bytea not null,
|
|
creation_timestamp timestamptz not null,
|
|
currency text not null,
|
|
name text not null,
|
|
primary key (revision_id)
|
|
);
|
|
|
|
create table "Registrar" (
|
|
client_id text not null,
|
|
allowed_tlds text[],
|
|
billing_account_map hstore,
|
|
billing_identifier int8,
|
|
block_premium_names boolean not null,
|
|
client_certificate text,
|
|
client_certificate_hash text,
|
|
contacts_require_syncing boolean not null,
|
|
creation_time timestamptz,
|
|
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_whitelist text[],
|
|
last_certificate_update_time timestamptz,
|
|
last_update_time timestamptz,
|
|
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 boolean not null,
|
|
password_salt text,
|
|
state text,
|
|
type text not null,
|
|
url text,
|
|
whois_server text,
|
|
primary key (client_id)
|
|
);
|
|
|
|
create table "RegistrarPoc" (
|
|
email_address text not null,
|
|
allowed_to_set_registry_lock_password boolean not null,
|
|
fax_number text,
|
|
gae_user_id text,
|
|
name text,
|
|
phone_number text,
|
|
registry_lock_email_address text,
|
|
registry_lock_password_hash text,
|
|
registry_lock_password_salt text,
|
|
types text[],
|
|
visible_in_domain_whois_as_abuse boolean not null,
|
|
visible_in_whois_as_admin boolean not null,
|
|
visible_in_whois_as_tech boolean not null,
|
|
primary key (email_address)
|
|
);
|
|
|
|
create table "RegistryLock" (
|
|
revision_id bigserial not null,
|
|
domain_name text not null,
|
|
is_superuser boolean not null,
|
|
last_update_timestamp timestamptz,
|
|
lock_completion_timestamp timestamptz,
|
|
lock_request_timestamp timestamptz not null,
|
|
registrar_id text not null,
|
|
registrar_poc_id text,
|
|
relock_duration int8,
|
|
repo_id text not null,
|
|
unlock_completion_timestamp timestamptz,
|
|
unlock_request_timestamp timestamptz,
|
|
verification_code text not null,
|
|
relock_revision_id int8,
|
|
primary key (revision_id)
|
|
);
|
|
|
|
create table "ReservedEntry" (
|
|
revision_id int8 not null,
|
|
comment text,
|
|
reservation_type int4 not null,
|
|
domain_label text not null,
|
|
primary key (revision_id, domain_label)
|
|
);
|
|
|
|
create table "ReservedList" (
|
|
revision_id bigserial not null,
|
|
creation_timestamp timestamptz not null,
|
|
name text not null,
|
|
should_publish boolean not null,
|
|
primary key (revision_id)
|
|
);
|
|
create index IDXeokttmxtpq2hohcioe5t2242b on "BillingCancellation" (client_id);
|
|
create index IDX2exdfbx6oiiwnhr8j6gjpqt2j on "BillingCancellation" (event_time);
|
|
create index IDXqa3g92jc17e8dtiaviy4fet4x on "BillingCancellation" (billing_time);
|
|
create index IDX73l103vc5900ig3p4odf0cngt on "BillingEvent" (client_id);
|
|
create index IDX5yfbr88439pxw0v3j86c74fp8 on "BillingEvent" (event_time);
|
|
create index IDX6py6ocrab0ivr76srcd2okpnq on "BillingEvent" (billing_time);
|
|
create index IDXplxf9v56p0wg8ws6qsvd082hk on "BillingEvent" (synthetic_creation_time);
|
|
create index IDXhmv411mdqo5ibn4vy7ykxpmlv on "BillingEvent" (allocation_token_id);
|
|
create index IDXn898pb9mwcg359cdwvolb11ck on "BillingRecurrence" (client_id);
|
|
create index IDX6syykou4nkc7hqa5p8r92cpch on "BillingRecurrence" (event_time);
|
|
create index IDXp3usbtvk0v1m14i5tdp4xnxgc on "BillingRecurrence" (recurrence_end_time);
|
|
create index IDXjny8wuot75b5e6p38r47wdawu on "BillingRecurrence" (recurrence_time_of_year);
|
|
create index IDX3y752kr9uh4kh6uig54vemx0l on "Contact" (creation_time);
|
|
create index IDXbn8t4wp85fgxjl8q4ctlscx55 on "Contact" (current_sponsor_client_id);
|
|
create index IDXn1f711wicdnooa2mqb7g1m55o on "Contact" (deletion_time);
|
|
create index IDX1p3esngcwwu6hstyua6itn6ff on "Contact" (search_name);
|
|
|
|
alter table if exists "Contact"
|
|
add constraint UKoqd7n4hbx86hvlgkilq75olas unique (contact_id);
|
|
create index IDX8nr0ke9mrrx4ewj6pd2ag4rmr on "Domain" (creation_time);
|
|
create index IDX8ffrqm27qtj20jac056j7yq07 on "Domain" (current_sponsor_client_id);
|
|
create index IDX5mnf0wn20tno4b9do88j61klr on "Domain" (deletion_time);
|
|
create index IDX1rcgkdd777bpvj0r94sltwd5y on "Domain" (fully_qualified_domain_name);
|
|
create index IDXrwl38wwkli1j7gkvtywi9jokq on "Domain" (tld);
|
|
create index IDXe7wu46c7wpvfmfnj4565abibp on "PollMessage" (registrar_id);
|
|
create index IDXaydgox62uno9qx8cjlj5lauye on "PollMessage" (event_time);
|
|
create index premiumlist_name_idx on "PremiumList" (name);
|
|
create index registrar_name_idx on "Registrar" (registrar_name);
|
|
create index registrar_iana_identifier_idx on "Registrar" (iana_identifier);
|
|
create index registrarpoc_gae_user_id_idx on "RegistrarPoc" (gae_user_id);
|
|
create index idx_registry_lock_verification_code on "RegistryLock" (verification_code);
|
|
create index idx_registry_lock_registrar_id on "RegistryLock" (registrar_id);
|
|
|
|
alter table if exists "RegistryLock"
|
|
add constraint idx_registry_lock_repo_id_revision_id unique (repo_id, revision_id);
|
|
create index reservedlist_name_idx on "ReservedList" (name);
|
|
|
|
alter table if exists "ClaimsEntry"
|
|
add constraint FK6sc6at5hedffc0nhdcab6ivuq
|
|
foreign key (revision_id)
|
|
references "ClaimsList";
|
|
|
|
alter table if exists "DomainHost"
|
|
add constraint FKeq1guccbre1yk3oosgp2io554
|
|
foreign key (domain_repo_id)
|
|
references "Domain";
|
|
|
|
alter table if exists "HostResource_inetAddresses"
|
|
add constraint FK6unwhfkcu3oq6q347fxvpagv
|
|
foreign key (host_resource_repo_id)
|
|
references "HostResource";
|
|
|
|
alter table if exists "PremiumEntry"
|
|
add constraint FKo0gw90lpo1tuee56l0nb6y6g5
|
|
foreign key (revision_id)
|
|
references "PremiumList";
|
|
|
|
alter table if exists "RegistryLock"
|
|
add constraint FK2lhcwpxlnqijr96irylrh1707
|
|
foreign key (relock_revision_id)
|
|
references "RegistryLock";
|
|
|
|
alter table if exists "ReservedEntry"
|
|
add constraint FKgq03rk0bt1hb915dnyvd3vnfc
|
|
foreign key (revision_id)
|
|
references "ReservedList";
|