Ganti h * * * dengan kamo- capcha- widget inline dalam langkah Selesai
Resolve duplicate emailTemplateServiceClient bean conflict
**************** and **************** were identical @Components with the same default bean name, causing **************** at startup. Delete the duplicate in r...
Bump kamo-shared-library to 1.4.0
Docker Stage 1 builds kamo-shared-library main (now 1.4.0) and installs it to the local .m2; the service pom still referenced 1.0.0 which Maven could not find, ...
Terapkan perbaikan kualitas SP6 dan implementasi
C1: gunakan NEXT _ PUBLIC _ H * * _ SITE _ KEY env var instead of hardcode placeholder C2: ubah RegisterResponse.asterId dan semua param API dari nomor ke strin...
Faktor wizard register SP6 - split PersonalInfo, tambahkan API registrasi sebenarnya
- Ganti FormPersonalInfo dengan FormName (bidang nama) dan FormAvatar (generator pembuat Avatar dengan menghasilkan / upload / melewatkan mode untuk 13 +) - Hap...
SP5 migrate KamoCRM agereq to ALL_WORK_ELIGIBLE
Add KamoCRMAgeReqUpdateRunner (order 10) — conditional idempotent UPDATE on startup; WHERE clause checks old value so re-runs are no-ops. Errors are swallowed s...
Address 4 code-review findings in registration and login paths
- Hide raw exception message in /register 500 path; log instead - Fail-closed (503) on email-verified DB check failure in login - verifyEmailToken throws if use...
Implement SP4 email verification and registration wiring
- Delete legacy email/VerificationEmail.java (hardcoded SMTP stub) - Add **************** (mirrors recovery package pattern) - Add **************** — token gene...
Tambah Verifikasi Email Entitas Token + repo + User.alias / emailVerified + UserRepo queries; bump 1.4.0 (SP4)
Add SP4 email_verification_tokens DDL + User alias/email_verified columns
Tambahkan halaman pengaturan akun bagi pertanyaan keamanan telepon + (SP3)
Tambahkan * * * * * * * * * * * * * * * * dengan kabel API ke SecurityService / api / account / *. Syncs nav di semua 3 lokasi.
Panggilan API nyata ke halaman / recover (SP3)
Mengganti semua fakeSubmit () dengan panggilan rekoveryApi. Tambahkan SMS OTP verifikasi fase, masukan surel benih, langkah sandi baru, dan pendarat token via? ...
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).
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 + VOIPSer...
Add InternalAuthFilter + POST /api/bulktext/send for service-to-service SMS (SP3)
Tambahkan entitas pemulihan + repos; bump ke 1.3.0 (SP3)
Tambahkan Password ResetToken, SmSOtp, RecloverySesion, AkuntVerificationCode Entitas JPA dengan repositori yang sesuai untuk aliran pemulihan SP3.
Tambahkan SecurityRequesonCatalog enum + sq1 / 2 / 3 + seedPhraseHash ke Pengguna (SP3)
Add SP3 recovery table DDL + User column additions to SchemaCleanupRunner
Pratinjau rute melalui latar belakang Browser - modal yang dirender (bagian dari Sp2)
Peramban Templat Email kini memiliki Modal Pratilik secara langsung, jadi Manajer tidak perlu lagi mencegat permintaan pratinjau tingkat row-dan redirect to edi...
Wire EmailTemplateEdit ke API nyata
Hidrates dari templateApi.get, saved via templateAppi.update. Kategori dropdown adalah API- didorong dengan kategori inline-menciptakan affordance. Variabel pic...
Wire EmailTemplateBrowser ke API + tambahkan tab Standar Sistem
Menggantikan ~ 140 baris data mock dengan template Api.list () panggilan. Kondisional tab kelima 'Sistem Baku' hanya muncul untuk tingkat atas -org admin dan re...
Tambahkan Modal EmailTemplatePreview
Opens on row- action Preview. Backend- dirender melalui templateApi.preview (); hasil yang ditampilkan dalam iframe sandboxed untuk isolasi gaya. Cocok jalur ko...
Hapus email generalManager.tsx yang tidak digunakan (~ 560 baris kode mati)
Komponen tidak pernah diimpor di mana saja. Tangganya (pantulan penanganan, tidak berlangganan, pelacakan pengiriman, baku dari email) tidak memiliki backend da...
Tambahkan template Api + kategoryApi + variableContracts modul klien
Wraps SP1 's / api / email / templates / * dan * * * * * * * * * * * endpoints with typeScript helpers. variableContracts cermin SP1 Javadoc TemplateKeys sehing...
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...
Add InternalAuthFilter for service-to-service endpoints
Validates X-Internal-Auth header on /api/email/templates/send and /api/email/templates/seed-org/* paths. Other paths bypass this filter (user session auth handl...
Tambahkan Email TemplateCategoryService - CRUD untuk kategori org- scoped
Menyebabkan keunikan nama sensitivitas per org dipaksa pada lapisan layanan (Cocok dengan sebagian indeks unik di DB). Penghapusan _ id kategori pada template t...
Tambahkan Email TemplateService - CRUD + kirim + seed + reset-to-default
Penata inti untuk email transkasional. sendToUser menyelesaikan template, membuat subjek / tubuh, memilih domain utama org dari Organisasi. domain, and hands of...
Tambahkan Layanan Pemberitahuan untuk 'NoReply @ {domain}' dari -address
Sumber kebenaran tunggal untuk transctional- email dari alamat. Menerima domain string, lowercase-normalizes itu, kembali "NoReply @ < domain >". Penelepon haru...
Tambah Pengatur Templat bagi pengganti {{var}}}
Stareless regex- berbasis renderer. Hilang vars pengganti string kosong dan Keluarkan sebuah log WARN dengan templateKey + orgId untuk atclate. Tidak ada HTML m...
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 versi ke 1.2.0 untuk tambahan SP1
Tambahkan EmailTemplate, EmailTemplateKategori, TemplateStatus, TemplateKeys, CanonicalTemplate, CanonicalTemplateLoader, dan kanonical HTML sumberdaya.
Tambahkan Canonicale TemplateLoader + CanonicalTemplate record
Membaca tiga contoh yang hilang (WELCOME, PASSWORD _ RESET, EMAIL _ VERIFIKASI) dari sumber daya classpath di * * * * * * * * * * * * * * * Dikonsumsi oleh Kamo...
Tambahkan HTML + JSON untuk Welcome, PASSWORD _ RESET, EMAIL _ VERIFIKASI
Isi dari kebenaran bagi baris SISTEM. Dimuat di Layanan KamoInitializerService started by Canoniclale TemplateLoader and UPSERTed into email _ templates. Bagia...
Ubah nama mailboxId Aboid dan status providerStatus Avable dalam respon daftar kotak-surat
Align nama lapangan dengan frontend harapan untuk anggota daftar kotak surat.
Tambahkan repositori EmailTemplate +
Toko satu baris SYSTEM per template _ key (org _ id NULL, adalah _ system TRUE) plus satu clone per org per template _ key. Soft--reference org _ id / categori ...
Tambahkan repositori Email TemplateKategori +
Kategori organik untuk template email. _ Id BIGINT Lembut (tidak ada FK) cocok dengan pola yang ada. Case- nama sensitif unik per-org adalah dipaksa melalui ind...
Tambahkan TemplateStatus enum + TemplateKeys konstanta untuk template trankasional
Menyatakan keadaan lifecycle REQUIRED / CUSTOM / ARCHIVED dan tiga membutuhkan kunci template (WELCOME, PASSWORD _ RESET, EMAIL _ VERIFIKASI). Kontrak variabel ...
Seperti apa yang Anda lihat pengiriman?
Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.