Skip to content

Domains: Replace Nominet-specific verification with generic custom_verifications#108555

Draft
hambai wants to merge 10 commits intotrunkfrom
add/generic-domain-contact-verification
Draft

Domains: Replace Nominet-specific verification with generic custom_verifications#108555
hambai wants to merge 10 commits intotrunkfrom
add/generic-domain-contact-verification

Conversation

@hambai
Copy link
Contributor

@hambai hambai commented Feb 6, 2026

Proposed Changes

  • Replace the nominet_pending_contact_verification_request and nominet_domain_suspended boolean API properties with a single custom_verifications: string[] array across all domain type definitions, assemblers, and the Redux schema.
  • Add a verification_type parameter to the domain contact verification API mutation so the backend can distinguish between different verification workflows.
  • Refactor the Dashboard domain contact verification page to be config-driven, rendering a separate verification card per active entry in custom_verifications (supports nominet_contact, nominet_suspended, and in_kyc).
  • Add a ContactVerificationNotice component to the domain overview page to alert users when registry verification is required.
  • Update the legacy my-sites contact verification card to accept a verificationType prop for per-type copy and document customization.
  • Update all test fixtures to use the new property shape.

Why are these changes being made?

The existing domain contact verification system was hardcoded for Nominet (.uk) verification only. To support additional registry-specific verification requirements (e.g., .in domain KYC verification required by NIXI), the frontend needs a generic mechanism. By replacing the two Nominet-specific booleans with a custom_verifications string array, we can support any number of verification types through a single extensible field without future type/schema changes. This is the frontend half of the work; it ships alongside a corresponding backend change that populates the new field.

Testing Instructions

  • Verify that .uk domains with active Nominet verification still display the correct verification card with UK-specific copy and accepted documents.
  • Verify that .in domains with in_kyc in custom_verifications display the correct verification card with .in-specific copy and accepted documents.
  • Verify that domains with no entries in custom_verifications do not show the verification section.
  • Verify the domain overview page shows a warning notice when custom_verifications is non-empty.
  • Verify file upload and submission works correctly, sending the appropriate verification_type to the API.

Pre-merge Checklist

  • Has the general commit checklist been followed? (PCYsg-hS-p2)
  • Have you written new tests for your changes?
  • Have you tested the feature in Simple (P9HQHe-k8-p2), Atomic (P9HQHe-jW-p2), and self-hosted Jetpack sites (PCYsg-g6b-p2)?
  • Have you checked for TypeScript, React or other console errors?
  • Have you tested accessibility for your changes? Ensure the feature remains usable with various user agents (e.g., browsers), interfaces (e.g., keyboard navigation), and assistive technologies (e.g., screen readers) (PCYsg-S3g-p2).
  • Have you used memoizing on expensive computations? More info in Memoizing with create-selector and Using memoizing selectors and Our Approach to Data
  • Have we added the "[Status] String Freeze" label as soon as any new strings were ready for translation (p4TIVU-5Jq-p2)?
    • For UI changes, have we tested the change in various languages (for example, ES, PT, FR, or DE)? The length of text and words vary significantly between languages.
  • For changes affecting Jetpack: Have we added the "[Status] Needs Privacy Updates" label if this pull request changes what data or activity we track or use (p4TIVU-aUh-p2)?

hambai and others added 5 commits February 6, 2026 06:57
…rray

Replace `nominet_pending_contact_verification_request` and
`nominet_domain_suspended` boolean properties with a generic
`custom_verifications: string[]` array across domain type definitions,
assemblers, and the Redux schema. This enables support for multiple
registry-specific verification types (e.g., Nominet for .uk,
KYC for .in) through a single extensible field.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pass an optional verificationType through the mutation and API core
layer so the backend can distinguish between different verification
workflows (e.g., nominet vs in_kyc) when creating support tickets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ion types

Introduce a config-driven VERIFICATION_CONFIG map that renders a
separate verification card per active entry in custom_verifications.
Add a ContactVerificationNotice on the domain overview page to alert
users when registry verification is required. Update the permission
check to use the generic custom_verifications array.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… types

Render a ContactVerificationCard per entry in customVerifications
instead of checking Nominet-specific booleans. Accept a verificationType
prop to customize copy, accepted documents, and the API parameter sent
on submission. Also fix a typo in the success notice ("succcesfully"
-> "successfully").

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace nominet-specific boolean properties with the new
customVerifications / custom_verifications array across all
domain test fixtures and test utilities.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@matticbot
Copy link
Contributor

matticbot commented Feb 6, 2026

This PR modifies the release build for the following Calypso Apps:

For info about this notification, see here: PCYsg-OT6-p2

  • blaze-dashboard
  • help-center
  • odyssey-stats

To test WordPress.com changes, run install-plugin.sh $pluginSlug add/generic-domain-contact-verification on your sandbox.

hambai and others added 5 commits February 6, 2026 13:00
After successful document submission, update the domain query cache to
filter out the submitted verification key from custom_verifications.
This prevents the verification notice from reappearing on the domain
overview page while the backend processes the documents.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…erification

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.

2 participants