Kurtarma varlıkları ekleyin + repos; 1.3.0 (SP3)
ŞifreResetToken, SmsOtp, RecoverySession, AccountVerificationCode SP3 kurtarma akışı için ilgili depozitleri olan JPA varlıklar.
GüvenlikQuestionCatalog enum + sq1/2/3 + tohumPhraseHash Kullanıcıya (SP3)
Add SP3 recovery table DDL + User column additions to SchemaCleanupRunner
Rota Tanıtımı Tarayıcının arka uç-rendered modal (SP2)
E-postaTemplateBrowser şimdi doğrudan Preview modale sahiptir, bu yüzden Manager artık satır seviyesindeki önbellek taleplerini engellemeli ve modu düzenlemeye ...
Wire EmailTemplateEdit to real API
ŞablonApi.get'dan Hydrates, şablonApi.update aracılığıyla tasarruf eder. Kategori Kategori dropdown is API-driven with inline category-createholdance. Değişkenl...
Wire EmailTemplateBrowser'ı gerçek API + Add System Defaults sekmesine ekle
Değiştirler - şablonApi.list() çağrıları ile alay edilen verilerin 140 hatları. Koşullu beşinci sekme "Sistem Temsilleri" sadece üst düzey düzey yönetici için g...
E-TemplatePgang modal ekle
Açıklar line-action Preview. Backend-rendered via templateApi.pgang(); Sonuç, stil izolasyonu için kum kutulu bir iframe'de gösteriliyor. Maçlar Kullanımları gö...
Delete un used EmailGeneralManager.tsx (~560 ölü kod hattı)
Bitirme hiçbir zaman hiçbir yere ithal edilmedi. Onun toggles (bounce handle, Kayıt, teslimat izleme, e-postadan varsayılan) geri dönüş yoktu ve Tamamen kozmeti...
EkleApi + kategoriApi + değişkenContracts müşteri modülleri
Rolls SP1's /api / e-posta/templates/* ve ************************************ Türlü Tipiff yardımcıları ile uç noktaları. DeğişkenContracts Aynalar SP1'in Temp...
Wire EmailTemplateSeedClient into ****************
Thin RestTemplate client that POSTs to EmailService's **************** after an org + owner TeamMember are persisted. Retries twice with backoff; failure throws...
Add EmailTemplateCategoryController REST endpoints
**************** CRUD. Delete response includes reassignedCount — the number of templates that became uncategorized as a result of removing the category. Sessio...
Add EmailTemplateController REST endpoints + DTOs
Exposes /api/email/templates/* CRUD + preview + duplicate + reset-to-default + service-to-service /send + /seed-org/{orgId}. Top-level orgs (no parent) addition...
Servis uç noktaları için İçAuthFilter ekleyin
X-Internal-Auth Title on /api/email/temblocks /send and /api / e-posta/templates/seed-org/* yolları. Diğer yollar bu filtreyi atlar (Kullanıcı seansı onları ida...
E-postaTemplateKategoryService ekleyin - CRUD for org-scoped kategorileri için
Vakaya duyarlı isim, hizmet katmanında uygulanmış bir şekilde eşsizlik (Wondra'daki kısmi eşsiz indeksi birleştirir). Deletion nulls kategori id kategori sırası...
EmailTemplateService ekleyin - CRUD + gönderi + tohum + reset-to-default
İşlemsel e-posta için Core orkestrator. SendToUser şablonu çözer, Konu / sadece, org'un birincil domaini Organizasyondan alır. Alanlar, E-postaSmtpService with ...
NoReplySenderService for 'NoReply@{domain} from-address
Adreslerden işlem-posta için tek gerçek kaynağı. Kabul Ediyor domain string, altcase-normalizes it, returns "NoReply@<domain>". Callers org's domain (via Organi...
Add TemplateRenderer for {{var}} substitution
Devletsiz regex tabanlı former. Eksiklikler boş dizeyi ve LinkKey + veyagId ile bir WARN logunu takmak. HTML kaçış yok v1'de - değerler sunucu kontrollüdür. SP...
Append Z to dateCommitted so JS parses it as UTC
LocalDateTime.toString() produces no timezone designator, causing JavaScript's new Date() to treat the UTC value as local time and display timestamps 7-8 hours ...
Add EmailTemplateSeedRunner for SYSTEM + per-org seeding
Runs at @Order(20) on KamoInitializerService startup. Loads canonical templates from kamo-shared-library resources; upserts SYSTEM rows (no clobber); backfills ...
Convert PT midnight cutoff to UTC for today-count query
Commits are stored in UTC but the cutoff was a naive LocalDateTime in PT, causing yesterday-evening PT commits (00:00–06:59 UTC) to be counted as today.
Add partial unique indexes + CHECK constraints for email_templates
Hibernate ddl-auto can't generate partial unique indexes or computed-CHECK constraints. This commit adds them via the existing idempotent DDL runner pattern aft...
Bump kamo-shared-library versiyonu SP1 eks için 1.2.0
E-postaTemplate, EmailTemplateKategory, TemplateStatus, TemplateKeys, CanonicalTemplate, CanonicalTemplateLoader ve kanonik HTML kaynakları.
CanonicalTemplateLoader + CanonicalTemplate kaydı
Üç REQUIRED şablonları okuyun (WELCOME, PASSWORD RESET, EMAIL VERIFICATION) sınıftaki kaynaklardan **************** Yemin ederim KamoInitializerService for SYST...
WELCOME için kanonik HTML + JSON, PASSWORD RESET, EMAIL VERIFICATION
SYSTEM rows için kaynak-gerçek içerik. KamoInitializerService'da yüklendi CanonicalTemplateLoader ve UPSER e-templates'a başladı. SP1'in bir parçası.
Rename mailboxId→id ve sağlayıcıStatus+status posta kutusu listesinde yanıt
Üye posta kutusu listeleri için ön beklentileri olan Align alan isimleri.
EmailTemplate varlık + repository
Stores one SYSTEM row per template key (org id NULL, is system TRUE) artı Şablon key başına bir klon. Soft-reference org id/category id. DB- tahrik süreleri; vü...
EmailTemplateKategory entity + repository
E-posta şablonları için Org-skod kategorileri. Soft BIGINT veyag id (No FK) Mevcut modeller. Case-in sensitive name uniqueness per-org is KamoInitializerService...
EkleStatus enum + TemplateKeys işlemsel şablonlar için sabitler
REQUIRED/CUSTOM/ARCHIVED yaşam döngüsü ve üç üç Gerekli şablon anahtarları (WELCOME, PASSWORD RESET, EMAIL VERIFICATION). Her bir REQUIRED şablonu için değişken...
Seed KamoCRM with ALL_WORK_ELIGIBLE on fresh installs
The createOrg() helper applies this single argument to both ageReqTypeMember and ageReqTypeTeamMember; consistent with platform convention. Pairs with KamoCRMAg...
Tighten KamoCRMAgeReqUpdateRunner per review
- Restore Javadoc paragraph explaining @Order(10) rationale. - Test now references the UPDATE_SQL constant directly instead of duplicating the SQL string, so ...
Add one-time runner to migrate KamoCRM agereq to ALL_WORK_ELIGIBLE
Conditional idempotent UPDATE runs on service startup; WHERE clause checks the expected old value so re-runs are no-ops. Errors are logged and swallowed — start...
Tüm CSS filtreli logo örneklerini beyaz SVG ile değiştirin
Navigation, SubNavigasyon, Footer, SubFooter ve Preloader tüm kullanılanlar Aynı kırık filtre parlaklık-0 invert pattern. Değiştirilen Masada logo-full-beyaz...
CSS filtre yerine beyaz SVG logounu kullanın
Nav olarak aynı düzeltme - arkadan gelen CSS filtre iOS Safari'de güvenilmez.
Guard color-scheme with!important against tema CSS override
DinamikMetaLoader, cascade'yi kazanan uzaktan CSS enjekte edebilir. Add Add Add Add !important renk-scheme sağlar: karanlık asla tema tarzı tablolar tarafından ...
Exclude footer and nav Links from TouchOptimized min-height Execution
TouchOptimized, tüm <a> elementlerden daha kısa sürede minHeight:44px ayarlıyordu 44px, ayaker nav bağlantıları dahil (~20px uzun). Bu, hidrasyon sırasında koşt...
CSS filtre yerine önceden seçilmiş beyaz SVG logoyu kullanın
CSS filtre arkabelli-filter iOS Safari'de güvenilmez. Genrate logo-full-beyaz.svg with all fills set to #ffffffffffffffffffffffff and load it it it it it Doğrud...
Lock Tailwind karanlık modu sınıflandırma tabanlı, asla OS medya sorgu
Tailwind v4 varsayılanlar karanlık: tercihlere cevap vermek için hizmetler (OS tercih). @variant override karanlık sağlar: sınıflar sadece bir .dark sınıfı oldu...
Güvenilir beyaz işleme için logo bağlantısında filtre stili kullanın
Img elementleri üzerindeki Tailwind filtre sınıfları mobil tarayıcılarda tutar. Demir elementi üzerindeki satır stili, her yerde parlaklık veren (1) geçerlidir.
Force koyu renkli-scheme so browser asla ışık modu oluşturmaz
Sadece 'karanlık'tan küresel olarak değiştirilmesi,Viewport ve the html element tarzı - bu tarayıcıyı SVG'leri ve yerel UI'leri uygulamaktan durdurur Işık modun...
Logoyu mobil arkadaki nav sırasını açmadan önleyin
CSS filtre ile dolu div, çatışmaya uğrayan yeni bir yığınlama bağlamı yarattı Liderin mobil tarayıcılarda arka kapağı ile, logonun boyamasına neden oluyor Baş a...
JumpToBar ve PreviewBanner
- OverflowY ekleyin: dikey kaydırmabar önlemek içinBar iç konteynere gizli - PreviewBanner içeriğine mobilde takılmasına izin verin, bu yüzden metin portre tele...
Uzay-y-4 ayak bağlantı listeleri üzerinde doğrusal olmayan boşluk ile değiştirin
Tailwind uzay-y-4 kullanır: nerede() (özellik 0) hangi CSS ile yarışlar Sert yenileme üzerine yükleme, tutarsız dikey yayılmaya neden olur. Inline stilleri SSR'...
Set Traefik externalTrafficPolicy=Local to preserve client IP
With the default "Cluster" policy, kube-proxy SNATs external traffic to the node IP before forwarding to Traefik. That caused Traefik to see the node IP as the ...
Tüm yerellerdeki eksik istekIntegration i18n anahtarını ekleyin
"Bir istek" düğmesine "Özel bir entegrasyonun altında mı?" CTA /integrasyonlar ham anahtar **************************** geri döndü Çünkü anahtar hiçbir yerde ta...
Bütünleme logoları + doğru /integrations metadata
Bütünleştirme sayfaları ve merkezi şimdi satıcı logoları gösteriyor (Mevcut olanı kullanarak). ************, ana sayfadaki varlıklar TechStackBanner zaten kulla...
Tüm ana-liste sağlayıcılarına genişletin /integrations to all ana-listed sağlayıcıları
Aligns the /integrations page with the real integrations sent by Ana sayfa (Teknoloji) Adds 28 yeni entegrasyon sayfaları eşleşen Ürün aslında ne sağlar: Ses &...
Home Mortgage Brokers endüstri sayfasını ekleyin
Yeni endüstri çözümü sayfası, ipotek için / dağıtım/mortgage-brokers brokerler ve kredi kaynaklılar. Dürüst platformu takip et: Temel CRM + komünler + AI ödünç ...
Kargoyu gördüğünüz gibi?
Tüm bunlar kendi başına iş alanınıza geliyor. Ücretsiz plana başlayın ve bu sayfayı bir ay içinde tekrar okuyun.
