Add resetCode to password reset email, add emailVerifyByCode endpoint, send WELCOME_MEMBER after email verification
Update EMAIL_VERIFICATION sample vars to match current template
Use expiryText instead of expiryMinutes (renamed variable), and update verifyLink to point to the register subdomain (correct send path).
Preserve DB domain case in NoReply from address
Removed toLowerCase() — the domain already comes from resolvePrimaryDomain which reads org_domains from the database, so case is canonical from DB.
Resolve root domain for NoReply from-address instead of bare subdomain
resolvePrimaryDomain() was returning the first domain entry (e.g. "www") which produced NoReply@www. Now prefers root domains (parent == null) so transactional ...
Add internal.auth.secret to EmailService configmap
InternalAuthFilter was rejecting all service-to-service calls (send, seed-org) with 503 because internal.auth.secret was unconfigured. Matches the same INTERNAL...
Allow transactional send on port-25 relay and auto-seed missing templates
Port-25 SMTP (postfix) requires no auth — transactionalCredentials() was throwing ProviderUnavailableException when user/pass were unconfigured, blocking all ve...
Add dao.repositories to JPA scan so EmailTemplateRepository is found
Same pattern as KamoInitializerService — explicit basePackages overrides default scanning and must include every package that has repositories.
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...
Ubah nama mailboxId Aboid dan status providerStatus Avable dalam respon daftar kotak-surat
Align nama lapangan dengan frontend harapan untuk anggota daftar kotak surat.
Add concurrency group to prevent duplicate workflow runs
When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...
Bump version to trigger rebuild with updated kamo-shared-library
Rebuilds the Docker image with the fixed Member entity (memberType field removed) so the Hibernate SQL no longer selects security_level from the member_team_mem...
Support mailbox switching by resolving IMAP credentials per mailboxId
Added getMailCredentialsByEmail to look up virtual_users by email directly, resolveForMailbox to MailProviderResolver with access verification, and optional mai...
Add email signature field config API
Add service and REST controller for managing email signature field visibility configuration per organization. Admins can toggle which contact fields appear in s...
Add accessible mailboxes endpoint with privilege-based expanded access
Add AccessibleMailboxService and GET /api/email/mailboxes/accessible endpoint that returns personal mailboxes, shared mailboxes, and privilege-gated access to d...
Rename DomainService to EmailDomainService to resolve bean name conflict
The shared library's DomainService and EmailService's local DomainService both registered as 'domainService' bean, causing CrashLoopBackOff on deploy.
Correct method signatures in DomainController and MailboxController
- Fix getMemberMailboxes -> getMailboxesForMember in MailboxController - Add missing memberId parameter to getVerificationRecords and verifyDomain in DomainCont...
Add email domain management and mailbox provisioning through abstract provider layer
- Add DomainManager and MailboxProvisioner capability interfaces with sub-capability detection - Add ProviderDomain, ProviderMailbox, DnsRecord DTOs - Implement...
Extract BCC recipients from IMAP messages
BCC header is retained on sent folder copies. Now extracted alongside To and CC so the frontend can display it in sent item previews.
Provider GET returns both type and providerType, PUT accepts both
GET /api/email/provider now includes both 'type' and 'providerType' fields in the response for frontend compatibility. PUT now accepts 'type' as a fallback when...
Add email aliases and shared mailbox support
New MailboxManager provider capability interface for alias and shared mailbox CRUD. KamoMailMailboxManager implementation manages dovecot/postfix virtual_users ...
Update calendar, contact, and integration ID types from Long to UUID
Calendar entities, contact sub-entities, and ContactIntegration IDs are now UUID. Updates all services, controllers, and DAV endpoints.
Add ICS generation for REQUEST/REPLY/CANCEL and calendar message parsing
Add per-source sync status in WebSocket + displayName support
- WebSocket sync status now includes per-integration statuses in a 'sources' map keyed by integration ID - applyConfig now handles displayName field for user-...
Add member-level sync toggle and WebSocket sync status
- Add PUT /member/sync-toggle endpoint to batch-toggle syncEnabled on all member integrations at once - Add ContactSyncWebSocketController broadcasting aggreg...
Add security-service.*** to K8s ConfigMap
KamoJwtService requires this property for Bearer token validation in DavAuthFilter, but the K8s ConfigMap overrides application.yml and was missing it — causing...
Write ContactSyncLog on calendar/contact mutations for bidirectional sync
Add Google, Microsoft, and GenericDav provider stubs with token refreshers
Seperti apa yang Anda lihat pengiriman?
Semua itu tiba di ruang kerjamu sendiri. Mulailah dengan rencana gratis dan baca halaman ini lagi dalam sebulan.
