Noms de domaine
8 routes. Chemins relatifs à https://api.nexus-engine.eu/api/v1.
GET
/domains
Le parc de noms de domaine, recomposé à la lecture.
RequêteclientId, siteId, connectionId, unbound, expiringDays, noAutoRenew, includeUnmanaged, q, page, size
Réponse{ total, domains: DomainRowDto[] }
NoteUne PROJECTION : il n’existe pas de table de domaines. Aucun appel chez un hébergeur — tout vient du cache de l’inventaire et des constats publics (RDAP, résolveur). Les domaines qu’aucun compte relié ne porte sont inclus par défaut, déduits des adresses des sites.
GET
/domains/:domain
La fiche d’un domaine, en un appel.
RéponseDomainSheetDto
NoteLe nom est ramené à sa racine : « www.client.fr » et « client.fr » désignent la même fiche. « gaps » dit ce qu’aucune source n’a rendu et pourquoi ; « limites » dit ce que le fournisseur ne sait pas faire. 404 hors du parc visible, jamais 403.
POST
/domains
Déclare un domaine à la main, et le relève aussitôt.
Corps{ domain, connectionId?, note? }
RéponseDomainSheetDto
NoteN’écrit AUCUN fait : ni échéance, ni registraire, ni adresse. Une déclaration dit seulement « ce domaine fait partie du parc » ; les faits continuent d’arriver par RDAP et par le résolveur. Le compte est une intention tant que la synchronisation ne rend pas le domaine (connectionAnnounced). Redéclarer un domaine écarté le remet dans la liste.
PATCH
/domains/:domain
Rattache un domaine à un compte d’hébergeur, ou change sa note.
Corps{ connectionId?, siteId? (null délie), note? }
RéponseDomainSheetDto
NoteUne intention, jamais un constat : le jour où l’inventaire trouve le domaine chez un compte, c’est l’inventaire qui gagne et le compte annoncé s’efface. 404 hors du parc visible.
DELETE
/domains/:domain
Retire un domaine de la liste. Ne touche RIEN chez l’hébergeur.
Réponse{ ok, efface }
NoteDeux cas : un domaine déclaré à la main est effacé (efface: true) ; un domaine deviné d’un site ou porté par un compte est ÉCARTÉ (efface: false) et revient si on le redéclare. Un domaine ne se supprime pas depuis Nexus : ça se fait chez le registraire.
POST
/domains/:domain/refresh
Relit les sources PUBLIQUES de ce domaine (registre et résolveur).
RéponseDomainSheetDto
NoteAucun appel chez l’hébergeur. Six par minute et par appelant : RDAP est un service public et gratuit. Le domaine doit appartenir au parc visible — la route n’est pas un interrogateur de RDAP à la demande.
GET
/domains/:domain/mail
Le chemin de courriel du domaine : ce que la zone annonce, et les boîtes.
RéponseDomainMailDto
NoteLa moitié DNS (SPF, DMARC, DKIM, MX) est lue publiquement. Les boîtes viennent de la MACHINE, par Plesk et SSH, quand un site du domaine y est rattaché et que le coffre a un accès — IONOS ne publie aucune API de messagerie. L’absence est dite dans « mailboxesUnavailable », jamais rendue par une liste vide. Six par minute et par appelant : la seconde moitié ouvre une session SSH.
POST
/domains/:domain/subdomain/plan
Calcule l’aperçu d’un sous-domaine. N’écrit rien.
RéponseSousDomainePlanDto
NoteUn sous-domaine est un enregistrement DNS, pas un objet : la route compose l’intention et la passe au même planifier() que le reste. L’appliquer se fait par POST /provider-resources/:id/dns/apply avec le changeId et le planHash rendus ici. 409 si aucune zone du domaine n’est gérée par un compte relié.