Git Product home page Git Product logo

provision-provider-domain-names's People

Contributors

codelinenl avatar filippovacodeline avatar uphlewis avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

provision-provider-domain-names's Issues

OpenProvider renewals require a restore call if domain expired

Need to investigate whether we can determine if there's a cost associated with restore (i.e., if restore endpoint is also used for redemption) and if not, then we can automatically do a restore prior to the renewal request if the domain has already expired.

Currently it's not possible to renew expired domains due to this issue.

WHOIS Privacy

Currently whois privacy is always enabled by default when registering new domain names.

This should instead be configurable via RegisterParams, and possibly supplemented with functions to enable/disable.

Provider implementations of `domainAvailabilityCheck()`

This issue exists to track the progress of domainAvailabilityCheck() implementations on each provider class.

Implementation progress:

  • CoccaEpp
  • ConnectReseller
  • DomainNameApi
  • Enom
  • Hexonet
  • LogicBoxes
  • NameSilo
  • Nominet
  • OpenProvider
  • OpenSRS
  • UGRegistry

domainAvailabilityCheck() checks and returns the availability (to register/transfer) of a set of domain names, and whether or not they are premium domains

Provider implementations of `poll()`

This issue exists to track the progress of poll() implementations on each provider class (also see #7).

Implementation progress:

  • CoccaEpp
  • ConnectReseller
  • DomainNameApi
  • Enom
  • Hexonet
  • LogicBoxes
  • NameSilo
  • Nominet
  • OpenProvider
  • OpenSRS
  • UGRegistry

poll() returns up to the requested number of domain events, typically via EPP polling

Add `renew_until` parameter to `renew()` function

The goal here is to make renew() idempotent (prevent accidental double-renewing) by passing the desired expiry date of the domain from the billing system as the point of truth, so the provider will only renew the domain up to that date (perhaps with a +/- 3 month tolerance to prevent off-by-one style bugs).

ConnectReseller CompanyName

From what I can determine, it seems the ConnectReseller API no longer accepts empty Company Name (Organisation). We will push a fix out so that when no Organisation is entered, we use the Name as CompanyName in the ConnectReseller API call.

Provider implementations of `setAutoRenew()`

This issue exists to track the progress of setAutoRenew() implementations on each provider class.

Implementation progress:

  • CoccaEpp
  • ConnectReseller
  • DomainNameApi
  • Enom
  • Hexonet
  • LogicBoxes
  • NameSilo
  • Nominet
  • OpenProvider
  • OpenSRS
  • UGRegistry

setAutoRenew() toggles registry auto-renew on or off (when on, domain renews implicitly; when off, domain requires explicit renew())

Deprecate `transfer()` and create `initiateTransfer()` and `finishTransfer()`

Currently the transfer() function is expected to behave in the following way:

  1. Check if the domain is already active in registrar account and return a successful result if so
  2. Otherwise check if a transfer is already in-progress and return an error result if so
  3. Otherwise initiate a new transfer and return an error result if so

To reduce the complexity and number of responsibilities of the transfer() function we should deprecate it in favour of new functions:

  • initiateTransfer(TransferParams $params): InitiateTransferResult
    • Check if the domain is already active in the registrar account and return a successful result if so; transfer_status=complete and domain_info containing the domain result
    • Otherwise check if a transfer is already in-progress and return an error result if so
    • Otherwise initiate a new transfer (and validate EPP code if possible) and return a successful result if so; transfer_status=in_progress and include the transfer order id if applicable for that provider
  • finishTransfer(FinishTransferParams $params): DomainResult
    • Check if the domain is already active in registrar account and return a successful result if so
    • Otherwise return an error informing of the current state of the transfer, if any

New param/result datasets:

  • InitiateTransferResult
    • domain: [required, string]
    • transfer_status: [required, string, in:in_progress,complete]
    • transfer_order_id: [nullable]
    • domain_info: [required_if:transfer_status,complete, DomainResult::class]
  • FinishTransferParams
    • sld: [required, alpha-dash]
    • tld: [required, alpha-dash-dot]
    • transfer_order_id: [nullable]

Loosen SLD validation for Nominet .sch.uk use case

These are structured as:
<school-name>.<local-authority>.sch.uk

Currently that would mean each <local-authority>.sch.uk needs to be modelled as a TLD which in Upmind means a different product for each region (there could be hundreds).

It would be improved if admins could set the SLD to <school-name>.<local-authority> but currently all SLD validation uses the alpha-dash rule so periods are not allowed.

If we loosened SLD validation to alpha-dash-dot it would permit this use case. On the Upmind side would need to be careful to ensure the SLD provision field remains alpha-dash-dot for customers but allow more freedom to admins to be able to manage these orders manually.

Update poll() parameters to support `after_id`

This is for providers such as RealtimeRegister which do not support spec-compliant EPP polling but offer a list API instead- so from the system client it would be good to store and then pass back the last notification id so that notifications can be traversed sequentially without any duplication.

Add `sub_type` and `raw` to DomainNotification object

Related: #6

sub_type

Initial use-case is for TYPE_DATA_QUALITY notifications where the valid sub-types should be:

  • SUB_TYPE_DATA_QUALITY_NAME
  • SUB_TYPE_DATA_QUALITY_ADDRESS
  • SUB_TYPE_DATA_QUALITY_NAME_AND_ADDRESS

raw

Currently it's possible to return the raw message in extra but where the raw message is required by a consumer it would be better to formally define a raw property (mixed type i.e., may contain an XML string or an object or array etc)

CoZa

Internal: TPS-050-52915

Namesilo portfolio feature

from here: https://upmind.com/community/topic/817-add-support-for-namesilos-portfolio-feature/

Please consider adding support for the Portfolio feature in Namesilo's integration. The portfolio is a way to separate domain registration in their system.

With portfolio support we could have different providers setup in Upmind for the same Namesilo account and have each one to use different Portfolio.

You could allow us to set the Portfolio in the provisioning account configuration "admin/host/domain-names/registrars" and send it when registering a domain and other pertinent operations.

https://www.namesilo.com/api-reference#domains/register-domain

As you can se in their API reference, it's available to use.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.