Skip to content

[ECW-9115] docs: document ICANN contact updates on registered domains - #258

Open
sudoryan wants to merge 1 commit into
mainfrom
sudoryan/ecw-9115-reseller-contact-docs
Open

[ECW-9115] docs: document ICANN contact updates on registered domains#258
sudoryan wants to merge 1 commit into
mainfrom
sudoryan/ecw-9115-reseller-contact-docs

Conversation

@sudoryan

Copy link
Copy Markdown
Contributor

What/Why/How?

ECW-9115 was raised as "Reseller/Partner API has no endpoint to update ICANN contacts on existing domains". Investigating the gateway showed the endpoint already exists and is already exposed to partnersPATCH /domains/{name}/dns/contacts is in the reseller OpenAPI spec, DOMAIN_ICANN_CONTACT_UPDATE is in the default partner permission set, and E2E coverage exercises it against an active REGISTERED domain.

The real gap was this guide. It described the registrant as "Set during registration via the owner field" and its update example showed only admin/tech/billing. A partner reading it reasonably concludes a wrong registrant is permanent — which is exactly the situation in the originating support ticket, where a reseller's domains carry incorrect registrant emails and ICANN verification notices reach the wrong party.

Changes to apis/reseller/implementation-guide.md:

  • owner added to the update example, and the section retitled to say plainly that all four roles can be changed after registration.
  • Mechanics documented: omitted roles are left unchanged, each role takes an existing id or inline fields, $preview=true validates without applying, and the returned operation must reach a terminal state before the change is complete.
  • No bulk form — stated explicitly, since correcting many domains currently means one request per domain.
  • New section on registrant changes and reverification. For a tokenized domain pending ownership verification: owner becomes required, omitted roles default to the new registrant, DNS records may be cleared per the domain's retention mode, and the domain reports registration.icann.ownershipVerification: REVERIFICATION_REQUIRED — during which DNS calls fail with UNVERIFIED_DNS_REGISTRANT (400).

Every claim was verified against the gateway implementation rather than the previous docs text.

Reference

Testing

Documentation only — no code paths changed. Behaviour described was verified against registrar-platform (icann-contact-operation.provider.ts, domains-dns-contacts.controller.ts, operation.error.filter.ts) and against the generated reseller OpenAPI spec.

Check yourself

  • Code is linted
  • Tested
  • All new/updated code is covered with tests

Security

  • Security impact of change has been considered
  • Code follows company security practices and guidelines

Note: apis/reseller/openapi.yaml is intentionally untouched — it is generated from registrar-platform's cli/openapi/clean-reseller-spec.mjs, so schema-level wording belongs in that repo. A separate defect found there is described in the ECW-9115 thread.

The Contact Roles section implied the registrant was set only at
registration, and the update example showed just admin/tech/billing.
Partners reading it concluded a wrong registrant could not be corrected
via the API, when PATCH /domains/{name}/dns/contacts has always accepted
all four roles.

- Show `owner` in the update example and state that every role can be
  changed after registration
- Note preview mode, the returned operation, and that omitted roles are
  left unchanged
- Call out that no bulk form exists yet
- Add a section on registrant changes: `owner` becomes required for
  tokenized domains pending verification, the other roles then default
  to the registrant, DNS records may be cleared, and the domain reports
  REVERIFICATION_REQUIRED until reverified (DNS calls fail with
  UNVERIFIED_DNS_REGISTRANT meanwhile)
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.

1 participant