İçeriye geçin
KAMOUniverse

Değişiklik Günlüğü

Yeni ne var?

Gemideki her iyileştirme.

  1. · SecurityService

    Add AccountSettingsController + Service for phone + security questions (SP3)

    Allows logged-in users to set/verify phone and configure 3 security questions. Routes to /api/account/* (session-authenticated via KSESSION_DATA).

  2. · SecurityService

    Add BulkTextSmsClient + EmailTemplateServiceClient + PasswordRecoveryController (SP3)

    Full password recovery flow: email-link, SMS OTP, security questions, seed phrase. Routes to /api/recover/* (unauthenticated). Uses SP1 email pipeline + VOIPService SMS.

  3. · VOIPService

    Add InternalAuthFilter + POST /api/bulktext/send for service-to-service SMS (SP3)

  4. · kamo-shared-library

    Kurtarma varlıkları ekleyin + repos; 1.3.0 (SP3)

    ŞifreResetToken, SmsOtp, RecoverySession, AccountVerificationCode SP3 kurtarma akışı için ilgili depozitleri olan JPA varlıklar.

  5. · kamo-shared-library

    GüvenlikQuestionCatalog enum + sq1/2/3 + tohumPhraseHash Kullanıcıya (SP3)

  6. · InitializerService

    Add SP3 recovery table DDL + User column additions to SchemaCleanupRunner

  7. · kamo-internal

    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 yönlendirme.

  8. · kamo-internal

    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şkenler Değişkenler picker değişkenContracts.ts (IQUIRED şablon anahtarları; CUSTOM için ortak set. REQUIRED / Siyon sıra düzenleme Uygun uyarı bayrağını gösterir. Preview düğmesi açılır backend-rendered EmailTemplatePauer modal. SP2'nin bir parçası.

  9. · kamo-internal

    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örünür ve verir Cevap.systemTemplates. Kategori filtre kategoriApi.list()'den doldurulur. Tüm satır eylemleri ************ gerçek vurmak gerçek Geri uç noktaları. Hatalar ApiError tost yardımcı ile yollandı. SP2'nin bir parçası.

  10. · kamo-internal

    EmailTemplateDuplicateDialog (SP2)

  11. · kamo-internal

    EmailTemplateKategoryManager modal (SP2)

  12. · kamo-internal

    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önderen tam kod yolu, bu yüzden önbellek hangi alıcılar alınır. SP2'nin bir parçası.

  13. · kamo-internal

    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 TemplateKeys Javadoc böylece editörün değişken seçici şovları ilan edildi REQUIRED şablonları için sözleşmeler. SP2'nin bir parçası.

  14. · SecurityService

    Wire EmailTemplateSeedClient into ****************

    Thin RestTemplate client that POSTs to EmailService's **************** after an org + owner TeamMember are persisted. Retries twice with backoff; failure throws OrgProvisioningException and rolls back the surrounding @Transactional so the org + owner-TeamMember save is undone (per SP1 spec). Mirrors the existing TranslateServiceClient X-Internal-Auth pattern. k8s/configmap.yaml adds: email.service.url (EmailService internal URL) internal.auth.secret (cluster-wide X-Internal-Auth header value) pom.xml bumps kamo-shared-library 1.1.0 → 1.2.0. Part of SP1.

  15. · EmailService

    Add EmailTemplateCategoryController REST endpoints

    **************** CRUD. Delete response includes reassignedCount — the number of templates that became uncategorized as a result of removing the category. Session context read via the same **************** pattern as other EmailService controllers. Part of SP1.

  16. · EmailService

    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) additionally see systemTemplates in the list response. Service-to-service endpoints are protected by the existing InternalAuthFilter. Session context (orgID, memberID) read from OTKPreAuthFilter's REQ_ATTR_SESSION attribute — the same pattern already used by AliasController / MailboxController. Part of SP1.

  17. · EmailService

    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ı idare eder). Gizli INTERNAL AUTH SECRET Env var. Ayrıca işlemsel.smtp.user / işlemal.smtp.passal. E-TemplateService tarafından tüketilen yapılandırılan ublar – tüm üçü kaynaklanmış Üretimde k8s configuremap'dan. SP1'in bir parçası.

  18. · EmailService

    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ını kaldırmadan önce etkilenen şablonlar üzerinde. SP1'in bir parçası.

  19. · EmailService

    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 NoReply@{org.domain} as from-address. Yeni-org yaşam döngüsü kancası için tohum ekleyin ve oDefault'yu sıfırlayın Bir SYSTEM row's content over a per-org REQUIRED row. Gönderme için Auth, küme çapında işlemsel SMTP hizmeti kimlikleri (transactional.smtp.user / işlemal.smtp.pass) per-member yerine. Sağlayıcı çözümleyici - işlemsel gönderilen hiçbir oyuncuya sahip değildir. SP1'in bir parçası.

  20. · EmailService

    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 Organization.domains lookup org domains) çözmelidir. Benzer) ve içeri girin. SP1'in bir parçası.

  21. · EmailService

    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. SP1'in bir parçası.

  22. · InitializerService

    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 per-org rows for every org that doesn't yet have them. Idempotent — safe to re-run on every startup. Part of SP1.

  23. · InitializerService

    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 after Hibernate creates the base tables from the new entities. Part of SP1.

  24. · kamo-shared-library

    CanonicalTemplateLoader + CanonicalTemplate kaydı

    Üç REQUIRED şablonları okuyun (WELCOME, PASSWORD RESET, EMAIL VERIFICATION) sınıftaki kaynaklardan **************** Yemin ederim KamoInitializerService for SYSTEM-row tohuming. SP1'in bir parçası.

  25. · kamo-shared-library

    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ı.

  26. · kamo-shared-library

    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ücut blocks ve etiketler için JSONB. Repository sağlar org-skod görünümleri, atom kullanımı sayacı artışı ve kategori-delete Organizasyon için nullifyKategory aracılığıyla temizlenme. SP1'in bir parçası.

  27. · kamo-shared-library

    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'da kısmi bir indeksle uygulanır. SP1'in bir parçası.

  28. · kamo-shared-library

    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 sözleşmeler Javadoc olarak belgelendi Sürekli sınıf; SP3 ve SP4 çağrıcılar bunları referanslar. SP1'in bir parçası.

  29. · InitializerService

    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 KamoCRMAgeReqUpdateRunner which handles existing deployments via a conditional UPDATE. Completes SP5.

  30. · InitializerService

    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 — startup must not block on this non-critical migration. Part of SP5. Pairs with the DataLoader edit in the next commit that makes fresh installs seed the new value directly.

Evreniniz sizi bekliyor.

Birkaç dakika içinde ücretsiz olarak başlatın. Hazır olduğunuzda ürünleri ekleyin - göç yok, yeni girişler yok.

Sonsuza kadar ücretsiz — kredi kartı gerekmiyor