Le reçu du mot-clé entrant, et le ré-cléricien du consentement par la campagne (MS1 Tâche 3)

Featurekamo-shared-library
Expédié
27 août 2026 à 19:32 UTC
Auteur
Kamo
Commite
788a236

Deux choses dont le grand livre de consentement a besoin avant qu'un STOP entrant puisse être enregistré plateau-arête et exactement une fois. SmsInboundReceipt (comms-sms-inbound-receipt) est l'ancre de idempotency de Plan Décision M1. Tant les rails entrants déjà en dudéplier qu'aucun des dupe ne peut couvrir un mot-clé: - dedupes en demandant si un La ligne "VoipMessage" existe pour le message id du opérateur, mais un message de mot-clé est intercepté et retour AVANT que la ligne est écrite - donc la deuxième livraison d'un un support n'a pas de ligne et est à nouveau traité. Sans ce tableau, un transporteur réessayer STOP trois fois octère trois enregistrements de révocation à un registre WORM qui ne peut jamais être nettoyé. Unique (ORG-ID, CARRIER-MESSAGE-ID); bloc total de la WORM gardes copiés de ConsentRecord, délibérément pas de la part d'AgentOutboundTouch dont Append-only est une convention sans garde du tout. ORG-ID est nul, de sorte qu'un STOP inattribut est toujours enregistré comme élément de preuve - et Les contraintes uniques SQL ne contraignent pas les NULL, de sorte que le référentiel porte un séparé - Un nul passé à l'ordinaire le détecteur dérivé rend comme - NULL, ce qui n'est jamais vrai, donc le rétrécissement org-less le contrôle aurait passé silencieusement à chaque fois. Ce trou est documenté sur le entité; il se ferme lorsque ADD5/MS3 rend l'ordre résolvable. L'indice "ConsentRecord" gagne UN colonne annulable, "campaign-id" et UN Indice, (organisation-id, nombre brut, champ d'application). Rien d'autre déplacé: les gardes de la WORM, party-XOR-rawNumber 'assert'identifié() que le DB CHECK mlos-consent-one-identity-chk dépend, des trois indices préexistants et l'identifiant de l'organisation est nul inchangé, et "ConsentRecordCampaignKeyTest" est une clôture de régression autour de chacun d'eux. Les nouveaux détecteurs de l'org-arpe sont assis à côté de l'orge préexistant-AGGNOSTIC - Que l'on a raison pour le MLOS global-STOP lecture et mauvais pour MS1, où un propriétaire qui arrête la société Bob La plomberie doit rester joignable par le HVAC de Dave. Les deux sont documentés à la une déclaration donc la mauvaise est visible sur le site d'appel plutôt que être une répression silencieuse. TDD - échecs observés, mot pour mot. Rouge avant mise en œuvre (essai mvn-o-Dmaven.repo.local-private-): [ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/E Symbole [ERREUR: classe SmsInboundReceipt Lieu d'affectation : classe (9 cas) [ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/E [ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/E [ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/E [INFO) RENFORCEMENT DES FAIT Vert après: Tests: 19, Défaillances: 0, Erreurs: 0 (avec NotificationConsentTest). Mutation A - supprimé "unique" true" de l'index de la réception: Tests d'exécution: 5, Défaillances: 1, Erreurs: 0 - FAILURE - java.lang.AssertionError: comms-sms-inbound-receipt a besoin d'un indice UNIQUE - it est la seule chose qui empêche un transporteur de réessayer d'ajouter une seconde révocation Rejet d'enregistrement [ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/E Mutation B - Suppression de l'indice (organisation-id, nombre brut, champ d'application): Tests: 6, Défaillances: 1, Erreurs: 0 - FAILURE - en - [ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/ERREUR/E [un indice (organisation-id, raw-number, scope) index - l'opposé par les frontières Les deux sont revenus. Suite complète après retour: Essais: 2295, Défaillances: 0, Erreurs: 0 - y compris SharedLibBeanSafetyTest, que les deux nouvelles classes passent parce que Ni l'un ni l'autre ne porte de stéréotype à ressort. DDL NON TERMINÉ(S) comms.ss.inbound-receipt n'existe pas et mlos-consent-record n'a pas de colonne de campagne-id. Il ne doit pas s'écouler avant KamoInitializerService applique à la fois et REVOKEs MISE/DELETE sur le nouveau tableau (plan Task 5) - les rappels d'entités ne tirent pas pour le JPQL en vrac ou le SQL natif.

Tous les changements

Comme ce que tu vois expédier ?

Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.

Commencez gratuitement pour toujoursPrix de visualisation