Aller au contenu
KAMOUniverse

Changelog

Ce qui est nouveau.

Chaque amélioration apportée à la plateforme, à mesure qu'elle est livrée.

  1. · kamo-internal

    "Tous les chefs de file/comptes / demandes" sur une campagne, quelle que soit la taille

    Chaque idbox sur l'éditeur de campagne a maintenant une boîte "All ..." à côté. Coincée, la boîte se plie en un Panneau en direct pour tous ceux qui sont membres de ce type, le membre signé peut voir, avec combien d'adresses que est compté pour une petite organisation, déduite pour une grande organisation (" 4,9 milliards d'euros 2 %)" et le perfectionnement en place, car EmailService annonce un meilleur chiffre. Une boîte que le membre ne peut pas utiliser dit pourquoi. Rien dans l'éditeur ne contient plus l'ensemble de la liste: - La liste sauvegardée est une grille de page de serveur (recherche par adresse, filtre par statut, lignes de marque à prendre) off), et Save envoie les changements de la page en tant que tranches avec une barre de progression - pas la liste. - "Preview as" est une recherche sur les nouvelles adresses de cette page, la liste sauvegardée et chaque coché un public, une page à la fois, au lieu d'un menu des cinquante premières adresses chargées dans le navigateur. - Le résumé du destinataire ajoute la liste, ce que Save ajoutera et chaque audience, et dit clairement que Personne n'est envoyé deux fois par courriel et les dérogations sont mises hors disposition au fur et à mesure qu'il envoie. - Une campagne d'envoi montre à quel point chaque audience a été rassemblée. La boîte de réception mise en scène, le résumé de la boîte de tâches et la ligne de distinguement de l'éditeur ne sont plus en train de interroger : ils ont relu les cadres de progression du socket des campagnes.

  2. · EmailService

    Une campagne peut aller à chaque chef de file, compte ou application qu'un membre peut voir

    "Tous les pistes / comptes / applications" est une règle, pas une liste. Il est stocké avec la campagne (le Le blob de soutien en vrac, le publicitaire et pas de LDDL, s'étend sur l'accès de celui qui le met en place ou qui l'a pressé Envoyer, et est rassemblé par le répartiteur ne balaye que quelques milliers de destinataires avant ce que le Les hôtes sortants peuvent prendre, donc un public de milliards d'individus n'existe jamais en tant que liste nulle part. - Atteindre : exactement ce que le membre pouvait lire non masqué et la règle des écrans principaux (porteurs simples; d'autres avec View contact info of others; non assigné également Besoin de visualisation des pistes non attribuées ou d'un free-for-all produit), compte tenu de View Accounts qui ont accepté de commercialiser des applications avec un pipeline. - Lecture : petites organisations à travers leur propre indice par id; les grandes par havre de hayon la table (yb-hash-code sur la clé primaire, épinglée avec un indice) - la seule plage que ces Des tables hachées peuvent être recherchées. - Counting : exact pour les petites organisations, déduites pour les grandes provenant de seaux de hash au hasard avec un La gamme de 95 %, l'affine en direct sur NATS (email-audience) et mise en cache par portée dans Redis. - Les rangées rassemblées sont des destinataires ordinaires, des clauses de non-participation, insérées sur les CONFLITS NE RIEN (jamais un non- adresse deux fois) et marquées si décrochant une source ne reprend que ce qu'elle a mis en scène. Une campagne n'est pas Fini pendant que son public est encore en train d'être rassemblé; annuler tout ce qui reste l'arrête. - La liste d'envois est en page (/récipients/page, recherche sur l'index des adresses) et modifié en tranches; (/récipients/append,/recipients/refusing); supprimer et dupliquer ne plus le charger, et libérer les temps sont affectés d'une page à la fois. - Avant-première: /campaigns/audience/browse pages un public avec une recherche d'id et une recherche en temps voulu. - Les locataires de PHI obtiennent la piste d'accès par enregistrement de la grille de plomb pour chaque audience principale.

  3. · EmailService

    La page de préférence dans toutes les langues que le produit parle

    La page derrière chaque lien de désabonnement ne parle que de l'anglais. Il parle maintenant les 22 langues que le produit utilise l'UI: anglais, chinois, hindi, espagnol, Français, arabe, bengali, russe, portugais, Indonésien, Japonais, Swahili, turc, tamoul, vietnamien, coréen, italien, thai, polonais, Ukrainien et roumain. - Chaque phrase de la page dit elle-même vit maintenant dans un paquet de messages, - avec l'anglais comme source et la repli sur tout ce qui manque. Les chiffres prennent le bon format pluriel pour chaque langue, et les dates sont écrites à leur manière (UTC). - La langue est choisie par demande: un paramètre lang gagne, puis le les valeurs de qualité respectées, le pt-BR revient à pt), puis anglais. Une langue que le lecteur choisit reste cueillie chaque forme et rediriger. La page définit le html lang, le contenu et le langage. Vary, et liste toutes les langues, nommées en soi, au bas comme étant clair liens. - L'arabe est agencé de droite à gauche: dir."rtl", logique CSS, un miroir changer, et les mots propres de l'organisation (nom, sujet, adresse) conservés dans leur propre direction. Ces mots ne sont jamais traduits. - Sur les écrans larges, la page utilise maintenant toute la largeur: qui est-ce pour et pourquoi d'un côté, les choix à côté en colonnes, les notes et le pied de page ci-dessous. Sous 720px, il est la même colonne qu'auparavant. - Rien d'autre change: toute valeur est encore échappée (texte traduit autour aussi), pas de script, les mêmes en-têtes verrouillés, GET toujours jamais change quoi que ce soit, et un lien qui nomme personne n'obtient toujours le même page neutre, maintenant dans le langage du lecteur. Les tests vérifient que chaque paquet a exactement les clés anglaises et les espaces réservés et une succursale pour chaque forme plurielle de sa langue, et la couverture la négociation linguistique, la sortie du droit à gauche, les dates, l'évasion, et langage survivant d'un épargne et sa redirection.

  4. · kamo-internal

    Les pages se retournementnt des événements changent d'org au lieu de charger une fois

    Chaque écriture réussie via forwardToApi publie maintenant rt.org.org.org.org. sur le NATS du noyau (le domaine est le premier segment de chemin dorsal, sautant la sécurité/). MediaService le relaie à /topic/rt/org/'org/'org'/'domain', et utiliseOrgChanges souscrit à la prise commune, fusionne des rafales et des incendies après un reconnecter. Les routes los, la facturation et la location de l'oauth, qui ne passent pas forwardToApi, publie-t-il. Les pages qui se chargent une fois se replient silencieusement lorsque leur domaine change: non flash squelettes, et jamais sur une entrée non-sauvée. - Comptes : attribuer, et la vue du compte (vue d'ensemble, historique, chefs de file, membres, notes, ordres) - Notes - Commerce: commandes, accords, réservations, marchés publics, demandes, emplois de service, demandes de services, inscriptions, abonnements, prêts personnels et rapport sur le vieillissement - Prêts, détails sur les prêts et offres - Page d'accueil et article de la base de connaissances - Carrières, questions juridiques et conformité - Paramètres, paramètres du compte, intégrations, page de catégorie de documents, et les pages du marché et du plan d'abonnement Le calendrier associe son alimentation à l'aide au changement existant. Les résultats suivent Le sujet de déverrouillage du membre.

  5. · EmailService

    Un désabonnement par courriel est honoré, non supprimé

    Chaque message en gros et en tant que message partagé offrait un désabonnement-sender-sender-sed-sing-sing-sing-s-scris-sing------------------ dans son en-tête List-Unsubscribe, mais rien ne lit cette boîte aux lettres - pour un locataire Ce n'était même pas notre domaine - donc chaque clause de non-participation envoyée de cette façon a été perdue. - L'envoi de noms maintenant nomme unsubscribe.hello.kamocrm.com - pour chaque tranche, avec le jeton du destinataire dans le domaine: Le lien https en un clic et le lien List-Unsubscribe-Post sont inchangés. - POST/api/interne/désabonnement/coursage/courrier prend ce qui y arrive, comme indiqué par le side-car du serveur de courrier. Il trouve le jeton dans l'adresse plus, le sujet (avec Re:, dans les majuscules, gauche URL-encodé, ou RFC 2047 encodé) ou a transfert de lien, le résout exactement comme le fait la page de préférence, et désinscrite cette adresse pour cette tranche par l'intermédiaire du registre d'exclusion (source "mailto", avec le texte d'identification du message). Une ligne de campagne qui attend toujours d'être envoyée est tiré, comme avec le lien en un clic. Le faire deux fois ne change rien. - Un message sans un signe indiquant que quelqu'un ne change rien : personne n'est désabonnée par une estimation de l'adresse From, que n'importe qui peut écrire. Rien n'est jamais renvoyé. Le loge conserve le domaine de résultat, org, expéditeur et Message-ID, jamais le sujet ou le corps. - Il se trouve derrière InternalAuthFilter comme le reste de /api/internal, refuse demande plus de 64 KiB, et essaie au maximum cinq jetons de candidats par message.

  6. · kamo-internal

    L'onglet Opt Out et la mise à jour de la puce principale en direct

    Les deux abonnez-vous à l'adresse (EmailService et SecurityService publie après chaque changement engagé; MediaService relais), de sorte qu'un destinataire se désabonnant, un rebond ou un éditeur de comité de liaison d'un collègue se montre à la fois au lieu du chargement suivant. L'orge id est l'accesseur de corde, jamais un nombre arrondi. Un changement à moitié fait dans l'éditeur est conservé lorsque l'adresse se déplace en dessous, avec une note le disant. Il laisse également tomber les chapeaux de largeur que l'onglet avait sur un certain nombre et deux paragraphes.

  7. · EmailService

    Les écrans opt-out se rafraîchissent en direct lorsque quelqu'un change de liste

    Le registre indique maintenant à OptOutChangePublisher après chaque changement engagé - un destinataire sur la page de préférence, un rebond, un membre dans Paramètres - et il publie rt.org.org.org.-org-email-outs sur NATS pour MediaService à retransmettre. La trame ne porte pas d'adresse; l'écran relit ce que son spectateur peut voir.

  8. · SecurityService

    Le changement d'opt-out d'une sonde rafraîchit les écrans ouverts en direct

    Le registre indique ici OptOutChangePublisher après le changement s'engage, qui publie rt.org.org.org.org.email-opt-outs sur NATS core (le flux JetStream de ce service est le chat.), relayé par MediaService. Pas d'adresse dans la trame.

  9. · kamo-shared-library

    Le registre de l'exclusion indique quand la liste d'une organisation a changé

    Un auditeur optionnel, raconté après le changement, pour que les écrans montrant la liste puissent se rafraîchir en direct au lieu de charger une fois. Il ne porte que l'organisation : qui a choisi de ne pas se retirer est derrière lui-même, de sorte que l'écran relit ce que son spectateur peut voir. Les constructeurs existants sont inchangés.

  10. · KlusterServices

    Courrier pour se désabonner.hello.kamocrm.com atteint EmailService

    Chaque message en gros et par article partagé offre un désabonnement par courrier électronique (Liste de désabonnement-poste), mais le courrier à cette adresse est allé à l'administrateur de poste et n'a jamais été suivie d'effet. Maintenant, postfixe mains exactement cette adresse, et désabonner - n'importe quoi - sur le même domaine, à un petit tuyau qui boive le un message et un nouveau side-car de désabonnement par un poste de side-car sur EmailService /api/interne/non-abonnement/coursage/courrier électronique. EmailService trouve le jeton du destinataire en l'objet (ou l'adresse plus, ou le lien transmis) et les désabonnements exactement comme le lien en un clic; tout ce qui n'a pas de jeton valide est accepté et abandonné. - Toutes les autres adresses sont acheminées comme avant: la ligne recgexp correspondante unsubscribe.hello.kamocrm.com se trouve au-dessus du maître de poste, et transport-maps nomme uniquement le pseudo-domaine auquel il réécrit. - Rien n'est jamais rebondi ou répondu à : le tuyau ne répond jamais "Livré" ou "essayez plus tard", et coiffe sa bobine à 5000 messages. - La side-car réutilise la copie postfix-bulk-livraison de l'entreprise secret, optionnellement, et ne quitte jamais, de sorte qu'il ne peut pas empêcher le postfix de le lancement ou la sortie de la gousse de son service.

  11. · AIService

    L'agent de vente honore la liste d'exclusion de l'organisation par courrier électronique

    Avant qu'un e-mail ne touche la porte sortante maintenant demande l'e-mail de l'organisation un registre d'exclusion au sujet de l'adresse du contact. L'adresse est celle du contact points clés à: l'e-mail de l'appel d'offres pour le lead: uuid, celui du membre (ou de son utilisateur) pour le membre: id', et seulement lorsque ce chef ou membre appartient au même organisation. Une adresse sur la liste de non-email, ou pause, est refusée comme suit: SUPPRESSED-OPT-OUT avec une raison qui commence à EMAIL-OPTED-ORG-LIST. C'est vérifié immédiatement après l'opt-out du contact et en avance sur tout accidentelles, et elle s'applique même à un contact que l'agent n'a jamais touché. Si la liste ne peut pas non plus être lue l'e-mail qui est refusé (EMAIL-OPT-OUT-CHECK-FAILED): la sensibilisation de l'agent n'est pas sollicitée, de sorte qu'un chèque sans réponse ne doit jamais devenir un envoyer. D'autres canaux sont inchangés. Une clause de non-participation enregistrée par recordOptOut pour le courrier électronique, ou pour chaque canal, maintenant Inscrire également l'adresse sur la liste de non-courrier électronique de l'organisation (raison). UNSUBSCRIBE, source aiagent-opt-out, contexte AI-CONTACT avec la clé de contact), Ainsi, chaque expéditeur de l'organisation et la page d'accueil le voient. Leger lit et écrit dans une transaction qui leur est propre et ne jette jamais. Le le grand livre est transactionnel lui-même, et une exception à l'intérieur de l'appelant transaction ferait reculer la ligne d'audit du refus ou le fait qu'il est propre l'opt-out. Une écriture ratée est enregistrée et l'opt-out du contact est toujours en place. Le grand livre est déclaré bean au-dessus de ses trois dépôts. Son sonde pour la de nouvelles tables d'exclusion sont construites à partir de la source de données primaire, la seule qui service has. com.kamo.z.shared.email rejoint le casse-tête; le haricot et l'analyse doit changer ensemble.

  12. · MediaService

    Relais modifier les événements en /topic/rt/org/org/-org-/-org-/-g-d-g-g-g-g-g-g-g-g-g-g-g-

    Les écrivains publient rt.org.org.org.-gin-domain- sur le NATS de base après un changement réussi; chaque pod le transmet au sujet de l'orgge donc les écrans ouverts se retourne au lieu de charger une fois. L'UBSIRIF est vérifié par rapport à l'ordonnance de session, et le client SEND au préfixe est refusé.

  13. · kamo-marketing

    Un site caché, par visite, chasse pour une promotion plafonnée, et des signaux qui y conduisent les visiteurs

    La chasse: sept écluses par visiteur, générées à partir d'une graine et de HUNT-SECRET, encrypté avec la réponse précédente, caché sur une page qui déplace chaque UTC minuit, avec des portes temporelles et un minimum de 72 heures. les jetons signés d'État; le prix est un code personnel émis par SecurityService à partir d'un modèle promotion, dérivée de la graine du résolveur, donc un ré-essai ne prend jamais une seconde slot. scripts/check-hunt.ts joue 400 chasses jusqu'à la fin et échoue à la construction si une étape ne peut être résolue à partir de ce qu'un solveur est montré. La façon dont, pour quelqu'un qui n'en a jamais entendu parler: trois signaux. Un mot dans les pécheurs de copie de la page de destination; la trouver nomme la page suivante (Pricing d'abord) et lie là, le lien nav vers elle brille, une pilule garde le nombre sur toutes les pages, et la troisième ouvre la chasse. Intention de sortie du bureau une fois par personne session, et "démarrer libre" à chaque étape. Chaque étape est un événement de chasse à l'analyse. Tout échoue : pas de modèle, pas de secret ou pas de code ne signifie non la ligne de pied de position, sans signaux et /api/hunt répond FERMÉ. /hunt indique termes exactement comme le modèle les définit.

  14. · SecurityService

    Élivrer des codes personnels à usage unique à partir d'un modèle de promotion

    Le site kamocrm.com chasse chacun résolveur un code qui lui est propre, et seulement les N premiers résolveurs en aient un. Un code partagé ne pouvait pas le faire: D'abord résolveur pour le poster, il donnerait la rabais à tout le monde. - PromotionCodeIssuer: une promotion INACTIVE est le modèle; son maxRedemptions est le nombre de codes personnels qui peuvent être délivrés. Les créneaux horaires sont pris par une MISE À JOUR conditionnelle, deux répliques ne peuvent pas être sur-problèmes. Un appelant peut nomme le code, et demander à nouveau qu'un code émis le retourne sans prendre une deuxième fente. - sur le groupement secret interne. - Les promotions publiques alimentent les codes à usage unique, donc un code personnel ne peut jamais être répertorié ou faire la publicité dans le héros de la page d'accueil.

  15. · EmailService

    Une vraie page de préférence derrière chaque lien de désabonnement

    La liaison de désabonnement a ouvert une carte de confirmation ou de congé. Quelqu'un qui Seuls voulaient moins d'e-mails n'avaient aucun moyen de le dire, et rien ne leur a dit pourquoi ils étaient envoyés par la poste, ce qui continuerait à arriver, ou que leur choix a été enregistré. Le lien ouvre désormais une page de préférence pour cette adresse et cet expéditeur. Se désabonner de tout vient en premier et est une presse. Après cela, le lecteur peut éteindre un type de courrier (lorsqu'il y en a plus d'un de choisir entre, ou l'un est déjà éteint) ou tout mettre en pause pour 30, 60 ou 90 jours. Une fois désabonnés, ils peuvent se resoumettre avec un seul bouton, ou dire à l'expéditeur pourquoi ils sont partis. La page dit pourquoi l'e-mail est venu, ce qui ils recevront toujours, et chaque changement est enregistré. Chaque changement passe par le grand livre de l'option avec la demande. Il est venu, donc l'histoire montre que le choix était le lecteur. L'ouverture de la page donne une vue et ne change rien. Demandes en un seul clic par courrier (RFC 8058) toujours se désabonner de tout, toujours répond 200, et puis tirez toujours une ligne de campagne en file d'attente de son envoi. Un lien que les noms personne n'obtient la même page neutre sur chaque itinéraire et jamais atteint le registre. La page est des formulaires HTML simples sans script. Il est dessiné dans l'expéditeur Couleur de la marque, ajustée jusqu'à ce qu'elle réponde au contraste WCAG à la fois en lumière et en les thèmes sombres, et il fonctionne à partir de 320px large. Chaque réponse est accompagnée d'un une politique stricte de sécurité de contenu, aucun référent (le jeton est dans l'URL), sans magasin, no index et interdiction de faire partie. Rendre des vies dans la suppression/page: un enregistrement de vue, un moteur de rendu pur qui test et prévisualisations appellent directement, et un service qui résout les jetons et s'entretient avec le grand livre. Le contrôleur ne route et sert que des en-têtes.

  16. · kamo-internal

    Puce d'opt-out par courrier électronique et panneau sur la page d'accueil

    À côté de l'adresse e-mail du lead, il y a maintenant une puce disant si la personne peuvent être envoyés par courrier électronique: e-mails autorisés, optés sur tous les e-mails, Pausés jusqu'à une date, Certains e-mails, ou pas d'adresse e-mail. Il ouvre un panel qui explique état courant en termes clairs (qui l'a changé, quand et pourquoi), avec des interrupteurs pour chaque type d'e-mail, un commutateur "opt-out de tout e-mail", une pause de 30/60/90 jours ou la fin de l'un, et l'histoire récente avec la demande, les détails derrière une bascule. Chaque fois qu'un changement permet à un e-mail d'atteindre à nouveau la personne, le billet devient besoin, dit pourquoi, et Save l'attend. Un membre qui ne peut pas le modifier est a dit pourquoi et voit tout en lecture seule; avant les tables d'histoire existent le Un panel dit si calmement au lieu d'échouer. L'action rapide par e-mail demande maintenant d'abord quand la personne a choisi de ne pas envoyer tous les e-mails. ou l'a mis en pause, et laisse le membre écrire de toute façon pour une réponse en tête-à-tête. Ajout de la voie de calcul de la proxy pour le passage Le champ et le code du serveur traversent de sorte que le panneau peut mettre une erreur à côté de la droite input.

  17. · SecurityService

    Voir et modifier l'opt-out d'un haut-de-e-mail à partir du responsable de l'information

    Un membre travaillant sur le groupe principal peut maintenant voir si cette personne peut être envoyée par courrier électronique, et le modifier, sans la liste des paramètres d'opt-out à l'échelle générale. GET - répond avec l'état de l'adresse le grand livre choisi par l'organisation, ses dix modifications les plus récentes et les thèmes une adresse peut s'arrêter. Qui peut le lire suit l'avance elle-même (401/404/403 comme suit: pour l'ouverture du plomb, les sondes free-for-all incluses). Un appelant dont la vue de la les coordonnées de lead sont masquées l'adresse masquée de la même manière et non Les détails IP, navigateur ou session sur les lignes d'historique. PUT sur le même chemin le change. Il est permis exactement quand il est édrait ceci Les coordonnées de la sonde sont autorisées (le cessionnaire ou le cessionnaire, EDIT-LEAD-CONTACT-INFO-OTHERS plus VIEW-UNASSIGNED-LEADS pour une avance non attribuée) et jamais pendant l'adresse est masqué. Le changement est enregistré comme MANUEL à partir de "lead:'id'", avec le membre, les adresses et le navigateur de la demande, ainsi qu'un hachage de la session. Autoriser le courrier électronique a de nouveau besoin d'une note, que le grand livre applique (400 avec le champ "commentaire"); jusqu'à ce que les tableaux d'historique existent, un changement est refusé avec 503 HISTORY-UNAPHÉNÉ. Chacun de chaque le changement laisse également une ligne sur le propre onglet Historique de l'adressage. Le grand livre est déclaré ici avec sa propre sonde de schéma, comme le fait EmailService.

  18. · EmailService

    Un administrateur d'orge peut voir et modifier l'ensemble de la liste d'exclusion

    L'IPA sous /api/email/opt-outs, derrière MANAGE-EMAIL-OPT-OUTS (ditours de dérivation): un résumé avec les 30 derniers jours, la liste filtré par état, raison et adresse, une adresse avec son historique complet et partout ailleurs il apparaît dans l'organisation, l'activité à l'échelle de l'ordre, un CSV les exportations, les modifications et les notes apportées par l'intermédiaire du grand livre des guichets non configuaux. Chaque changement est enregistrés contre le membre, l'adresse du client la procuration a transmis, et a le hachage de leur session. Les Ids sont envoyés sous forme de chaînes et de temps en tant que ISO-8601, en tant que L'application web s'attend à. Jusqu'à ce que les tableaux d'historique existent, la liste, le résumé, l'adresse et l'exportation le travail à partir de la liste de non-email seul, et un changement répond 503 avec HISTORIER-NÉBAT AU-PRESCRIPTION au lieu d'être à moitié fabriqué. La sonde de schéma construit maintenant sa requête sur la base de données principale. Il était en train d'être étant donné le seul fèlet JdbcTemplate dans ce service, le serveur de courrier MySQL, afin qu'il ne puisse jamais voir les tables d'exclusion et le changement de chaque membre aurait ont été refusés.

  19. · kamo-internal

    Paramètres - Adresse électronique - Opt Out, la liste de non-e-mail de l'organisation

    Tous ceux qui ont demandé à ne pas être envoyé par courriel, en un seul endroit. Une tête de mât dit combien sont hors tout e-mail et pourquoi (non abonné, rebondissant, marqué comme spam, nous a demandé d'arrêter), combien stoppaient seulement certains types ou s'arrêtaient, et comment la liste s'est déplacée sur trente jours. La liste est consultable et filirable; une adresse s'ouvre à côté d'elle avec: ce qu'ils reçoivent une ligne pour tous les e-mails, un par type de courrier, et une pause, sauvegardé comme un Projet de projet. Laisser le courrier joindre quelqu'un a besoin d'une note disant qui a demandé et quand, parce que cette note est le relevé de leur consentement. connu sous le nom de chef de file, de contact, d'envoi de campagne, d'applications d'emploi, d'alertes d'emploi et d'IA Opposage adjoint qui partage l'adresse l'historique de chaque changement comme une chronologie: ce qui a été déplacé (avant/après), qui l'a fait et par quoi, le billet et la demande d'où elle provient (adresse du réseau, chaîne de transfert, navigateur, langue) Plus un flux d'activités à l'échelle de l'ordre, en ajoutant une adresse à la main, et une exportation CSV. Décomposé par MANAGE-EMAIL-OPT-OUTS (un enfant de MANAGE-EMAIL-SETTINGS), reflété dans RoleRightType.ts et rightsHierarchy.ts; l'onglet, l'entrée du menu et la carte de réglages n'apparaissent qu'avec elle.

  20. · kamo-internal

    Boutons carrés, biseauts et pouce de coin 2px sur chaque barre de défilement

    Les quatre boutons de la barre (saut pour commencer, recul, pas en avant, saut à bout) sont maintenant des carrés de 20px avec des coins durs, et le pouce ne conserve qu'un rayon de 2px. Les deux portent un biseau encastré d'un pixel - la lumière le long du haut et à gauche, sombre le long le bas et la droite - en blanc translucide et noir, donc le même biseau se trouve sur l'ardoise de la page, une teinte de marque, la palette sombre du terminal. La fraction unique de la peau devient deux rayons de pixel, le pouceRadius et ButtonRadius, parce que "un couple de pixels" est un absolu. La clé carrée est géométrie plutôt que cutanée: il tient sur une barre courte (10x10 sur une bande 72px) et sur la peau d'arcade, dont le regard est par ailleurs inchangé.

  21. · EmailService

    Chaque vérification de suppression et rebond passe par le registre opt-out

    SuppressionService demande maintenant EmailOptOutLedger, donc un chèque voit la liste de non-email, pauses et des sujets, et un rebondissent dans la même histoire qu'un désabonnement. Les appelants nomment le type de courrier qu'ils sont sur le point d'envoyer: campagnes (matérialiser, restaurer, la porte tardive) poser des questions sur MARCHÉ-CAMPAIGNS, les titres d'articles sur SHARED-ARTICLES. Les rebonds portent la réponse du serveur et la campagne dans la ligne historique. OptOutSchemaProbe indique au grand livre si KamoInitializerService a créé les deux nouveaux jusqu'à ce qu'elle ait, en envoyant l'honneur seul de la liste au lieu d'échouer sur une table manquante.

  22. · kamo-shared-library

    Un grand livre de l'exclusion, des sujets, des pauses et une histoire de chaque changement

    La liste de non-courrier peut être écrite mais non lue, modifiée ou expliquée. Ceci ajoute le seul endroit où il est lu et écrit, pour chaque service: e-mail-optout-topicss une adresse qui a arrêté un type de courrier, ou a mis en pause la totalité e-mail-optout-events insé-uniquement historique: qui (destinataire, membre, système), d'où (client IP, l'ensemble de la chaîne X-Forwarded-For, agent utilisateur, langage, hôte, référent, hachage de session), pourquoi (raison, source, note, retour d'information), par quoi (campagne, plomb), et l'état avant et après Les e-mails-suppressions gardent son sens, donc chaque expéditeur qui en fait déjà l'honneur. EmailOptOutLedger répond "peut-être envoyé" des trois et écrit une ligne d'histoire par Une partie de l'état a en fait déplacé un changement. Un membre qui autorise à nouveau le courrier doit dire pourquoi; note est le procès-verbal de consentement. Jusqu'à ce que les nouvelles tables existent, le grand livre retombe à la liste seul et refuse les changements, il ne peut pas enregistrer, plutôt que des échecs envoyés. Classe en plaine, pas un «Service»: chaque service scanne com.kamo, et un sans l'e-mail Les référentiels ne commenceraient pas à le construire. Chaque service le déclare avec Bean. De même, MANAGE-EMAIL-OPT-OUTS (320), l'ordre de l'ordre des paramètres - MANAGE-ÉTAPES-MÉCAIS.

  23. · kamo-internal

    Animateurs de courrier électronique sortants, envoi de fenêtres, échauffement par foyer et boîte de réception par étagée

    - Paramètres et plate-forme - Configuration gagne un onglet Outbound E-Mail Hosts, derrière la plate-forme MANAGE-OUTBOUND-ÉAILLÉE-HOSTS: les hôtes partagés avec chaque organisation et ceux détenus pour l'organisation de la plate-forme, avec chaque réglage de connexion, disponibilité, contrôles de connexion, test envoie et l'échauffement de chaque hôte. - Paramètres - Adresseur de messagerie électronique en vrac - L'expéditeur de courrier électronique est reconstruit sur le fournisseur de l'orchestre/l'aperçu de l'environnement: la rotation de les hôtes de l'organisation et la plate-forme (passable par organisation), une ronde Vue, l'expéditeur, un éditeur de fenêtres d'envoi (weekdays, plusieurs plages de temps, plages de nuit, son propre le fuseau horaire ou l'organisation), et un rapport d'échauffement en langage clair par hôte. La canette d'échauffement ne plus être éteints. - /marketing/email/outbox liste tous les e-mails mis en place - composés uniquement lorsqu'un hôte peut le prendre - et annule les e-mails uniques, une sélection, ou tout ce qui reste, avec une cession. L'espace de travail, le la banderole et l'éditeur de campagne y sont reliés et lisez la nouvelle capacité par hôte. - Éditeur d'héberge partagé avec prévol en direct (adresses résolues, double et adresse privée les clients de l'API sortants et des hôtes sortants, et le statut de destinataire ANNULED.

  24. · EmailService

    Plusieurs hôtes sortants par org, envoyés autour-robine, chacun chauffé par lui-même, à l'intérieur d'une fenêtre d'envoi

    Le courrier d'une organisation de campagne laisse maintenant par l'intermédiaire d'un nombre quelconque d'hôtes sortants, un message à un temps en rotation, au lieu d'un fournisseur de vrac. - Hébergeurs : une organisation (outboundHosts in its bulk pleb) et la plate-forme (platformOutboundHosts in the platform's blob), SHARED avec chaque organisation ou PLATFORMONIQUEMENT. Chaque réglage SMTP est explicite: sécurité, mécanisme SASL, vérification TLS et protocoles, nom HELO, émetteur d'enveloppe, temporisations, limites horaires/quotad, DSN, 8BITMIME, SOCKS. HostSessionFactory construit la session à partir d'eux; EmailSmtpService.sendVia l'envoie par là. - Le même serveur n'est jamais ajouté deux fois (même nom ou adresse partagée, quel que soit le port ou et l'hôte d'une organisation doit être un serveur public: noms privés et in-cluster et les adresses sont refusées à l'exception et à nouveau avant chaque connexion. - L'échauffement est par hôte et toujours. WarmupService travaille sur une WarmupHandle; un hébergeur de plate-forme en a un l'échauffement partagé par chaque organisation qui l'utilise. Les nouvelles courses commencent au début local de la journée. - WarmupReleaser est le seul expéditeur : rond-roulin pour les hôtes de chaque organisation, sauter un hôte en attendant sa fente, à son culot, freiné, à sa propre limite ou à son recul après n'avoir pas réussi connecter. Une connexion, une TLS ou une défaillance de signe ne compte plus une tentative contre le destinataire. - Envoyer une fenêtre par organisation (jours, une ou plusieurs gammes, zone propre ou l'orge). Femme de souverain étend la coiffe de chaque jour à travers le temps libre de la fenêtre. - Boîte de tablettes : /api/email/campaigns/outbox liste les destinataires en file d'attente et les annule ou les restaure. Un bénéficiaire annulé est SUPPRÉTÉ avec une note (pas de statut DDL) et se lit en arrière comme ANNULÉ. - Critères d'entraînement : - hôtes de plate-forme à - À l'arrière de la mémoire. L'unique hôte écrit la réponse 410. - OutboundHostBackfill graines le relais k3m1 en tant qu'hôte PLATFORMONY et migre des blobs mono-hôte. Aucun changement de schéma.

  25. · KlusterServices

    Postfix-bulk accepte tout expéditeur d'EmailService [skip ci

    Le relais est maintenant un hôte sortant de la plate-forme que le courrier de campagne de chaque organisation peut aller par-delà, comme n'importe quel que ce que cette organisation envoie comme. Seul l'expéditeur nul est toujours refusé. avec un 4xx. La rejoignabilité est inchangée: les mynetworks et la politique de NetworkCont la limitent à Pods EmailService. Appliqué directement (kubectl s'applique -f

  26. · kamo-shared-library

    MANAGE-OUTBOUND-EMAIL-HOSTS, les hôtes de courrier électronique sortants de la console de la plate-forme

    Une plate-forme droit pour le courrier de campagne des hôtes de courrier électronique sortant par le biais: les hôtes partagés avec chaque organisation et celles gardées pour l'organisation de la plate-forme, leurs références, disponibilité et échauffements. Fortement par le biais de la PlatformOutboundHostsContrôleur par EmailService PlatformRightsResolver. Appliqué, de sorte qu'aucun droit existant n'est renuméroté.

  27. · kamo-internal

    Supprimer, filtrer et éteindre les lignes sortantes NoReply

    La page d'audit gagne une colonne de sous-système et un filtre, la sélection de la case à cocher avec "sélectionner tous" et "sélectionner tous les appariements", et supprime pour une ligne, les lignes sélectionnées, tout ce qui correspond aux filtres, ou tout, chaque derrière une confirmation que le tableau nomme le tableau des lignes est retiré. "Enregistrement et rétention" active ou désactive l'enregistrement de chaque sous-système et définit la longueur des lignes. La demande de suppression devient, et comment le modèle de sélection de la grille est lire, vivre dans - avec leurs propres tests.

  28. · EmailService

    Le grand livre NoReply peut être filtré par sous-système, élagué et raconté ce qu'il faut enregistrer.

    Chaque ligne nomme maintenant le sous-système qui l'a envoyé et, pour un modèle d'envoi, la clé de modèle. EmailTemplateService et l'expéditeur de la campagne ouvrent un NoReplyOutboundExcetiner la portée de leur émission SMTP; quoi d'autre NON CONTTRIBUÉ. NoReplySubsystem définit les clés du modèle canonique pour les sous-systèmes, et un test échouent si un modèle canonique ne correspond à aucun. Supprimer vers le tableau lui-même par l'intermédiaire de NoReplyOutboundLedger: une ligne, jusqu'à 1000 lignes sélectionnées, chaque ligne correspondant aux filtres de la liste, ou grand livre entier (TRUNCATE), qui doit être demandé avec confirmAll. Bulk supprime le nombre de 500. NoReplyOutboundSettings stocke un commutateur d'enregistrement par sous-système et la rétention (30 jours par défaut, 0 garde les lignes jusqu'à supprimée), en cache pour 15 secondes par dosette. NoReplyOutboundRetentionAgressage purge à l'heure sur une nautique. Tous les nouveaux critères d'évaluation sont uniquement divin, comme la liste.

  29. · InitializerService

    L'indice unique (campagne, adresse) pour un environnement frais

    EmailService utilisé pour créer - sur chaque startup; DDL sur ce cluster appartient ici à la place. Idémpotent, auto-engagé (YugabyteDB construit des index en ligne), et les doublons sont comptés et enregistrés, Jamais supprimé - une ligne contactée est le record permanent d'une campagne d'un Adresse. EmailService ne vérifie plus que l'index par ce nom.

  30. · kamo-internal

    L'éditeur de campagne écrit au bord de l'avant, fusionne des jetons dans sa propre colonne

    Le sujet se trouve sous le titre de la campagne et le public à côté de la puce de statut, donc la composition étape est le corps de courrier électronique seul, remplissant le milieu de la page, avec les jetons de fusion dans une colonne sur Le droit. Rien ne sauvegarde seul, donc la page marque maintenant édi le serveur n'a pas vu et demande avant de partir les éliminerait; TemplateInlineEditor signale que le corps du membre lui-même édite de la normalisation du temps de charge de Quill de sorte que cette marque n'est pas relevée par l'ouverture d'une campagne.

Votre univers vous attend.

Commencez gratuitement en quelques minutes. Ajoutez des produits quand vous êtes prêt. Pas de migration, pas de nouvelles connexions.

Gratuit pour toujours — aucune carte de crédit requise