ข้ามไปยังเนื้อหา
KAMOUniverse

บันทึกการเปลี่ยนแปลง

มีข่าวอะไร

การปรับปรุงทุกอย่างของแพลตฟอร์ม เมื่อมันถูกส่งออกไป

  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

    เพิ่มคุณสมบัติการกู้คืน + respos; ชนกับ 1. 03 (P3)

    เพิ่มรหัสผ่านใหม่@ info: whatsthis JPA ประกอบด้วยสารที่คล้ายคลึงกัน สําหรับการไหลของ PP3.

  5. · kamo-shared-library

    เพิ่มข้อมูลความปลอดภัยCreationCatalog enum + พื้นพื้นที่//3 + เมล็ดพันธุ์ PhraseHash สําหรับผู้ใช้ (PS3)

  6. · InitializerService

    Add SP3 recovery table DDL + User column additions to SchemaCleanupRunner

  7. · kamo-internal

    เส้นทางแสดงตัวอย่างผ่านโปรแกรมเบื้องหลังของเบราว์เซอร์

    The mail TemptlopBrowser ตอนนี้เป็นเจ้าของการแสดงตัวอย่าง modal โดยตรง ดังนั้น ตัวจัดการไม่จําเป็นต้องดักจับการร้องขอแสดงตัวอย่างระดับแถวอีกต่อไป เปลี่ยนเส้นทางไปยังโหมดแก้ไข.

  8. · kamo-internal

    อีเมลแบบออนไลน์

    ไฮดรา จากแม่แบบ Api. ได้ บันทึกผ่านทาง Api.update ประเภท ลดลงเป็น API-ไดรฟ์ที่มีบรรทัด ค่าใช้จ่ายสร้างหมวดหมู่ ตัวแปร Chicker reading from dictions.t (decorded attachment for RENTIEIST) ปุ่มแม่แบบ; ชุดทั่วไปสําหรับ CUSTOM) แก้ไขแถวแบบ REKL / SYSTEME แสดงป้ายเตือนที่เหมาะสม ปุ่มแสดงตัวอย่าง เปิด โปรแกรมเบื้องหลังrendered email TemplectPreview modal ส่วนของ SP2.

  9. · kamo-internal

    Comment=รายการจดหมายName

    แทนที่การแสดงข้อมูล~140 บรรทัดของการเยาะเย้ยด้วยข้อความเรียก MagnatuneApi.list () เงื่อนไข แท็บที่ 5 สําหรับ 'ค่าปริยาย' จะปรากฏเฉพาะส่วนโฆษณาและส่วนแสดงผลของส่วนบนบนบน จากการตอบสนอง ระบบ ตัวกรองที่มีหมวดหมู่จากหมวดหมู่ Api.list () การกระทําในแถวทั้งหมด ~เสียงหลงดังจริง~ จุดสิ้นสุดของแบ็คเอนต์ ความผิดพลาดทางเครื่องจับเท็จ ส่วนของ SP2.

  10. · kamo-internal

    เพิ่มอีเมล

  11. · kamo-internal

    เพิ่มรายการอีเมล

  12. · kamo-internal

    เพิ่มรายการอีเมล

    เปิดในตัวอย่างการกระทําแถว แบ็คเอนต์จัดการแฟ้มผ่านทาง ModelApi. preview ส่งผลให้แสดงในกรอบหินทราย สําหรับแยกรูปแบบ ตรงกับ เส้นทางรหัสที่แน่นอนที่ส่งใช้ ดังนั้นสิ่งที่คุณแสดงตัวอย่างคือสิ่งที่ผู้รับ ส่วนของ SP2.

  13. · kamo-internal

    เพิ่มมอดูลลูกข่าย Api + ประเภท Api + ตัวแปร

    ห่อ SPE1 ของ /api/ email/ templets/* และ* idents จุดสิ้นสุดที่มีชนิดแฟ้มช่วยเหลือพิมพ์ ตัวแปร Keys Javadoc ดังนั้นเครื่องมือเลือกตัวแปรของเครื่องมือแก้ไขได้ประกาศ สัญญาสําหรับแม่แบบ ส่วนของ SP2.

  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

    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 handles them). Secret comes from INTERNAL_AUTH_SECRET env var. Also adds transactional.smtp.user / transactional.smtp.pass config stubs consumed by EmailTemplateService — all three are sourced from the k8s configmap in production. Part of SP1.

  18. · EmailService

    Add EmailTemplateCategoryService — CRUD for org-scoped categories

    Case-insensitive name uniqueness per org enforced at service layer (matches the partial unique index in the DB). Deletion nulls category_id on affected templates before removing the category row. Part of SP1.

  19. · EmailService

    Add EmailTemplateService — CRUD + send + seed + reset-to-default

    Core orchestrator for transactional email. sendToUser resolves the template, renders subject/body, picks the org's primary domain from Organization.domains, and hands off to EmailSmtpService with NoReply@{org.domain} as from-address. Includes seedForOrg for new-org lifecycle hook and resetToDefault that copies a SYSTEM row's content over a per-org REQUIRED row. Auth for the send uses cluster-wide transactional SMTP service credentials (transactional.smtp.user / transactional.smtp.pass) rather than the per-member provider resolver — transactional sends have no acting member. Part of SP1.

  20. · EmailService

    Add NoReplySenderService for 'NoReply@{domain}' from-address

    Single source of truth for transactional-email from addresses. Accepts a domain string, lowercase-normalizes it, returns "NoReply@<domain>". Callers must resolve the org's domain (via Organization.domains lookup or similar) and pass it in. Part of SP1.

  21. · EmailService

    Add TemplateRenderer for {{var}} substitution

    Stateless regex-based renderer. Missing vars substitute empty string and emit a WARN log with templateKey + orgId for attribution. No HTML escaping in v1 — values are server-controlled. Part of SP1.

  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

    เพิ่มแผ่นเสียง Conical

    อ่านเอกสารต้นแบบสามฉบับ ถนอมทรัพย์ นพบูรณ์EMAIL OF TRANSLATORS ~ประกาศออกไป~ ถูกจองโดย เครื่องเร่งอนุภาคของ SESTEMEE ส่วนของ SP1.

  25. · kamo-shared-library

    เพิ่มเอกสาร HTML + Json สําหรับ Wolcom, PassWord rest, EMAIL OF TRANSLATORS

    ข้อมูลต้นฉบับของข้อมูลแถว SYSTEM โหลดที่ KamoInical Service เริ่มการทํางานโดย Canonical Temple Loader และ UpSported เป็นอีเมล ตราสาร ส่วนของ SP1.

  26. · kamo-shared-library

    เพิ่มรายการอีเมล

    เก็บหนึ่งแถว SYSTEME ต่อแม่แบบ (org id NULL, is ระบบจริง) บวก ตัวโคลนต่อแกนต่อแม่แบบ พาธที่อ้างถึง org id/ category id ดีบี ไดรฟ์ Timetramps; Jonsonb for body blocks และป้ายกํากับ การ จัด เตรียม ให้ โปรแกรมจัดการค้นหา, การใช้อะตอมเพิ่มขึ้น และหมวดหมู่ Delate ทําความสะอาดผ่านทาง Unlinecategory Forrg ส่วนของ SP1.

  27. · kamo-shared-library

    เพิ่มรายการอีเมล

    หมวดหมู่จดหมายที่อ่านแล้วสําหรับแม่แบบอีเมล พิมพ์แบบ SweetIMEX id (ไม่มี FK) ตรงกับรูปแบบที่มีอยู่ ชื่อตัวพิมพ์เล็ก- ใหญ่ บังคับใช้ผ่านทางดัชนีบางส่วนที่เพิ่มใน Kamemo Inniversity service. ส่วนของ SP1.

  28. · kamo-shared-library

    เพิ่มค่าคงที่ของต้นแบบจดหมาย

    ประกาศสายรัด/CUSTOM/Archive Cycle และ 3 ต้องการกุญแจแม่แบบ (WELCE, PassWord resett, EMAIL OF TRANSLATORS สัญญาตัวแปรสําหรับแม่แบบ RECTIT ที่บันทึกเป็น JavaDoc บน คลาสค่าคงที่; PP3 และ SP4 อ้างอิงสิ่งเหล่านี้ ส่วนของ SP1.

  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.

จักรวาลของคุณกำลังรออยู่

เริ่มฟรีในไม่กี่นาที เพิ่มผลิตภัณฑ์เมื่อคุณพร้อม - ไม่มีการย้าย, ไม่มีการล็อกอินใหม่

ฟรีตลอดกาล — ไม่จำเป็นต้องใช้บัตรเครดิต