परिवर्तन लॉग
क्या नया है.
यह जहाज के रूप में, प्लेटफार्म के हर सुधार.
· kamo-shared-library
बिलिंगसमूह मॉडल के साथ ऑर्ग-लेवल बिलिंग को बदलें
परिचय बिलिंगसमूह, बिलिंगसमूह सदस्य, बिलिंगसमूह सदस्यता, बिलिंगग्रुप लाइसेंस, बिलिंगग्रुप भुगतान मेथोड, बिलिंगग्रुप इनवॉइस, और बिलिंगGroupConfig संस्थाओं (सभी साझा वाणिज्य / बिलिंग / बिलिंगसमूह के तहत)। पुराने बिलिंग को छोड़ देता है सदस्यता / बिलिंगग्राहक / बिलिंगConfig / BillingPaymentMethod / BillingInvoice / BillingCredit / BillingUsageSnapshot पूरी तरह से - हर ओरग को अब एक डिफ़ॉल्ट समूह के साथ एक free DEFAULT हो जाता है अपनी बेसलाइन के रूप में कामoCRM सदस्यता। Adds SecurityModelCommerceMarket जंक्शन प्रतिस्कोप सक्षमता के साथ वाणिज्य बाजारों के लिए सुरक्षा मॉडल को जोड़ने।.
· SecurityService
इंटरेक्शन सेंटर सदस्य लाइन नौकरी शीर्षक का उपयोग करता है
नौकरी के साथ RBAC भूमिका शीर्षक बदलेंशीर्षक, नौकरी के लिए वापसीतिल TeamMember के लिए सूची शीर्षक, और आधार सदस्य के लिए लेबल सदस्य उप-विभाग पेलोड भूमिका क्षेत्र में रिकॉर्ड।.
· kamo-internal
मेरे प्रोफ़ाइल स्थिति कार्ड पर टीम के सदस्यों के लिए आधिकारिक नौकरी शीर्षक क्षेत्र
· kamo-shared-library
TeamMember.jobTitleOfficial वैकल्पिक स्ट्रिंग कॉलम (60 chars) जोड़ें
· SecurityService
प्रोफ़ाइल और सदस्य-सुरक्षा एपीआई पर टीम के सदस्यों के लिए एक्सपोज़ और निरंतर जॉब
· KlusterServices
Cert-manager Certificate specs and migrate RSA के लिए ECDSA P-256 का उपयोग करें
· kamo-shared-library
विश्वसनीय टीम के लिए getTeamMemberbyId जोड़ें
· kamo-shared-library
Org id द्वारा सुरक्षा मॉडल के साथ लोड शाखा प्रकार
· kamo-shared-library
ऑब्जेक्ट अपलोड पर वैकल्पिक कैश-कंट्रोल
इसलिए Globals.css और config.json द्वारा प्रयुक्त ब्राउज़रों का निर्देशन और परदे के पीछे stale कैश वस्तुओं की सेवा के बजाय पुन: मान्य करने के लिए।.
· SecurityService
थीम परिसंपत्तियों पर विन्यास और कैश हेडर में संशोधन
Emit themeRevision (epoch ms) प्रत्येक लिखने पर config.json में; सेट कैश-कंट्रोल विन्यास, Globals.css, और साइट पर। वेबमैनिफेस्ट अपलोड इसलिए एज कैश रिवाइटर।.
· kamo-shared-library
**************** अवतार सफाई के लिए
एक अवतार को हटाने के दौरान उपयोग किया जाता है ताकि सदस्य ओवरराइड्स को संदर्भित करता है कि उसी पंक्ति को हटाए जाने से पहले साफ़ किया जा सकता है।.
· kamo-internal
स्पष्ट विज़ार्ड सत्र ताजा बनाने पर भंडारण? ताजा = 1
नेटवर्क से नेविगेट करने के लिए? ताजा = 1, क्वेरी को पट्टी करें, और एक का उपयोग करें शॉर्ट-लाइव लॉक इसलिए रिएक्ट ट्रिक्ट मोड पहले पुराने ड्राफ्ट को पुनर्स्थापित नहीं करता है रन बनाए रखें। विज़ार्ड ड्राफ्ट सत्रस्टोरेज में रहता है (स्थानीय स्टोरेज नहीं)।.
· kamo-shared-library
शराब/tobacco/firearms अनुपालन नीतियों
- CHILD ORG SECURITY MODELS कॉलम और इकाई डिफ़ॉल्ट MEMBER SELECT - डीटीओ और चाइल्डऑर्ग सिक्योरिटीमॉडल सर्विस सामान्यीकरण का निर्माण / अद्यतन करती है - एप्लाइडमॉडल प्रवर्तन सेवा बच्चे के ऑर्ग एटीएफ झंडे और सिंगलटन उम्र के लिए नीतियों को लागू करती है
· SecurityService
मॉडल और क्रिएटेबल शाखा प्रकार पर ATF अनुपालन नीतियों को उजागर करें
संगठननियंत्रक उम्र के दावे से पहले मॉडल प्रवर्तन लागू करता है - SecurityModelController और MasterModelController पास नीति क्षेत्र - ब्रांच टाइप कंट्रोलर में / शाखा-प्रकार / क्रिएबल में नीतियां शामिल हैं
· kamo-internal
सुरक्षा मॉडल नीतियों से अनुपालन विज़ार्ड
- शाखा के प्रकार एपीआई नक्शे शराब / तंबाकू / फायरआर्म नीतियां विज़ार्ड राज्य में - डायनेमिक अनुपालन चरण: जब मॉडल सभी एटीएफ और उम्र को ठीक करता है तो नौसेना से बाहर निकलता है - आयु और एटीएफ केवल तभी नियंत्रित होता है जब MEMBER SELECT या एकाधिक आयु विकल्प - समीक्षा केवल उन क्षेत्रों को दिखाती है जिन्हें उपयोगकर्ता के लिए प्रेरित किया गया था; शीर्षक अनुपालन सेटिंग्स - सेटिंग्स: अनुमति सदस्य आयु रेंज (सुरक्षा मॉडल) के तहत एटीएफ नीति रेडियो - जमा करने के लिए प्रभावी का उपयोग करता हैComplianceForSubmit लागू मूल्यों के लिए
· SecurityService
DNS और ऑटो-cert (add mail, play, apps, sign; ड्रॉप ऐप, मीडिया) के साथ नोनअलियास को संरेखित करें।
· kamo-marketing
चेंजलॉग लिंक और दैनिक गिनती के साथ लाइव स्टेट दिखाएं
एक कॉम्पैक्ट "अब लाइव" के साथ पूर्वावलोकन उलटी गिनती और साइनअप प्रतिलिपि बदलें कॉलआउट, चेंजलॉग लिंक रखें, और हमेशा आज के बदलाव की गिनती दिखाएं एपीआई से लोड होने के बाद। स्थानीय लोगों में प्रीव्यूबनर स्ट्रिंग अपडेट करें।.
· SecurityService
रोलराइट्स
रोलराइट टाइप को जोड़ने या हटाने के लिए फिर से चलने की आवश्यकता नहीं होनी चाहिए KamoInitializerService. सिंकऑल () अब हर स्टार्टअप पर तीन चरण चलाते हैं: 1. हील बाधाएं - प्रत्येक CHECK को हर दाएं-असर पर बाधा डालती हैं तालिका और यह सुनिश्चित करने के लिए दो upsert-required अद्वितीय बाधाओं मौजूद हैं। हाइबरनेट बेकरी को CREATE TABLE पर CHECK प्रतिबंधों में मान दिया गया है समय और कभी उन्हें अद्यतन नहीं करता है, और @UniqueConstraint केवल प्रभाव लेता है CREATE TABLE पर, इसलिए जब भी enums विकसित हो जाता है तो दोनों बहाव निकलते हैं। @Anumerated जावा परत पर पहले से ही मान्य मान लागू करता है। 2. अनाथ अधिकार हटाएं - DELETE WHERE right type not IN (current enum) सभी छह दाएँ-असर तालिकाओं में: org role rights, **************** Member rights, Member rights applied, job title rights, dept rights. ORDINAL int और STRING enum नाम भंडारण दोनों संभालती है। 3. लापता अधिकार सम्मिलित करें - अपरिवर्तित; अद्वितीय बाधाओं पर निर्भर करता है चरण 1 में सुनिश्चित किया गया। Idempotent - फिर से चलाने के लिए सुरक्षित। अब enum मूल्यों को जोड़ने / हटाने की आवश्यकता है केवल सुरक्षा सेवा को पुनरारंभ करना।.
· kamo-internal
प्लेटफॉर्म एडमिनिस्ट्रेशन सेटिंग जोड़ें - org योजना अनुदान, आयोजन, योजना सूची
- नए पृष्ठों के तहत /settings/platform ( hasPlatformAdminAccess द्वारा संरक्षित): - /संगठन - कारणों से कंपनी योजनाओं को हर ओरग, अनुदान / संशोधित / रद्द करने की सूची **************** - /योजनाएं - केवल आंतरिक (ispublic=false) योजनाओं सहित पठनीय सूची - useUserInfo: derives hasPlatformAdminAccess from isGodModeActive() OR (teamMember.isOrganizationOwner और संगठनात्मक.isTopLevel) - बिलिंगएपीआई: प्लेटफॉर्म नेमस्पेस (सूचीऑर्ग्स, अनुदानप्लान, संशोधितग्रेन, रद्दवारगारंट) listPlans, listEvents) + X-God-Mode-Active header जब स्थानीय स्टोरेज ध्वज सेट - /api/billing प्रॉक्सी: क्लाइंट से बिलिंग सर्विस तक X-God-Mode-Active को आगे बढ़ाता है सेटिंग्स हब + सेटिंग्सस्टैटसविंडो: नया "प्लेटफॉर्म एडमिनिस्ट्रेशन" समूह - बिलिंगमैनेजर: प्लेटफ़ॉर्म-owner बैनर शीर्ष स्तर के ऑर्ग के लिए स्ट्रिप फॉर्म की जगह लेता है (बिलिंग टैब के रूप में / सेटिंग / खाता में वायर्ड) - सुविधाएँ प्रबंधक: "Platform ओनर - आंतरिक" हेडर और दबाया उन्नयन जब org शीर्ष स्तर और वर्तमान उप है तो CTA - संगठन वर्ग / संगठन / PublicProvider: isTopLevel जोड़ें; हटा दें नेटवर्क पृष्ठ + रिश्ते में मृत `type` फ़ील्ड और बचे हुए उपभोक्ताओं प्रबंधक Deprecated Organizationtype.t
· BillingService
प्लेटफॉर्म एडमिन कंट्रोलर + सर्विस फॉर कम्प प्लान अनुदान
प्लेटफार्मAdminController at /api/billing/platform (class-level @PlatformAdminOnly) - GET/orgs, GET/orgs/{orgId} POST/orgs/{orgId}/grants, PATCH |DELETE/orgs/{orgId}/grants/{subId} - जीईटी / प्लान्स (शामिल हैपब्लिक = झूठी) - GET/events - प्लेटफ़ॉर्मAdminService: अनुदान कम्प सब्सक्रिप्शन बनाता हैरिकॉर्ड, पूर्व सक्रिय को रद्द करता है उप, सब्सक्रिप्शन उत्सर्जन करता है ************* 5s idempotency @PlatformAdminOnly + हैंडलरइंटरसेप्टर: भगवान-मोड-सक्रिय या अनुमति दें (TeamMember.isOrganizationOwner और Organization.isTopLevel, DB से फिर से पढ़ने) - सब्सक्रिप्शनRenewalScheduler: कंपनी शाखा समाप्ति पर रद्द (ComP EXPIRED) कभी नहीं कॉल करें - बिलिंग एडमिन सर्विस: MRR/ARR एकत्रीकरण भुगतान को बाहर कर देता हैMethod=COMP - स्ट्रिंग (CockroachDB unique rowid Precision) के रूप में उजागर लंबे समय तक ids
· InitializerService
बीज संगठन.isTopLevel for kamocrm and OWNER UNLIMITED self-comp plan
- DataLoader: ड्रॉप संगठन मेकऑर्ग से टाइप आर्ग, सेट isTopLevel = kamocrm पर ट्र्यू - KamoCRMAgeReqUpdateRunner + परीक्षण: TYPE के बजाय IS TOP LEVEL = TRUE पर मैच ALTER TABLE DROP COLUMN type - प्लेटफ़ॉर्मOwnerPlanSeeder: idempotently सुनिश्चित करें कि kamocrm स्वामित्व वाली OWNER UNLIMITED योजना हर सुविधा को कवर करती है और खुद के लिए एक स्थायी सदस्यता रखती है।
· kamo-shared-library
संगठन जोड़ें.isTopLevel, PaymentMethod.COMP, COMP * घटना प्रकार; संगठन को हटा दें प्रकार enum
- संगठन: प्लेटफॉर्म मालिकों की पहचान के लिए `isTopLevel` ध्वज के साथ मृत `type` फ़ील्ड को प्रतिस्थापित करें - PaymentMethod: कॉम्प्लीमेंटरी प्लेटफॉर्म व्यवस्थापक अनुदान (कोई स्ट्राइप नहीं) के लिए कम्प्लीमेंट्री जोड़ें - सब्सक्रिप्शनEventType: Comp GRANTED, COMP REVOKED, COMP EXPIRED, COMP MODIFIED जोड़ें संगठनRepository: add findFirstByIsTopLevelTrue() - संगठनसेवा: ड्रॉप सेटटाइप () कॉल; फ़ील्ड अब isTopLevel द्वारा संचालित हैं
· kamo-internal
नेटवर्क पेज पर उपयोगकर्ता के मूल ऑर्ग के लिए बटन को अनसब्सक्राइब करें
· SecurityService
पंजीकरण पर orgOriginal सेट करें और मेरीनेटवर्क्स में isOriginalOrg को उजागर करें
· kamo-shared-library
पंजीकरण org को ट्रैक करने के लिए उपयोगकर्ता को ओरिजनल फ़ील्ड जोड़ें
· kamo-internal
सदस्य-अनुरोध समर्थन अधिकार गैटिंग और दोहरी मोड टिकट दृश्य
- NavTop: किसी भी समर्थन अधिकार (एजेंट या सदस्य) के लिए समर्थन बटन दिखाएं - समर्थन बटन: सही द्वारा प्रत्येक ड्रॉपडाउन आइटम को गेट करें - टिकट बनाएं / देखें, अनुरोध वेबिनार, मेरा वेबिनार केवल तभी दिखाया गया जब सही हो - SupportTicketListTab: दोहरे मोड - एजेंट विषय के साथ पूर्ण तालिका देखें फ़िल्टर और असाइन-टू-मी टॉगल; सदस्य-रीक्वेस्टर अपने आप को देखते हैं टिकट केवल (createdByMe=true), सरलीकृत कॉलम, न्यू टिकट CTA - समर्थन / page.tsx: गेट टिकट / मेरा वेबिनार / एनालिटिक्स टैब दाएं से - सेटिंग्स पृष्ठ (लेखा, विभाग, एकीकरण, संचालन): CONFIGURE SYSTEM को फिर से निर्देशित गार्ड जोड़ें; सेटिंग्स डैशबोर्ड मेरा खाता खंड CONFIGURE SYSTEM द्वारा
· kamo-shared-library
सदस्य-अनुरोध समर्थन अधिकार जोड़ें (133-136)
गैर-एजेंट सदस्यों के लिए चार नए समर्थन-स्किप किए गए अधिकार जोड़े: ********** CREATE SUPPORT TICKET (134) REQUEST WEBINAR (135) -view MY SCHEDULED WEBINARS (136)
· kamo-internal
सदस्यों और टीम के सदस्यों के टैब से कॉलम फ़िल्टर निकालें
· kamo-internal
सुरक्षा के लिए सिंक अधिकार बटन जोड़ें
बटन केवल तभी दिखाई देते हैं जब ऑर्गनाइजेशन.hasParent झूठ है। कॉल POST/api/security/roles/sync-rights फिर रोल्स टेबल को फिर से लोड करता है।.
· SecurityService
रोलRightsSyncService निकालें और सिंक-दाएं समापन बिंदु जोड़ें
- रोलRightsSyncService: दोनों के लिए भूमिका अधिकार सिंक लॉजिक को केंद्रीकृत करता है ********** टेबल; स्टार्टअप और ऑन-डिमांड - DataLoader: स्टार्टअप पर रोलRightsSyncService.syncAll () के लिए प्रतिनिधि - SecurityRoleController: POST/sync-rights ट्रिगर बिना पुनरारंभ के सिंक

तुम्हारा ब्रह्मांड इंतजार कर रहा है.
मिनटों में मुफ्त शुरू करें. जब भी आप तैयार हों तो उत्पाद जोड़ें - कोई माइग्रेशन नहीं, कोई नया लॉगइन नहीं.
हमेशा के लिए मुफ्त - कोई क्रेडिट कार्ड की आवश्यकता नहीं