Note de programmation

Liens privés pour les prestataires et envoi durable des emails

Mis à jour 1 septembre 2026 Traduit MyCasaPro Modification vérifiée a454540

Note technique d’.

MyCasaPro crée désormais des invitations donnant aux prestataires un accès limité et inscrit leur envoi dans une outbox persistante avant de contacter un service SMTP.

Sur cette page

Ce qui a changé

Les prestataires peuvent examiner une réparation partagée, consulter les pièces jointes autorisées et soumettre un devis sans créer de compte.

Les jetons d’invitation contiennent 256 bits aléatoires ; seuls leurs condensats SHA-256 sont conservés, les liens expirent après sept jours et les propriétaires peuvent les révoquer plus tôt.

L’invitation et l’enregistrement dans l’outbox sont validés ensemble ; un worker prend ensuite en charge l’envoi, les tentatives limitées, le verrouillage et l’état final.

Un périmètre restreint pour l’invité

La route invitée concerne une seule demande de réparation, pas un compte prestataire allégé. Sa réponse omet l’identité et l’adresse du propriétaire ; les pièces jointes restent protégées par une autorisation API limitée au jeton.

Le jeton d’invitation brut n’est pas stocké. La base conserve son condensat SHA-256, son expiration et son état de révocation : lire la base ne suffit donc pas à obtenir un lien utilisable.

Enregistrer avant d’envoyer

La création de l’invitation et le message correspondant entrent ensemble dans le stockage persistant. L’envoi SMTP intervient ensuite, par un worker de l’outbox, plutôt que dans la transaction de la requête du propriétaire.

Cette séparation empêche une panne temporaire de messagerie de faire perdre l’invitation ou d’obliger l’utilisateur à deviner si elle a été créée. L’état de l’envoi reste consultable après la réponse à la requête.

Tentatives limitées et limites de production

Les workers prennent en charge un lot limité sous verrou d’envoi, appliquent un délai maximal par message et enregistrent la réussite ou l’échec. Les tentatives sont bornées plutôt que répétées indéfiniment ; les prises en charge abandonnées peuvent être récupérées à l’expiration du verrou.

Le déploiement de production réunit sur un serveur l’application web, l’API Go, PostgreSQL, les fichiers privés, l’envoi SMTP, HTTPS et les outils de sauvegarde. La documentation précise aussi ce qui reste à résoudre : supervision externe, exercices de restauration hors serveur, stockage horizontal, contrôles anti-abus et intégration effective d’un prestataire de paiement.

Note d’ingénierie

La création d’un accès et l’envoi de sa notification sont des transactions distinctes. Enregistrer la notification avant de contacter SMTP évite qu’une panne du service efface une invitation par ailleurs valide.

Provenance

Cette note s’appuie sur le code vérifié du projet au commit a454540. Elle documente une modification logicielle, pas une actualité personnelle.