Changelog
Ada kabar baru.
Setiap perbaikan pada platform, sebagai kapal.
· kamo-shared-library
Tambahkan 7 module-access rights (ID 112-118)
AKSES _ PERINTAH, VIEW _ CAKENDAR, AKSES _ CHAT, AKSES _ MAIL, AKSES _ VOIP, VIEW _ SUPPORT, VIEW _ ANALYTICS
· SecurityService
Pass human-readable expiry time to email verification template
Add humanizeMinutes() helper that formats minutes as days/hours/minutes (e.g. "1 day" for 1440 min). Pass as {{expiryText}} to match updated canonical template variable.
· kamo-shared-library
Improve template verifikasi surel - URL fallback, teks kadaluarsa, subjek
- Tambahkan link verifikasi teks di bawah tombol sebagai fallback copy-paste - Switch variabel kadaluarsa dari {{expiiryMinutes}}} ke {{exporiryText} untuk format yang mudah dibaca (mis. "1 hari" daripada "1440 menit") - Update subjek ke "Verify the email associated with your {{orgName} account"
· kamo-internal
Serialisasi surel penuh HTML dengan bingkai luar pada template save
- SerializeFullEmailHtml membungkus bagian dalam blok di luar merek (logo header, judul / subtitle, area isi, nama logo footer + org) menggunakan URL absolut sehingga klien email dapat mengambil gambar - Pengaturan frame luar (pilihan logo, judul, subjudul) disimpan ke bodyBlocks.outerFrame dan dipulihkan pada beban template - HandleSave sekarang menggunakan serializeFullEmailHtml sehingga mengirim email yang cocok dengan pratinjau pembangun
· SecurityService
Add code-based email verification path to /verify-email endpoint
The endpoint now handles both token (link click) and userId+code (manual 6-digit entry). Token path unchanged; code path hashes the supplied code and matches against the active token for that userId.
· KlusterServices
Add weekly image prune and journal vacuum CronJob for k1m1
CronJob runs every Sunday 3am, privileged, pinned to k1m1. - crictl rmi --prune removes unused container images - nsenter journal vacuum enforces 500MB cap - CI/CD step added to deploy-services workflow
· KlusterServices
Add Docs deploy step to workflow
· kamo-register
Perlu halaman verifikasi sebelum setiap verifikasi / kirim ulang percobaan
* * * adalah reset setelah setiap aksi (sukses atau gagal) sehingga segar memecahkan diperlukan untuk setiap usaha berikutnya.
· kamo-register
Nama / benci verifikasi halaman ke / verifikasi
· kamo-register
Tambah / benci -verifikasi halaman untuk pengalihan login
Membuat standar / membenci-verifikasi rute yang menerima? email dan ? Param query userId, menggunakan PostCompletionScreen untuk konsisten email verifikasi UX. Membuat RegisterResponse.alias opsional sehingga halaman bekerja tanpa daftar alias tersedia.
· kamo-register
Desain ulang layar verifikasi surel + fix mengirim ulang bug surel
- PostCompletionScreen: Layout halaman penuh dengan animasi org latar belakang, kartu glassmorphism, logo, kotak kode visual 6-digit, tingkat sukses / verifikasi - Kebencian Verifikasi: lulus email dalam tubuh permintaan (backend membutuhkannya)
· kamo-register
Cocokkan penyimpanan avatar internal - 3 ukuran, MiniO, langkah upload terpisah
Dialog crop kini menghasilkan tiga gumpalan PNG (50 / 150 / 350px) melalui kanvas, identik untuk kamo- internal 's GiblarManager. Setelah pendaftaran kembali, gumpalan are POSTED to * * * * * * * * * * * * * * * * * (titik akhir baru tak terotentikasi yang dijaga oleh email = palsu) avatarUrl tidak lagi dikirim dalam registrasi Tubuh JSON. Kegagalan upload Avatar tidak fatal jadi pendaftaran masih lengkap.
· SecurityService
Add register-photo endpoint for unauthenticated post-registration avatar upload
POST **************** accepts userId + file/fileSm/fileMd/fileLg without a session. Guards: user must be unverified and have no avatar yet, preventing abuse against existing accounts. Stores files to MinIO with the same path structure and sized variants as the authenticated /avatars/photo endpoint.
· kamo-login
Ganti EMAIL _ NOT _ VERIFIED error dengan kartu verifikasi kaya
Ketika log masuk gagal dengan EMAIL _ NOT _ DIVERIFIED kartu log masuk kini digantikan oleh "Periksa kotak masukmu" layar: amplop animasi SVG dengan lipatan pembuka dan berkilau mengambang, tampilan email bertopeng, membenci-tombol email dengan 30-detik Cincin hitung mundur SVG, sukses / error / rate-batasi peringatan umpan balik, dan "Kembali ke sign in "link. Semua transisi menggunakan Animax Preasure dengan skala + memudar. - app / api / login / route.ts: lewati semua ruas kesalahan backend (bukan hanya pesan) jadi UserId mencapai klien - * * * * * * * * * * * * * proxy baru ke SecurityService * * * * * * * * * * * * * * * - app / page.sx: EmailVerify Komponen kartu, e-mail VerifyState / benci memuat / Membenci Cooldown / membenci Status negara, membenci Verifikasi callback, 30-detik cooldown useEffect, EMAIL _ NOT _ VERIFIED deteksi dalam performLogin
· kamo-register
Panjangkan foto untuk mendukung format AVIF dan SVG
Tambahkan gambar / avif dan gambar / svg + xml ke masukan berkas terima daftar dan validasi regex. Memutakhirkan label petunjuk untuk daftar semua enam format. kamo- internal telah menerima gambar / * sehingga tidak ada perubahan yang diperlukan di sana.
· kamo-register
Tambahkan penyunting foto reakt- easy-crop ke tahap pendaftaran upload
Mirror the PhotoCropDialog from kamo- internal 's AverarManager: - dialog crop dibuka segera setelah seleksi berkas - pan dengan menyeret, zoom melalui gulir atau slider (1- 5 ×) - panduan lingkaran overlay berlari menunjukkan daerah dipotong - kanvas menghasilkan 400 × 400 PNG disimpan sebagai base64 avatarUrl - tombol re-crop pada pratilik memungkinkan pengguna menyesuaikan setelah menyimpan
· kamo-register
Tambah / api / geoip rute dan negara kawat auto- deteksi
Proxies client IP to SecurityService GeoLite2 lookup, then set the negara terdeteksi di FormMyCountry otomatis pada halaman beban.
· SecurityService
Add GET /api/security/geoip/me for client IP country lookup
Reads real client IP from X-Forwarded-For / X-Real-IP headers, does a GeoLite2 lookup, and returns { country_code, country_name }. Used by kamo-register's country auto-detection step.
· kamo-register
Ganti h * * * dengan kamo- capcha- widget inline dalam langkah Selesai
· kamo-register
Tambah / api / capcha / tantangan rute proksi
· kamo-register
Tambahkan kamo- capcha-widget vendor, hapus paket h * * *
· kamo-register
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 +) - Hapus FormRecloveryEnforcement (bidang pemulihan dihapus dari aliran) - Refactor FormPassport ke tata letak dual- field: alias selalu ditampilkan, email hanya untuk 13 +; callbacks menggantikan jendela global - Tambahkan registerApi.ts dengan typed * * * * * * * * * * * * * * * * - Tambahkan PostCompletionScreen untuk masukan kode verifikasi email dan pengalihan SIGNED _ IN - Refactor RegisterFlow: daftar langkah dinamis berbasis pada shouldIncludeAgeCheck dan isUser13Plus, ganti handle * * Submit stub dengan panggilan API yang sebenarnya, buat PostCompletionScreen pada sukses
· InitializerService
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 so startup is not blocked. Update DataLoader to seed ALL_WORK_ELIGIBLE on fresh installs.
· SecurityService
Implement SP4 email verification and registration wiring
- Delete legacy email/VerificationEmail.java (hardcoded SMTP stub) - Add **************** (mirrors recovery package pattern) - Add **************** — token generation/SHA-256 hashing, send/verify/resend flows backed by **************** - Add **************** — alias+email uniqueness checks, User creation, triggers verification email on register - SecurityController: wire RegistrationService into /register endpoint, add EMAIL_NOT_VERIFIED (403) gate on login, add POST /verify-email and POST /register/resend-verification endpoints - Bump kamo-shared-library to 1.4.0
· kamo-shared-library
Tambah Verifikasi Email Entitas Token + repo + User.alias / emailVerified + UserRepo queries; bump 1.4.0 (SP4)
· InitializerService
Add SP4 email_verification_tokens DDL + User alias/email_verified columns
· kamo-marketing
Tambahkan merek dagang displaimer ke footer teks hukum
· kamo-internal
Tambahkan halaman pengaturan akun bagi pertanyaan keamanan telepon + (SP3)
Tambahkan * * * * * * * * * * * * * * * * dengan kabel API ke SecurityService / api / account / *. Syncs nav di semua 3 lokasi.
· kamo-login
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? token = URL param.
· kamo-login
Tambah / api / recover proksi + recoveryApi klien (SP3)

Alam semestamu menunggu.
Mulai gratis dalam beberapa menit. Tambahkan produk kapanpun Anda siap — tidak ada migrasi, tidak ada login baru.
Gratis selamanya — tidak diperlukan kartu kredit