परिवर्तन लॉग
क्या नया है.
यह जहाज के रूप में, प्लेटफार्म के हर सुधार.
· kamo-marketing
जोड़ें / requests प्रत्यक्ष नेव लिंक, होमपेज अनुभाग, और योजना सुविधा तुलना पंक्ति
- हेडर: अनुरोध मूल्य निर्धारण और कंपनी के बीच शीर्ष स्तर के प्रत्यक्ष लिंक के रूप में जोड़ा गया - पाद लेख: अनुरोध प्रत्यक्ष दृश्यता के लिए उत्पाद स्तंभ में जोड़ा गया - मूल्य निर्धारण पृष्ठ: बंडलों और फीचर तुलना के बीच कस्टम देव कॉलआउट बैनर - सुविधाएँ पृष्ठ: सुविधा अनुरोध कॉलआउट से पहले CTA - होमपेज: नया फीचर मूल्य निर्धारण और अक्सर पूछे जाने वाले प्रश्न के बीच लिस्ट - JumpToBar: अनुरोध कूद लिंक मूल्य निर्धारण और पूछे जाने वाले प्रश्न के बीच जोड़ा गया - DB: FEATURE REQUESTS समर्थित श्रेणी में प्रति-योजना पाठ मानों के साथ बीजिंग (फ्री: कम्युनिटी वोट, स्टार्टर: वोट और अनुरोध, व्यापार: प्राथमिकता अनुरोध, एंटरप्राइज़: कस्टम देव शामिल) - KamoCRMPricingLoader: FEATURE REQUESTS सुविधा परिभाषा और योजना-फीचर मैपिंग के साथ अद्यतन
· kamo-internal
राउंड-ट्रिप ऐपकॉनफिग्स + सरफेस एप्लाइड-मॉडल सेटिंग्स + प्राइवेट-ऑर्ग टॉगल
- BranchSetupManager: MapbackendModel अब hydrated appConfigs बैकएंड (उपलब्धता + अनुमतकॉमर्स प्रकार प्रति सेवा) द्वारा वापस लौटे इसके बजाय उन्हें लोड पर Not AVAILable करने के लिए रीसेट करने के लिए। पेलोड सहेजें दोनों बच्चे के मॉडल और मास्टर मॉडल प्रवाह के लिए appConfigs तो शामिल हैं प्रति ऐप उपलब्धता और सीआरएम वाणिज्य-प्रकार प्रतिबंध राउंड ट्रिप। मास्टर मॉडल संपादक मैपबैकेंडमॉडल का पुन: उपयोग करता है इसलिए यह समान रूप से व्यवहार करता है। - उपयोगAppliedमॉडल हुक: विस्तारित प्रतिक्रिया प्रकार अब लागू होता है मॉडल की स्केलर सेटिंग्स (allowOwnersViewotherOrgs, allowOwnersPrivateOrgs,) अनुमति देंSubChildOrgs, आयु सीमा, पहचान प्रदातासेटिंग, TeamMemberPayFeesetting), appConfigs नक्शा, orgIsPrivate - इसलिए कोई भी भविष्य के संपादक (फीचर मैनेजर, OAuth config, वाणिज्य बाजार) गेट कर सकते हैं समान रूप से फिर से ड्राइंग के बिना। - निजी क्षेत्र टॉगल: नया प्रॉक्सी मार्ग ************* (PATCH) और एक दृश्यता कार्ड जो शाखा-प्रकार टैब पर स्थित है, गेट द्वारा AllowOwnersPrivateOrgs. जब सक्षम हो जाता है, तो अन्य ऑर्ग मालिकों को यह नहीं देखा जाएगा लिस्टिंग में org। अगले लागू मॉडल के खिलाफ इष्टतमवादी यूआई सामंजस्य ताज़ा करना.
· BillingService
Enforce team-member pay-fees setting at Stripe customer creation
Bumps kamo-shared-library dependency to 1.5.0 so BillingService can resolve the new AppliedModelEnforcementService, and wires team-member vs org pay-fees enforcement into **************** - teamMemberPayFeesSetting == NOT_AVAILABLE: creating a member-specific billing customer (self-pay) is rejected — the org must cover fees. - teamMemberPayFeesSetting == FORCE_ENABLE: creating an org-level customer that would cover team-member charges is rejected — team members must pay themselves. - OPTIONAL: either flow is permitted. Enforcement is best-effort when the org can't be resolved (tooling contexts, legacy data) — falls through to the legacy behavior instead of blocking.
· SecurityService
Wire applied-model enforcement across every controller
Every non-role setting on the applied security model is now enforced at the exact controller boundary it governs, and the scalar settings round-trip cleanly through the master/child model editors so the UI can gate on them. - **************** when branchTypeID is set, look up the branch type to derive the parent org; call assertSubChildOrgAllowed and assertAgeRangeAllowed for both member and team-member age slots before committing. New PATCH /{id}/visibility endpoint lets owners flip Organization.isPrivate, gated by assertCanSetPrivate. getAllOrganizations applies filterVisibleOrgsForViewer so results respect both allowOwnersViewOtherOrgs on the viewer's model and the isPrivate flag on candidates. - **************** call assertAppEnableAllowed / assertAppDisableAllowed so NOT_AVAILABLE apps can't be enabled and FORCE_ENABLED apps can't be disabled. - OAuthConfigController POST/PUT: assertCanManageIdentityProvider blocks provider CRUD when identityProviderSetting == NOT_AVAILABLE. - CommerceMarketController POST/PUT: assertCommerceTypeAllowed rejects a commerce type not listed in the model's appConfig for CRM. - SecurityModelController + MasterModelController: round-trip appConfigs through create/update payloads and the GET responses. New processAppConfigs helper accepts the list form used by the frontend editor. - AppliedModelController: response now includes the full scalar settings block (allowOwnersViewOtherOrgs, allowOwnersPrivateOrgs, allowSubChildOrgs, age ranges, identityProviderSetting, teamMemberPayFeesSetting) and the appConfigs map so frontend editors can gate uniformly. Also surfaces orgIsPrivate so the privacy toggle stays in sync.
· kamo-shared-library
चाइल्डऑर्ग सिक्योरिटी मॉडल पर हर गैर-रोल सेटिंग को लागू करें
एक org के लागू होने पर शेष सेटिंग्स के लिए अंत से अंत प्रवर्तन जोड़ता है सुरक्षा मॉडल। प्रत्येक सेटिंग जो पहले ही पढ़ी गई थी (या गिरा दिया गया) बचाओ) अब एक दृढ़ता पथ है, एक रनटाइम प्रवर्तन सहायक, और एक यूआई इसे उपभोग करने के लिए हुक करें। डेटा परत: - Organization.isPrivate (boolean स्तंभ, डिफ़ॉल्ट झूठ) - org's own दृश्यता ध्वज, नए MasterModelController-gated PATCH के माध्यम से सेट समापन बिंदु। - सेवा उपलब्धता प्रकार enum (OPTIONAL DEFAULT ENABLED/ OPTIONAL DEFAULT DISABLED / NOT AVAILABLE / FORCE ENABLED). - चाइल्डऑर्ग सिक्योरिटी मॉडल ऐप कॉन्फिग इकाई + रेपो + सेवा - प्रति ऐप जारी रहता है उपलब्धता (और सीआरएम की अनुमति वाणिज्य प्रकार) पहले सेव पर गिरा दिया। ********** राउंड-ट्रैप नई इकाई। रनटाइम प्रवर्तन: - एप्लाइडमॉडल प्रवर्तन सेवा कॉलर्स द्वारा उपयोग की जाने वाली प्रत्येक जांच को समेकित करती है: SubChildOrgAllowed, agerangeAllowed दावा, ************* पहचानकर्ता होमपेज दावाTeamMemberCanselfPayFee, isTeamMemberPayFeeForced / अवरुद्ध, होमपेज getDefaultEnabledAppsForChild, urgeCommercetypeAllowed, GetAllowedCommercetypes. Null सुरक्षित: "नहीं लागू मॉडल" सब कुछ परमिट। - चाइल्डऑर्गटेम्पलेटिस्टिंग सर्विस ने ओर्गफेचर पंक्तियों को बीज से भी बढ़ाया माता-पिता का ऐपConfig डिफ़ॉल्ट (FORCE ENABLED) और OPTIONAL DEFAULT ENABLED) नए बच्चे के अंग पर, इसलिए नवनिर्मित orgs सही डिफ़ॉल्ट सतह के साथ आते हैं।.
· kamo-internal
सदस्य भूमिका-साइनमेंट यूआई में अनिवार्य सिस्टम भूमिकाओं को लॉक करें
- PublicProvider: प्रवेश करने पर शाखा टाइपआईडी / मास्टरमॉडलआईडी स्वीकार करें संगठन पेलोड इसलिए शाखा-प्रकार टैब विश्वसनीय रूप से गेट कर सकते हैं "Edit Master Model" बटन (पहले जैक्सन सीरियलाइजेशन पर निर्भर किया गया) प्रोप टाइप चेक के माध्यम से बह रहा है। - रोल्सपर्मिशन टैब: रोल चेकबॉक्स ग्रिड अब आवश्यक सिस्टम को चिह्नित करता है सदस्य के प्रकार और मालिक ध्वज के आधार पर जाँच और अक्षमता के रूप में भूमिका: * सदस्य-प्रकार के सदस्य: " सदस्य" की आवश्यकता है। * टीम सदस्य-प्रकार के सदस्य: "टीम सदस्य" की आवश्यकता है। * टीम सदस्य-typed मालिकों: "Administrator (full Access)" अतिरिक्त रूप से है आवश्यक है। एक "आवश्यक" चिप और व्याख्यात्मक संकेत बाधा को दिखाई देते हैं संपादक। एक अनिवार्य भूमिका को टॉगल करने का प्रयास करना एक नो-ऑप है; बैकेंड MemberSecurityController में सामंजस्य किसी भी तरह से इसे फिर से जोड़ना होगा।.
· SecurityService
Enforce system-role assignment and auto-admin for team-member owners
MemberSecurityController now enforces the three assignment invariants defined in the brainstorm spec: - saveMemberSecurity: before persisting the caller's requested roleIds, augments the set with the mandatory system role(s) based on member type: Member-typed members always get roleMemberID; Team-Member-typed members always get roleTeamMemberID; Team-Member owners additionally always get roleAdminID. LinkedHashSet preserves caller ordering while deduping. - updateMemberAccess: when the owner flag toggles, the Administrator role is added or removed on the team-member to keep role assignments in sync with ownership. Rights-applied recalculation runs in the same transaction so downstream reads see the updated effective permissions immediately.
· kamo-shared-library
सदस्य अधिकार संकल्प के लिए टेम्पलेट बल नियम और DEFAULT गिरावट लागू करें
************* अब लागू ओवरले मौजूदा कैस्केड (ऑर्ग रोल्स) के शीर्ष पर मॉडल का 4 डिफ़ॉल्ट-रोल टेम्पलेट → विभाग → नौकरी का शीर्षक → सदस्य: - रोल-टाइप-विशिष्ट FORCE GRANTED/FORCE NUKE सभी कैस्केड स्तरों पर जीतता है। टेम्पलेट सदस्य प्रकार द्वारा चुना जाता है: टीम सदस्य मालिकों का उपयोग एडमिनिस्ट्रेटर, टीम सदस्य TEAM MEMBER का उपयोग करते हैं, सादे सदस्य MEMBER का उपयोग करते हैं। - DEFAULT टेम्पलेट FORCE मूल्यों जब भूमिका प्रकार टेम्पलेट कैस्केड पर जीत उस अधिकार के लिए कोई बल नियम नहीं है (प्रति Q7 पूर्ववर्ती)। - DEFAULT गैर-बल मूल्यों (GRANTED/NUKE) के लिए अंतिम ऑनलाइन रक्षा के रूप में कार्य करते हैं वह अधिकार जिसने पूर्ण कैस्केड के बाद नोट स्पेफीड को हल किया। एप्लाइडमॉडल Resolver Service को @Autowired (required=false) के रूप में इंजेक्ट किया जाता है, इसलिए मौजूदा इकाई-परीक्षण तारों कि केवल दो निर्माता-प्रबंधक का निर्माण स्थितियां काम करना जारी रखती हैं, विरासत नो-फोर्स-नियम पथ में गिरावट।.
· kamo-internal
मास्टर मॉडल संपादक, भूमिका टेम्पलेट्स और बल-rule gating जोड़ें
यूआई में नई शाखा-प्रकार की सुरक्षा मॉडल की सतह: - शाखा-प्रकार टैब एक "Edit Master Model" बटन (छिपा हुआ जब) प्राप्त करता है org एक branchTypeID सौंपा गया है) कि मास्टर में मॉडल संपादक खुलता है मोड: कोई नाम फ़ील्ड नहीं, कोई शाखा-प्रकार चिप नहीं, हिट / मास्टर-मॉडल बचाओ। - मॉडल संपादक (दोनों ऐड-चिल्ड-मॉडल और संपादन-मास्टर-मॉडल) एक नया लाभ "Default Security रोल्स" अनुभाग के बाद "Allowed Apps", टैब के लिए प्रशासक / टीम सदस्य / सदस्य / DEFAULT और 5-मूल्य सेटिंग्स (FORCE GRANTED, GRANTED, NOT SPECIFIED, FORCE NUKE, NUKE). नया उपयोगAppliedमॉडल () हुक एक बार /api/security/applied-मॉडल मिलता है and exposes isForced(rightName, roletype) for consuming editors. - सुरक्षा भूमिकाओं, विभागों, नौकरी शीर्षकों और प्रति सदस्य भूमिकाओं की अनुमतियां पृष्ठों को लागू टेम्पलेट्स द्वारा बंद अधिकार छिपाने: * सुरक्षा-रोल: सिस्टम भूमिकाएं उनके मिलान टेम्पलेट + DEFAULT का उपयोग करती हैं; कस्टम भूमिकाएं केवल DEFAULT (Q11 उत्तर A) का उपयोग करती हैं। * विभाग + नौकरी-शीर्षक: केवल DEFAULT (गैर-रोल-विशिष्ट)। * सदस्य पृष्ठ: सदस्य-प्रकार टेम्पलेट (TEAM MEMBER बनाम MEMBER) + DEFAULT (Q8 उत्तर C, type-first मूल्यांकन आदेश) नए प्रॉक्सी मार्ग: /api/security/master-model (GET/PUT), /api/security/applied-मॉडल (GET).
· SecurityService
Master-model + applied-model endpoints and template-aware org seeding
Adds the controllers that surface the new branch-type security flow: - /api/security/master-model (GET/PUT) manages the current org's master model; only writeable when Organization.branchTypeID is null. - /api/security/applied-model (GET) resolves which model governs this org and returns per-template force-rule maps for frontend gating. - SecurityModelController round-trips the 4 default-role templates as part of its existing create/update payloads. - OrganizationController propagates the new branchTypeID from the request body and seeds the new org's 3 system roles from the applied model's templates via ChildOrgTemplateSeedingService.
· kamo-shared-library
मास्टर मॉडल, डिफ़ॉल्ट भूमिका टेम्पलेट्स, और लागू मॉडल संकल्पक जोड़ें
नई शाखा-प्रकार सुरक्षा मॉडल प्रवाह के लिए डेटा परत का परिचय देता है: - संगठन लाभ nullable BranchTypeID और masterModelID कॉलम। नई रोलराइटिंग 5 मूल्यों के साथ प्रकार enum (force GRANTED), ग्रेनेड, नोट स्पेफीड, FORCE NUKE, NUKE) टेम्पलेट परत सेटिंग के लिए। - न्यू डिफॉल्टRoletype enum (ADMINISTRATOR, TEAM MEMBER, MEMBER, DEFAULT) प्रत्येक चाइल्डऑर्ग सिक्योरिटी मॉडल से जुड़े 4 भूमिका टेम्पलेट्स के लिए। - नई संस्थाएं **************** और **************** प्लस उनके प्रस्ताव, सेवा, और डीटीओ - एप्लाइडमॉडलर सर्विस उस मॉडल को हल करती है जो किसी दिए गए ऑर्ग को नियंत्रित करता है (branchtype-inherited or master) और बल-rule lookup को उजागर करता है। - चाइल्डऑर्गटेम्पलेटिस्टिंग सर्विस के बीज नए बच्चे ऑर्ग्स की 3 प्रणाली भूमिकाओं के साथ लागू मॉडल के टेम्पलेट्स से ग्रांटेड / एनयूकेई मान; बल मान स्टे टेम्पलेट में और रनटाइम पर लागू होते हैं। एंड-यूज़र OrgRoleRight 3-मूल्य रोलRightSettingtype — का उपयोग जारी है बल मान सख्ती से एक टेम्पलेट परत अवधारणा है।.
· kamo-internal
सुरक्षा मॉडल संपादक के लिए शाखा प्रकार चिप इनपुट फ़ील्ड जोड़ें
- ब्रांचटाइप चिपफील्ड विद कलर्ड डॉट टॉगल, एडिट-ऑन-क्लिक लेबल और एक्स डिलीट - BranchTypeEditDialog नाम/description संपादन के लिए - स्वचालित ड्रॉपडाउन जीईटी / एपीआई / सुरक्षा / फ्रेंच-प्रकार से खींचता है, वर्तमान मॉडल प्रकारों को बाहर करता है, क्रॉस-मॉडल प्रकार के लिए स्रोत मॉडल दिखाता है - संभाल सेवमॉडल ब्रांच प्रकार भेजता है और हटा देता है DBranchTypeIds in PUT/POST पेलोड - सूची तालिका को रंगीन डॉट चिप्स के साथ ब्रांच टाइप कॉलम मिलता है - लोडमॉडल मैप्स ब्रांचटाइप बैकेंड प्रतिक्रिया से
· kamo-login
रोलराइट टाइप से प्रबंधकों को सही निकालें
· kamo-register
रोलराइट टाइप से प्रबंधकों को सही निकालें
· kamo-internal
सभी फ्रंटेंड संदर्भों से सही प्रबंधक निकालें
· kamo-shared-library
रोलराइट टाइप enum से MANAGE USERS राइट (id=19) निकालें
· kamo-internal
शाखा-प्रकार सुरक्षा एपीआई मार्ग जोड़ें
· SecurityService
Wire branch types into security model CRUD endpoints
· kamo-shared-library
पूर्ण फ़ील्ड और शाखा प्रकार के साथ चाइल्डऑर्ग सिक्योरिटी मॉडल डीटीओ का विस्तार करें
· kamo-shared-library
ऑर्गेनो टाइप सर्विस जोड़ें
· kamo-shared-library
OrganchTypeRepository जोड़ें
· kamo-shared-library
जोड़ें ऑर्गब्रांचटाइप डीटीओ
· kamo-shared-library
OrgBranchtype इकाई जोड़ें
· kamo-internal
अद्यतन BranchSetupप्रबंधक उपशीर्षक संदर्भ गतिशील शाखा प्रकार लेबल के लिए
· kamo-internal
डायनामिक {branchLabel} के लिए ब्रांच सेटअप टैब का नाम बदलकर ब्रांच-प्रकारों में यूआरएल को अपडेट किया गया।
· kamo-login
हर असफल लॉगिन प्रयास के बाद कैप्चा को रीसेट करें
उपयोगकर्ता को फिर से सत्यापित करना चाहिए कि प्रत्येक गलत पासवर्ड के बाद वे मानव हैं। Calls विजेट.reset() and clears CapchaVerified/payload state on क्रेडेंशियल विफलताओं और नेटवर्क त्रुटियों दोनों।.
· EmailService
Auto-inject logoUrl, logoSimpleUrl, and orgName variables at send time
EmailTemplateService now merges base variables (logoUrl, logoSimpleUrl, orgName) derived from the org's primary domain before rendering, so all transactional templates can reference {{logoUrl}} and {{logoSimpleUrl}} without callers needing to pass them explicitly. Caller-supplied vars still take precedence.
· kamo-internal
MyAccountTab में उपयोगकर्ता स्तर के क्षेत्रों और पासवर्ड परिवर्तन अनुभाग के लिए अनुमति गेट जोड़ें
· kamo-internal
सदस्य सेटिंग्स पेज के लिए एक्सेस गेट और MANAGE MEMBER SECURITY टैब गार्ड जोड़ें
· kamo-internal
Change-password Next.js API प्रॉक्सी मार्ग जोड़ें

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