TemplateApi + categoryApi + variableContracts Client Module hinzufügen
Wraps SP1's /api/Email/templates/* und ************ Endpunkte mit typed TypeScript Helfern. variableContracts spiegelt SP1's TemplateKeys Javadoc so der Editor ...
Wire EmailTemplateSeedClient in ************
Thin RestTemplate Client, der POSTs zu EmailService's ************ nach einem org + Besitzer TeamMember sind beharrte. Retries zweimal mit Backoff; Ausfall wirf...
EmailTemplateKategorieController REST endpoints hinzufügen
************ CRUD. Löschantwort enthält reassignedCount - die Anzahl der Vorlagen, die nicht als ein Ergebnis der Entfernung der Kategorie. Sitzungskontext gele...
EmailTemplateController REST Endpoints + DTOs hinzufügen
Exposes /api/email/templates/* CRUD + Vorschau + Duplikat + Reset-to-default + service-to-service /send + /seed-org/{orgId'. Top-Level orgs (keine Eltern) siehe...
InternAuthFilter für Service-to-Service-Endpunkte hinzufügen
Validiert X-Internal-Auth Header auf /api/email/templates/send und /api/email/templates/seed-org/* Pfade. Andere Pfade umgehen diesen Filter (Benutzersitzung au...
EmailTemplateKategorieService hinzufügen . CRUD für Org-scoped Kategorien
Case-unempfindliche Namensununempfindlichkeit pro org auf Service-Schicht durchgesetzt (passt mit dem teilweisen eindeutigen Index in der DB). Lösen nulls Kateg...
E-MailTemplateService hinzufügen: CRUD + senden + Saatgut + Reset-to-default
Core orchestrator für transaktionale E-Mail. sendToUser löst die Vorlage, macht Subjekt/body, wählt die primäre Domäne der org von Organization.domains, und rei...
NoReplySenderService für 'NoReply@{domain' von Adresse hinzufügen
Einzelne Wahrheitsquelle für Transaktions-E-Mail von Adressen. Akzept ein Domain-String, Kleinbuchstaben-Normalisierung, gibt "NoReply@<domain" zurück. Anrufer ...
TemplateRenderer für {{var-Ersatz hinzufügen
Staatenloser Regex-basierter Renderer. Fehlende Vars ersetzen leere Schnur und emittieren ein WARN-Log mit templateKey + orgId zur Zuordnung. Kein HTML-Emission...
Angelebt Z bis datagiert, so dass JS es als UTC parsiert
LocalDateTime.toString() produziert keinen Zeitzonen-Designator, was JavaScript's neues Date() zur Behandlung des UTC-Wertes als Ortszeit und Anzeigezeiten 7-8 ...
EmailTemplateSeedRunner für SYSTEM + per-org-Saatgut hinzufügen
Läuft unter @Order(20) auf KamoInitializerService Start. Lasten kanonisch templates aus Kamo-shared-Bibliotheksressourcen; upserts SYSTEM-Reihen (keine Clobber)...
PT Mitternacht Cutoff nach UTC für heutige Abfrage konvertieren
Commits sind in UTC gespeichert, aber der Cutoff war eine naive LocalDateTime in PT, was dazu führt, dass PT-Demits gesternabend (00:00-06:59 UTC) gezählt als h...
Teilte Unikate + CHECK Einschränkungen für email_templates hinzufügen
Hibernate ddl-auto kann keine partiellen Indizes oder Rechen-CHECK erzeugen Zwänge. Diese Commit fügt sie über den bestehenden idempotent DDL-Läufer hinzu Muste...
Bump kamo-shared-library Version zu 1.2.0 für SP1-Zuergesätze
Fügt EmailTemplate, EmailTemplateKategorie, TemplateStatus, TemplateKeys hinzufügt, CanonicalTemplate, CanonicalTemplateLoader und kanonische HTML-Ressourcen.
CanonicalTemplateLoader + CanonicalTemplate record hinzufügen
Lesen Sie die drei REQUIRED Vorlagen (WELCOME, PASSWORD_RESET, EMAIL_VERIFICATION) von Classpath-Ressourcen unter **************** Verzehrt von KamoInitializerS...
kanonisches HTML + JSON für WELCOME, PASSWORD_RESET, EMAIL_VERIFICATION hinzufügen
Source-of-Truth-Inhalte für SYSTEM-Reihen. Geladen bei KamoInitializerService Start von CanonicalTemplateLoader und UPSERTed in email_templates. Teil von SP1.
Umbenennen Sie mailboxId-id und providerStatus-Status in Mailbox-Liste Antwort
Ausstimmen Sie Feldnamen mit Frontend-Erwartungen für Mitglieder-Mailbox-Inserate.
EmailTemplate Enterstelle + Repository hinzufügen
Speichert eine SYSTEM-Reihe pro template_key (org_id NULL, is_system TRUE) plus ein Klon pro org pro template_key. Soft-Referenz org_id/category_id. DB- angetri...
EmailTemplateKategorie Entität + Repository hinzufügen
Org-kopierte Kategorien für E-Mail-Vorlagen. Soft BIGINT org_id (keine FK) passt zu bestehenden Mustern. Case-unsensitive Namen Einzigartigkeit pro-Ort ist durc...
TemplateStatus enum + Templates Konstanten für Transaktionsvorlagen hinzufügen
Erklärt die REQUIRED/CUSTOM/ARCHIVED Lebenszykluszustände und die drei erforderliche Vorlagen-Tasten (WELCOME, PASSWORD_RESET, EMAIL_VERIFICATION). Variable Ver...
Seed KamoCRM mit ALL_WORK_ELIGIBLE auf frischen Installationen
Der createOrg() Helfer wendet dieses einzelne Argument auf beide an ageReqTypeMitglied und ageReqTypeTeamMitglied; im Einklang mit Plattform-Konvention. Paare m...
Tighten KamoCRMAgeReqUpdateRunner pro Bewertung
- Wiederherstellen Javadoc Absatz erklärt @Order(10) Begründung. - Test bezieht sich jetzt auf die UPDATE_SQL-Konstante direkt statt Duplizierung des SQL-Stri...
Einfacher Läufer hinzufügen, um KamoCRM agereq zu ALL_WORK_ELIGIBLE zu migrieren
Bedingte idempotent UPDATE läuft auf Service-Start-up; WO Klausel überprüft der erwartete alte Wert, also sind Wiederholungen No-Ops. Fehler werden protokollier...
Alle CSS-Filter Logo-Instanzen mit weißem SVG ersetzen
Navigation, SubNavigation, Footer, SubFooter und Preloader alle gebraucht das gleiche gebrochene Filter Helligkeit-0 Invert-Muster. Ersetzt durch logo-full-whit...
Verwenden Sie weißes SVG-Logo in der Fußstelle von CSS-Filter
Gleiche fix wie das nV- CSS-Filter auf img Innen-Kintergrund-Filter ist unzuverlässig auf iOS Safari.
Guard Color-Schema mit !wichtig gegen Thema CSS override
DynamicMetaLoader kann entferntes CSS injizieren, das die Kaskade gewinnt. Hinzufügen !wichtig sorgt für Farbschema: Dunkel kann nie von Themen-Stylesheets über...
Ausschließen Fuß-und nunv-Links von TouchOptimized min-Höhe Durchsetzung
TouchOptimized wurde minHeight:44px auf alle <a" Elemente kürzer als 44px, inklusive Fußgänger-Neigs (ca. 20px hoch). Dies lief während der Hydratation auf hart...
Verwenden Sie vor-rendered weiße SVG-Logo anstelle von CSS-Filter
CSS-Filter auf img Innen-Kintergrund-Filter ist unzuverlässig auf iOS Safari. Erstellen Sie logo-full-white.svg mit allen Füllungen auf #ffffffff gesetzt und la...
Lock Tailwind Dark Mode-Variante auf Klasse-basierte, nie OS Medien Abfrage
Tailwind v4 defaults dark: utilities to respond to prefers-color-scheme (OS-Voreinstellung). Der @variante Override sorgt für Dunkelheit: Klassen werden nur akt...
Verwenden Sie Inline-Filter-Stil auf Logo-Link für zuverlässige weiße Rendering
Tailwind-Filterklassen auf img-Elementen sind inkonsistent über mobile Browser. Inline-Stil auf dem Ankerelement garantiert Helligkeit(0) invert(1) gilt überall...
Kraft dunkles Farbscheme so Browser gilt nie hellen Modus Rendering
Wechsel von 'light only' zu 'dark' in globals.css, generierenViewport und html element style - das stoppt den Browser vom Rendering von SVGs und nativer Benutze...
Verhindere Logo von Rendering hinter nav Reihe auf dem Handy
Der div Wrapper mit CSS-Filter erstellt einen neuen Stapelkontext, der widersprüchlich mit dem Header-Hintergrund-Filter auf mobilen Browsern, wodurch das Logo ...
Scrollbar und mobiles Clipping auf JumpToBar und PreviewBanner lösen
- Überlauf hinzufügen: versteckt in JumpToBar Innenbehälter, um vertikale Scrollbar zu verhindern - Lassen Sie PreviewBanner Inhalte auf Handy zu wickeln, so da...
Space-y-4 mit Inline-Flex-Lücke auf Footer-Link-Listen ersetzen
Rückwind Space-y-4 verwendet :where() (Spezifikation 0), das mit CSS rennt Laden auf harte Refresh verursacht inkonsistente vertikale Abstand. Inline Stile sind...
Aktualisierung von Locale Übersetzungen und hash [überspringen ci]
Set Traefik externalTrafficPolicy=Local, um Client IP zu erhalten
Mit der Standard-"Cluster"-Politik, kube-proxy SNATs externen Datenverkehr auf den Knoten IP vor der Zuordnung an Traefik. Das brachte Traefik zu sehen der Knot...
Vermisste AnfrageIntegration i18n Schlüssel über alle Orte
Der "Anfrage einschicken"-Button unter dem "Benutzerdefinierte Integration nöten?" CTA auf /integrations fiel zurück auf den rohen Schlüssel **************** we...
Integrationslogos + genaue /integrations Metadaten
Integrationsseiten und Hub zeigen jetzt Herstellerlogos (Verwendung der bestehenden ************ Vermögenswerte, dass die Homepage TechStackBanner verwendet ber...
Erweitern /integrations zu allen Homepage-gelisteten Anbietern
Angepasst die /integrations Seite mit den tatsächlichen Integrationen, die durch die Homepage (TechStackBanner). 28 neue Integrationsseiten passend hinzu was da...
Home Mortgage Brokers Industrie-Seite hinzufügen
Neue Branchenlösung Seite bei /solutions/Hypotheken-Broker für Hypotheken Makler und Kreditgeber. Folgt der ehrlichen Plattform-Einfassung: Kern CRM + Komms + d...
Ehrliches Marketing - Seiten auf die tatsächlichen Plattform-Fähigkeiten ausrichten
Vollständige Überprüfung der Marketingseiten gegen tatsächliche KamoCRM-Produktfunktionen. Entfernt gefälschte Behauptungen über Funktionen, die heute nicht geb...
Aktualisierung von Locale Übersetzungen und hash [überspringen ci]
92 SEO-Seiten hinzufügen - Branchen, Integrationen, Glossar
Umsetzung von Tier 1 des SEO Content Erweiterungsplans: drei neue Inhalte Subsysteme mit insgesamt 92 neuen Crawlable-URLs plus 3 Hub-Seiten. 1. /solutions - 3...
Geo-Datenbank-url zum Analytics-Sekret für CockroachDB Geolite Lookup hinzufügen
Kamo Analytics verwendet diese URL, um Besucher IP-Land/Region/Stadt nachzuschauen von den ************ Tischen. Verwendet Kamo-Benutzer mit Passwort auth und s...
K8s-Manifeste für kamo-nowww hinzufügen (catch-all IngressRoute, Priorität 1)
Kamo-nowww umleitende Middleware hinzufügen (apex/unknown-www, ACME pass-through, 308)
Wie, was Sie sehen Versand?
Alles kommt in Ihrem Arbeitsbereich für sich. Starten Sie mit dem kostenlosen Plan und lesen Sie diese Seite in einem Monat wieder.
