Skip to content

Export domain drop list for open TLDs to Drive - #3223

Merged
CydeWeys merged 1 commit into
google:masterfrom
CydeWeys:domain-drop-list
Aug 31, 2026
Merged

Export domain drop list for open TLDs to Drive#3223
CydeWeys merged 1 commit into
google:masterfrom
CydeWeys:domain-drop-list

Conversation

@CydeWeys

@CydeWeys CydeWeys commented Aug 28, 2026

Copy link
Copy Markdown
Member

Redo the exported drop list mechanism by replacing the legacy per-TLD mode in ExportDomainListsAction with a dedicated, once-daily ExportDropListAction.

Key changes:

  1. Reverted ExportDomainListsAction to unconditionally export single-column active registered domains and deprecated the INCLUDE_PENDING_DELETE_DATE_FOR_DOMAINS feature flag.
  2. Implemented ExportDropListAction at /_dr/task/exportDropList to query the read replica for upcoming deletions on all open TLDs (where invoicing is enabled) and output an alphabetically sorted CSV file (domain_name,tld,deletion_time) to a designated Google Drive folder.
  3. Added domainDropListDriveFolderId configuration setting and provider.
  4. Registered the action in RequestComponent, routing.txt, and Cloud Scheduler tasks for production and sandbox.
  5. Added comprehensive test coverage in ExportDropListActionTest and cleaned up legacy test cases in ExportDomainListsActionTest.

BUG=b/553658111


This change is Reviewable

Comment thread core/src/main/java/google/registry/export/ExportDropListAction.java Outdated
Comment thread core/src/main/java/google/registry/config/RegistryConfig.java Outdated
Comment thread core/src/main/java/google/registry/export/ExportDropListAction.java
Comment thread core/src/main/java/google/registry/export/ExportDropListAction.java Outdated
Comment thread core/src/main/java/google/registry/export/ExportDropListAction.java
Comment thread core/src/main/java/google/registry/export/ExportDropListAction.java
@CydeWeys
CydeWeys force-pushed the domain-drop-list branch 2 times, most recently from b5efc1a to 2f22abf Compare August 28, 2026 16:53
Comment thread core/src/main/java/google/registry/export/ExportDropListAction.java Outdated
Comment thread core/src/test/java/google/registry/export/ExportDropListActionTest.java Outdated
Comment thread core/src/test/java/google/registry/export/ExportDropListActionTest.java Outdated
@CydeWeys
CydeWeys requested a review from gbrodman August 28, 2026 17:14
Comment thread core/src/main/java/google/registry/export/ExportDropListAction.java Fixed

@gbrodman gbrodman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gbrodman reviewed 12 files and all commit messages, and made 2 comments.
Reviewable status: all files reviewed, 4 unresolved discussions (waiting on CydeWeys).


core/src/main/java/google/registry/export/ExportDropListAction.java line 62 at r4 (raw file):

      ImmutableList.of("domain_name", "tld", "deletion_time");
  private static final CSVFormat CSV_FORMAT =
      CSVFormat.DEFAULT.builder().setRecordSeparator('\n').build();

use "get" instead of "build"


core/src/test/java/google/registry/export/ExportDropListActionTest.java line 112 at r4 (raw file):

    // Pending delete domains on open TLDs -> included
    persistResource(

(i'm pretty sure it's possible) better to just call persistDeletedDomain for these ones

Redo the exported drop list mechanism by replacing the legacy per-TLD
mode in ExportDomainListsAction with a dedicated, once-daily
ExportDropListAction.

Key changes:
1. Reverted ExportDomainListsAction to unconditionally export
   single-column active registered domains and deprecated the
   INCLUDE_PENDING_DELETE_DATE_FOR_DOMAINS feature flag.
2. Implemented ExportDropListAction at /_dr/task/exportDropList to query
   the read replica for upcoming deletions on all open TLDs (where
   invoicing is enabled) and output an alphabetically sorted CSV file
   (domain_name,tld,deletion_time) to a designated Google Drive folder.
3. Added domainDropListDriveFolderId configuration setting and provider.
4. Registered the action in RequestComponent, routing.txt, and Cloud
   Scheduler tasks for production and sandbox.
5. Added comprehensive test coverage in ExportDropListActionTest and
   cleaned up legacy test cases in ExportDomainListsActionTest.

BUG=b/553658111

@CydeWeys CydeWeys left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@CydeWeys made 2 comments and resolved 2 discussions.
Reviewable status: 10 of 12 files reviewed, 2 unresolved discussions (waiting on gbrodman).


core/src/main/java/google/registry/export/ExportDropListAction.java line 62 at r4 (raw file):

Previously, gbrodman wrote…

use "get" instead of "build"

Done.


core/src/test/java/google/registry/export/ExportDropListActionTest.java line 112 at r4 (raw file):

Previously, gbrodman wrote…

(i'm pretty sure it's possible) better to just call persistDeletedDomain for these ones

Done.

@CydeWeys CydeWeys left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PTAL

@CydeWeys made 1 comment.
Reviewable status: 10 of 12 files reviewed, 2 unresolved discussions (waiting on gbrodman).

@gbrodman gbrodman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gbrodman reviewed 2 files and all commit messages, and resolved 2 discussions.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on CydeWeys).

@CydeWeys
CydeWeys enabled auto-merge August 31, 2026 19:12
@CydeWeys
CydeWeys added this pull request to the merge queue Aug 31, 2026
Merged via the queue into google:master with commit a5c84aa Aug 31, 2026
16 checks passed
@CydeWeys
CydeWeys deleted the domain-drop-list branch August 31, 2026 21:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants