Skip to content

Commit

Permalink
feat(zimbra): initialize diagnostics page
Browse files Browse the repository at this point in the history
ref: MANAGER-16089

Signed-off-by: Tristan WAGNER <[email protected]>
  • Loading branch information
tristanwagner committed Jan 16, 2025
1 parent b4f397d commit d0ce369
Show file tree
Hide file tree
Showing 35 changed files with 1,279 additions and 546 deletions.
4 changes: 2 additions & 2 deletions packages/manager/apps/zimbra/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"vitest": "^2.1.2"
},
"regions": [
"CA",
"EU"
"EU",
"CA"
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"zimbra_dashboard_domains_add": "Ajouter un domaine",
"zimbra_dashboard_domains_edit": "Configuration du domaine",
"zimbra_dashboard_domains_delete": "Supprimer un domaine",
"zimbra_dashboard_domains_diagnostic": "Diagnostique",
"zimbra_dashboard_domains_verify": "Vérification",
"zimbra_dashboard_domains_diagnostics": "Diagnostics",
"zimbra_dashboard_email_accounts": "Compte email",
"zimbra_dashboard_email_accounts_add": "Créer un compte email",
"zimbra_dashboard_email_accounts_edit": "Modifier le compte",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
{
"zimbra_domains_add_domain_title": "Ajouter un domaine",
"zimbra_domains_datagrid_account_label": "Nombre de comptes",
"zimbra_domains_datagrid_diagnostic_label": "Diagnostique",
"zimbra_domains_datagrid_diagnostic_configuration_ok": "Configuration OK",
"zimbra_domains_datagrid_diagnostic_tooltip_title": "Diagnostic {{ diagType }}",
"zimbra_domains_datagrid_domain_label": "Domaine",
"zimbra_domains_datagrid_organization_label": "Organisation",
"zimbra_domains_datagrid_status_label": "Statut",
Expand All @@ -13,5 +11,6 @@
"zimbra_domains_datagrid_cname_tooltip": "Pour confirmer que vous êtes bien le titulaire de ce domaine, veuillez créer un enregistrement CNAME: <br/><br/><strong>{{cname}}</strong> vers <strong>ovh.com</strong><br/><br/>Vous avez 48 heures pour compléter cette étape.",
"zimbra_domains_tooltip_configure": "Configurer",
"zimbra_domains_tooltip_delete": "Supprimer",
"zimbra_domains_tooltip_diagnostics": "Diagnostics",
"zimbra_domains_tooltip_need_organization": "Veuillez d'abord configurer une organisation"
}
Original file line number Diff line number Diff line change
@@ -1,37 +1,29 @@
{
"zimbra_domain_modal_diagnostic_guide": "guide",
"zimbra_domain_modal_diagnostic_srv_title": "Diagnostique SRV",
"zimbra_domain_modal_diagnostic_srv_content_header": "Pour faciliter la configuration des boites mails sur vos terminaux, veuillez ajouter cette configuration à votre DNS (consulter notre <guide/>)",
"zimbra_domain_modal_diagnostic_srv_content_header_ovh_hosted_domain_part1": "La configuration SRV permet la configuration automatique de vos boites mails sur vos clients de messagerie.",
"zimbra_domain_modal_diagnostic_srv_content_header_ovh_hosted_domain_part2": "Votre domaine est hébergé chez OVH Cloud, nous allons procéder à la configuration de votre champ SRV.",
"zimbra_domain_modal_diagnostic_srv_domain": "Domaine",
"zimbra_domain_modal_diagnostic_fields": "Champs",
"zimbra_domain_modal_diagnostic_srv_action_validate": "Valider",
"zimbra_domain_modal_diagnostic_srv_action_cancel": "Annuler",
"zimbra_domain_modal_diagnostic_srv_action_close": "Fermer",
"zimbra_domain_modal_diagnostic_field_subdomain": "Sous domaine :",
"zimbra_domain_modal_diagnostic_field_priority": "Priorité :",
"zimbra_domain_modal_diagnostic_field_weight": "Poids :",
"zimbra_domain_modal_diagnostic_field_port": "Port :",
"zimbra_domain_modal_diagnostic_field_target": "Cible :",
"zimbra_domain_modal_diagnostic_mx_title": "Diagnostique MX",
"zimbra_domain_modal_diagnostic_mx_content_header_part1": "La configuration de l'enregistrement MX permet de recevoir vos emails dans vos boites mail.",
"zimbra_domain_modal_diagnostic_mx_content_header_part2": "Votre domaine n'étant pas géré par OVH Cloud, cette action doit être effectuée manuellement.",
"zimbra_domain_modal_diagnostic_mx_content_header_part3": "Veuillez créer les champs MX sur ce domaine en donnant les mêmes informations que ci-dessous.",
"zimbra_domain_modal_diagnostic_mx_content_header_ovh_hosted_domain_part1": "La configuration de l'enregistrement MX permet de recevoir vos emails dans vos boites mail.",
"zimbra_domain_modal_diagnostic_mx_content_header_ovh_hosted_domain_part2": "Votre domaine étant hébergé chez OVH Cloud, nous allons effectuer la configuration pour vous.",
"zimbra_domain_modal_diagnostic_mx_content_header_ovh_hosted_domain_part3": "Souhaitez-vous commencer à recevoir les mails du domaine <strong>{{domain}}</strong> sur ce service ?",
"zimbra_domain_modal_diagnostic_mx_content_footer": "En cas de problème, consultez la documentation de votre fournisseur de domaine.",
"zimbra_domain_modal_diagnostic_mx_action_validate": "Confirmer",
"zimbra_domain_modal_diagnostic_mx_action_test": "Tester",
"zimbra_domain_modal_diagnostic_mx_action_cancel": "Annuler",
"zimbra_domain_modal_diagnostic_mx_action_close": "Fermer",
"zimbra_domain_modal_diagnostic_spf_title": "Diagnostique SPF",
"zimbra_domain_modal_diagnostic_spf_content_header": "Si le domaine n'est pas géré par le même identifiant client que le service Exchange ou si votre domaine n'est pas hébergé chez OVHcloud, la configuration automatique n'est pas possible. Veuillez créer le champ SPF sur ce domaine manuellement en donnant les mêmes informations que ci-dessous.",
"zimbra_domain_modal_diagnostic_spf_content_header_ovh_hosted_domain_part1": "SPF permet de valider qu'OVHCloud est un émetteur légitime de mails avec votre nom de domaine.",
"zimbra_domain_modal_diagnostic_spf_content_header_ovh_hosted_domain_part2": "Votre domaine étant hébergé chez OVHCloud, nous pouvons procéder à la configuration automatique.",
"zimbra_domain_modal_diagnostic_spf_content_header_ovh_hosted_domain_part3": "Souhaitez-vous effectuer la configuration ?",
"zimbra_domain_modal_diagnostic_spf_action_cancel": "Annuler",
"zimbra_domain_modal_diagnostic_spf_action_close": "Fermer",
"zimbra_domain_modal_diagnostic_spf_action_validate": "Ok"
"zimbra_domain_diagnostic_cta_back": "Retour aux domaines",
"zimbra_domain_diagnostic_cta_refresh": "Rafraîchir",
"zimbra_domain_diagnostic_cta_auto_configure": "Auto-configurer",
"zimbra_domain_diagnostics_loading_error": "Une erreur est survenue lors du chargement des diagnostics de votre domaine. Veuillez nous excuser et réessayer plus tard.",
"zimbra_domain_diagnostic_loading_error": "Aucune information à afficher pour ce diagnostic.",
"zimbra_domain_diagnostic_status": "Statut :",
"zimbra_domain_diagnostic_status_ok": "Configuration OK",
"zimbra_domain_diagnostic_status_error": "Erreur de configuration",
"zimbra_domain_diagnostic_status_updating": "En cours de configuration",
"zimbra_domain_diagnostic_status_to_configure": "Pas configuré",
"zimbra_domain_diagnostic_status_disabled": "Désactivé",
"zimbra_domain_diagnostic_information_message_mx_ok": "La configuration de votre compte Zimbra sur OVHcloud est fonctionnelle: les emails adressés à votre domaine sont correctement acheminés vers vos boîtes aux lettres Zimbra.<br/><br/>N'hésitez pas à consulter régulièrement les diagnostics pour vous assurer du bon fonctionnement de votre service.",
"zimbra_domain_diagnostic_information_message_mx_error": "Nous constatons une configuration MX qui ne correspond pas à celle attendue par votre service email.<br/><br/>Si vous ne recevez pas vos emails dans les boites de destination, merci de procéder à une reconfiguration de votre Zone DNS avec les informations ci-dessous.",
"zimbra_domain_diagnostic_information_message_mx_warning": "Votre champ MX n'étant pas configuré, vos emails ne peuvent pas être correctement acheminés vers vos boîtes aux lettres.<br/><br/>Veuillez procéder à la configuration de votre domaine.",
"zimbra_domain_diagnostic_information_message_spf_ok": "Le protocole SPF est correctement configuré sur votre domaine.<br/><br/>Le SPF (Sender Policy Framework) est un mécanisme d'authentification du courrier électronique qui permet aux titulaires de domaines de spécifier quels serveurs sont autorisés à envoyer des emails en leur nom afin d'aider à prévenir l'usurpation d'identité des emails et les spams.<br/><br/>Votre configuration actuelle autorise bien l'envoi d'emails via les serveurs Zimbra.",
"zimbra_domain_diagnostic_information_message_spf_error": "Nous constatons une configuration SPF qui ne correspond pas à celle attendue par votre Service email.<br/><br/>Le SPF (Sender Policy Framework) est un mécanisme d'authentification du courrier électronique qui permet aux titulaires de domaines de spécifier quels serveurs sont autorisés à envoyer des e-mails en leur nom afin d'aider à prévenir l'usurpation d'identité des emails et les spams.<br/><br/>Votre configuration actuelle n'autorise pas les serveurs Zimbra à emettre des emails utilisant votre nom de domaine.<br/><br/>Veuillez compléter la Zone DNS de votre domaine avec les informations ci dessous.",
"zimbra_domain_diagnostic_information_message_spf_warning": "Nous ne détectons pas de configuration SPF sur votre Domaine.",
"zimbra_domain_diagnostic_type": "Type :",
"zimbra_domain_diagnostic_access_guide": "Accéder au guide",
"zimbra_domain_diagnostic_subtitle": "Diagnostics du domaine {{domain}}",
"zimbra_domain_diagnostic_field_host": "Nom/Hôte :",
"zimbra_domain_diagnostic_field_name": "Nom :",
"zimbra_domain_diagnostic_field_value": "Valeur :",
"zimbra_domain_diagnostic_field_priority": "Priorité :",
"zimbra_domain_diagnostic_field_weight": "Poids :",
"zimbra_domain_diagnostic_field_port": "Port :",
"zimbra_domain_diagnostic_field_target": "Cible :"
}
127 changes: 121 additions & 6 deletions packages/manager/apps/zimbra/src/api/_mock_/domain.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { DomainType } from '@/api/domain';
import { DomainDiagnosisResponse, DomainType } from '@/api/domain';
import { ResourceStatus } from '@/api/api.type';

export const domainDetailMock: DomainType = {
Expand All @@ -24,7 +24,21 @@ export const domainDetailMock: DomainType = {
},
],
expectedDNSConfig: {
mx: [],
spf: 'string',
dkim: {
cnames: [
{
name: 'string',
value: 'string',
},
],
},
mx: [
{
priority: 0,
target: 'string',
},
],
ownership: {
cname: 'test',
},
Expand Down Expand Up @@ -64,10 +78,24 @@ export const domainsMock: DomainType[] = [
},
],
expectedDNSConfig: {
mx: [],
dkim: {
cnames: [
{
name: 'string',
value: 'string',
},
],
},
mx: [
{
priority: 0,
target: 'string',
},
],
ownership: {
cname: null,
cname: 'string',
},
spf: 'string',
},
},
currentTasks: [
Expand Down Expand Up @@ -101,10 +129,24 @@ export const domainsMock: DomainType[] = [
},
],
expectedDNSConfig: {
mx: [],
dkim: {
cnames: [
{
name: 'string',
value: 'string',
},
],
},
mx: [
{
priority: 0,
target: 'string',
},
],
ownership: {
cname: 'mycname',
cname: 'string',
},
spf: 'string',
},
},
currentTasks: [
Expand All @@ -118,3 +160,76 @@ export const domainsMock: DomainType[] = [
];

export const domainZone: string[] = ['test.fr', 'mydomain.fr', 'domain.fr'];

export const domainDiagnosticMock = {
domainId: '3fa85f64-5717-4562-b3fc-2c963f66afa6',
domainName: 'zimbra.fr',
error: {
code: 'BAD_CONFIGURATION',
message: 'string',
},
recommendations: {
expectedDNSConfig: {
dkim: {
cnames: [
{
name: 'string',
value: 'string',
},
],
},
mx: [
{
priority: 0,
target: 'string',
},
],
ownership: {
cname: 'string',
},
spf: 'string',
},
},
result: {
dkim: {
errors: [
{
code: 'INCORRECT_CNAME_RECORD',
message: 'The CNAME setup on your DNS records is incorrect.',
},
],
recordsFound: ['string'],
status: 'ERROR',
},
mx: {
errors: [
{
code: 'EXTERNAL_MX_RECORD',
message: 'string',
},
],
recordsFound: [
{
priority: 0,
target: 'string',
},
],
status: 'ERROR',
},
spf: {
errors: [
{
code: 'DANGEROUS_SPF_POLICY',
message: 'string',
},
],
recordsFound: ['string'],
status: 'ERROR',
},
},
status: 'ERROR',
};

export const domainsDiagnosticMock = [
domainDiagnosticMock,
] as DomainDiagnosisResponse[];
23 changes: 22 additions & 1 deletion packages/manager/apps/zimbra/src/api/domain/api.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { fetchIcebergV2, v2, v6 } from '@ovh-ux/manager-core-api';
import { DomainBodyParamsType, DomainType } from './type';
import {
DomainBodyParamsType,
DomainDiagnosisResponse,
DomainType,
ZoneWithIAM,
} from './type';
import { getApiPath } from '../utils/apiPath';
import { APIV2_DEFAULT_PAGESIZE } from '@/utils';

Expand Down Expand Up @@ -29,6 +34,11 @@ export const getDomainsZoneList = async () => {
return data;
};

export const getDomainZoneByName = async (name: string) => {
const { data } = await v6.get<ZoneWithIAM>(`/domain/zone/${name}`);
return data;
};

export const getZimbraPlatformDomainDetail = async (
platformId: string,
domainId: string,
Expand All @@ -41,6 +51,17 @@ export const getZimbraPlatformDomainDetail = async (

// POST

export const postZimbraPlatformDomainsDiagnostic = async (
platformId: string,
domains: string[],
) => {
const { data } = await v2.post<DomainDiagnosisResponse[]>(
`${getApiPath(platformId)}diagnostic/domain`,
{ domains },
);
return data;
};

export const postZimbraDomain = async (
platformId: string,
params: DomainBodyParamsType,
Expand Down
12 changes: 12 additions & 0 deletions packages/manager/apps/zimbra/src/api/domain/key.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,21 @@ export const getZimbraPlatformDomainsQueryKey = (
organizationId,
].filter(Boolean);

export const getZimbraPlatformDomainsDiagnosticQueryKey = (
platformId: string,
domainIds: string[],
) => ['get', 'domain', 'zimbra', platformId, 'diagnostic', ...domainIds];

export const getZimbraPlatformDomainQueryKey = (
platformId: string,
domainId: string,
) => ['get', 'domain', 'zimbra', platformId, domainId];

export const getDomainsZoneListQueryKey = ['get', 'domain', 'zone'];

export const getDomainZoneByNameQueryKey = (name: string) => [
'get',
'domain',
'zone',
name,
];
Loading

0 comments on commit d0ce369

Please sign in to comment.