विषयवस्तु पर जाएँ
KAMOUniverse

परिवर्तन लॉग

क्या नया है.

यह जहाज के रूप में, प्लेटफार्म के हर सुधार.

  1. · kamo-shared-library

    API SIGNATURE api-key स्कोप + EsignGenericEnvelope.origin

    योजक, कोई संस्करण टक्कर: - ApiKeyScope.API SIGNATURE - प्रोग्रामेटिक ई-सिग्नेचर एपीआई (बिजनेस) को गेट करता है। - EsignGenericEnvelope.origin (EsignUsageOrigin, nullable) - रिकॉर्ड करता है कि क्या एक लिफाफे को एपीआई बनाम मैनुअल के माध्यम से बनाया गया था, इसलिए हस्ताक्षर मीटर को सही ढंग से पूरा किया गया। (API $ 0.20 ओवरेज की ओर गिना जाता है; MANUAL कभी नहीं करता)। कॉलम को prod में जोड़ा गया idempotent ALTER के माध्यम से पहले।.

  2. · kamo-internal

    दस्तावेज़ संपादक में भेजें-for-signature कार्रवाई + लिफाफा स्थिति

    टेम्पलेट संपादक हेडर के लिए 'सैंड फॉर हस्ताक्षर' बटन जोड़ें जो एक खुलता है प्राप्तकर्ताओं को दस्तावेज़ भेजने और हस्ताक्षर स्थिति को ट्रैक करने के लिए संवाद करें, कॉल करना नई ESigService/api/esig/envelopes इंजन। - प्रॉक्सी रूट्स (OTK उत्पन्न करने के माध्यम से, टेम्पलेट्स प्रॉक्सी को प्रतिबिंबित करता है): POST/GET/api/esig/envelopes, GET [uid], POST [uid]/void, पोस्ट ************* - SendForSignatureDialog: टैब भेजें (आवश्यक पंक्तियां, संदेश, समाप्ति) + स्टेटस टैब (per-template लिफाफा सूची, स्टेटस चिप्स, void/resend) - बटन अक्षम होने पर टेम्पलेट में बदलाव नहीं हुआ है - i18n next-intl के माध्यम से ****************

  3. · ESigService

    जेनेरिक लिफाफा बनाने/सेंड इंजन (सेंडर साइड)

    OTK-authed /api/esig/envelopes API kamo-internal ड्राइव को भेजें हस्ताक्षर के लिए दस्तावेज़, उसी साझा-lib संस्थाओं का पुन: उपयोग जनता एपीआई पढ़ने पर हस्ताक्षर करना - ऋण के लिए additive, org-agnostic प्रतिस्थापन- युग्मित KamoLOS/EsignClient पथ बनाते हैं। - POST एक टेम्पलेट से निर्मित और भेजा गया: EsignGenericEnvelope (AD HOC) बनाता है, एक EsignEnvelopeRecipient per signer with a fresh hashed access token, and प्रत्येक/s/{env}/{recipient}?t={token} साइनिंग लिंक (सर्वश्रेष्ठ-effort) - प्राप्तकर्ता स्थिति के साथ GET सूची (लिफा डैशबोर्ड) + GET {uid} विस्तार - POST {uid}/void and {uid}/recipients/{rid}/resend (token) - Invite + प्रतिनिधि ईमेल साझा EsignEmailClient.sendInvite; हस्ताक्षरकर्ता-मार्ग /s/{env}/{recipient} को सही लिंक

  4. · ESigService

    हस्ताक्षर करने के लिए सार्वजनिक हस्ताक्षर API इंजन

    /api/esig/public/* signing API to the kamo-signer app call, प्रीव्यू-स्टब से लाइव साइनर को एक काम करने वाले बैकेंड में बदल देता है। - मान्य (recipient token -> हस्ताक्षरकर्ता सत्र), सत्र, सहमति, स्टेपअप / स्टार्ट + सत्यापित (email OTP), जमा, डिकोडर, प्रतिनिधि, दस्तावेज - रेडिस समर्थित हस्ताक्षरकर्ता सत्र (X-Signer-Session), स्टाफ OTK से अलग - वास्तविक Img / MinIO पाइपलाइन के माध्यम से दस्तावेज़ बाइट्स (imgId का अनुवाद करें -> परिवर्तित-PDF ImgDat -> MinIO, कभी तार नहीं /api/imaging/blobs stub - पीडीएफबॉक्स सपाट: ओवरले फील्ड मान + डिजाइन पर हस्ताक्षर चित्र निर्देशांक, ई-SIGN/UETA लेखा परीक्षा प्रमाण पत्र पृष्ठों का पालन; हस्ताक्षरित PDF संग्रहीत MinIO में लिफाफे के तहत हस्ताक्षर किए गएBlobId ने SHA-256 रिकॉर्ड किया - लगभग Esignsignature लेखा परीक्षा पंक्तियाँ + EsignField मूल्य दृढ़ता ************* एपीआई-origin पैमाइश # 3 / # 4 में होती है - पहले पेंट थीमिंग के लिए संगठन + ऑर्डोमेन से ब्रांडिंग हल - OTKAuth Filter बाईपास / एपी / एएसआईजी / सार्वजनिक (token-authed, स्टाफ OTK नहीं) केवल Additive; मौजूदा /api/esig/templates/* untouched.

  5. · kamo-internal

    संगठन टैब में मंच उत्पाद टॉगल

    मंच उत्पाद पदनाम जहां यह संबंधित है सतह — मंच → संगठन प्रति ऑर्ग (शीर्ष स्तर के ऑर्ग के लिए अक्षम) एक गेटेड स्विच जोड़ता है, एक पुष्टिकरण संवाद जिसमें पात्रता प्रभाव की व्याख्या होती है, एक 'प्लेटफॉर्म उत्पाद' चिप, नो-कैटलोग चेतावनी, आशावादी अद्यतन और त्रुटि स्नैकबार। सभी तार अगले-intl के माध्यम से।.

  6. · BillingService

    संगठन का प्रबंधन करें.isPlatform

    प्लेटफार्मलेखन मार्केट; नया PUT ******************* (platform-admin gated) ध्वज सेट करता है और org के सदस्यों के हकदारी (उनके उत्पाद) को अमान्य करता है जड़, और इस प्रकार सुविधाओं, परिवर्तन). शीर्ष स्तर का org निहित जड़ है और नहीं Toggled.

  7. · kamo-shared-library

    Explicit Organization.isPlatform

    एक स्पष्ट के साथ व्युत्पन्न 'एक SUBSCRIPTION बाज़ार' का स्वामित्व रखता है, व्यवस्थापक सेट स्वामित्व ध्वज। एक मंच उत्पाद (उदाहरण के लिए sign.pink) एक सफेद लेबल है उत्पाद प्लेटफॉर्म संचालित होता है और इसकी अपनी पात्रता जड़ होती है; एक ग्राहक org — यहां तक कि एक भी अपने ग्राहकों को फिर से बेचने के लिए अपने स्वयं के SUBSCRIPTION बाजार चल रहा है - नहीं, और मंच के हकदार रहता है। EntitlementRootResolver अब पढ़ता है (साथ ही यह स्पष्ट शीर्ष स्तर की जड़) और अब बाजार पर निर्भर नहीं है स्वामित्व। Adds is platform product स्तंभ (BOOL DEFAULT FALSE) - की आवश्यकता है KamoInitializer सेवाओं है कि संगठन की तैनाती का चयन करने से पहले इसे बनाने के लिए।.

  8. · SecurityService

    उत्पाद जड़ के लिए दायरा सदस्य पात्रता, नहीं KamoCRM

    Entitlementservice अब प्रत्येक सदस्य की पात्रता जड़ को माध्यम से हल करती है EntitlementRootResolver (सबसे कम बाजार के स्वामित्व वाले पूर्वजों या स्वयं के बजाय) शीर्ष स्तर org के लिए चलना। फ्री-टियर फ्लोर और प्रोडक्ट-एक्सेस फ्लैग उस जड़ से व्युत्पन्न, और isKamoCrmSubscription सदस्यता बन जाता हैGrantsRootAccess (प्लान-ऑर्ग बनाम रूट, कभी बिलिंग खाता नहीं)। सदस्य पात्रता लाभ उत्पादRootOrgId तो उपभोक्ताओं को सही उत्पाद के खिलाफ प्रवेश द्वार। बिलिंगसेटअपसेवा बाजार को दर्शाता है + न्यू ऑर्ग के उत्पाद से फ्री प्लान शीर्ष स्तर के KamoCRM org पर बिलिंग खाता रखने के दौरान रूट - यानी। माता-पिता बिलिंग का मालिक है, बच्चा उत्पाद / बाजार के मालिक हो सकता है। Behaviour अपरिवर्तित है जब तक कि एक org वास्तव में अपने बाजार का मालिक नहीं है (KamoCRM) आज केवल बाजार मालिक, इसलिए हर सदस्य अभी भी इसे हल करता है।.

  9. · kamo-shared-library

    उत्पाद-रूट ओरग द्वारा पात्रता को हल करें, प्लेटफ़ॉर्म टॉप-लेवल नहीं

    परिचय EntitlementRootResolver: निकटतम बाजार के स्वामित्व वाले पूर्वज या स्वयं एक org (इस उत्पाद जड़) की, मंच शीर्ष स्तर पर वापस गिर गया। यह आप किस उत्पाद का हकदार हैं * (मार्केट / प्लान मालिक) से * कौन भुगतान करता है* (बिल्लिंग खाता) और एकल शीर्ष स्तरीय ओरग से, इसलिए एक सफेद लेबल उत्पाद org like sign.pink कि अपने खुद के बाजार का मालिक अपनी पात्रता जड़ बन जाता है। ************* अब ऑर्ग के फ्री बेसलाइन को सोर्स करता है उत्पाद जड़ (not find FirstByIsTopLevelTrue), और योजनाओं द्वारा योजनाओं को हल बिलिंग-खाता ऑर्ग के बजाय उत्पाद / बाजार org। बैकवर्ड संगत: कामoCRM वर्तमान में एकमात्र बाज़ार मालिक है, इसलिए हर मौजूदा org इसे ठीक से पहले के रूप में हल करता है - व्यवहार केवल एक बार एक बार में बदल जाता है उप-त्रि अपने बाजार का मालिक है। योजक; कोई संस्करण टक्कर नहीं।.

  10. · kamo-shared-library

    लिफाफे प्राप्तकर्ता, फील्ड वैल्यू, प्राप्तकर्ता स्टेटस संस्थाओं को जोड़ें

    इन-प्रगति प्रतीक मॉडल में जाँच करें: EsignEnvelopeRecipient (+repo), EsignFieldValue (+repo), EsignRecipientStatus, और एक ESignSignerType अद्यतन। योजक; कोई संस्करण टक्कर नहीं।.

  11. · kamo-shared-library

    प्रति हस्ताक्षर उपयोग पैमाइश के लिए EsignUsageRecord जोड़ें

    नए append-only उपयोग इकाई (mirrors AiUsageRecord) हस्ताक्षर पर उत्सर्जित पूरा होना केवल API-origin हस्ताक्षर एक योजना के मासिक रूप में शामिल की ओर गिनती करते हैं कोटा + ओवरेज (sign.pink Business: 40/mo शामिल, फिर $0.20 प्रत्येक); MANUAL एकल उपयोगकर्ता हस्ताक्षर दर्ज किए जाते हैं लेकिन कभी बिल नहीं किया जाता है। बिलिंग अवधि (YYYYYYY-MM) मासिक एकत्रीकरण का समर्थन करता है; रिपोर्ट to stripe स्ट्रिप उपयोग प्रस्तुतीकरण बनाता है आदर्श। केवल योजक; कोई संस्करण टक्कर नहीं।.

  12. · ConversionService

    Preserve पहलू अनुपात, कभी नहीं खिंचाव गैर वर्ग लोगो

    फवीकॉन पीएनजी / आईसीओ फ्रेम का निर्माण रख-रखाव के साथ किया गया था। किसी भी गैर वर्ग लोगो को एक विकृत वर्ग में। एक पर लोगो को फिट करें इसके बजाय पारदर्शी वर्ग कैनवास, पहलू अनुपात का संरक्षण, तो favicons देखो किसी भी अपलोड किए गए लोगो के आकार के लिए एक वर्ग स्रोत छवि की आवश्यकता के बिना सही है।.

  13. · KlusterServices

    Pre-seed sign.pink + www.sign.pink in STATIC DOMAINS

    sign.pink एक नया शीर्ष डोमेन है (उपभोक्ता ई-हस्ताक्षर ब्रांड / व्हाइट लेबल कामो किरायेदार org). पूर्व-बीज एपेक्स + www इसलिए Let's Encrypt cert पहले मौजूद है पहले एचटीटीपी यातायात; *.sign.pink subdomains प्राप्त प्रति FQDN certs गतिशील रूप से जब पहली बार हिट होता है, तो एक ही तंत्र के रूप में *.priceturbo.com.

  14. · kamo-signer-monorepo

    न्यू मोनोरेपो + मोबाइल-first e-signature signing app

    टर्बोरेपो + pnpm वर्कस्पेस मोनोरेपो आवास पुन: प्रयोज्य ई-सिग्न पैकेज kamo-internal प्लस से निकाला गया एक नया, अति-पॉलिश kamo-signer ऐप — दूसरा-पार्टी साइनिंग अनुभव ( डिजाइनर / लेखक पक्ष में रहता है) kamo-internal). पैकेज: @kamo/esign-core type + DesignData wire contract, zod स्कीमा, runtime फील्ड सत्यापन, साइनस्टोर (zustand) @kamo/esign-ui इंटरैक्टिव फील्ड इनपुट + read-only फील्ड/annotation रेंडर (कैमो-आंतरिक फील्ड कंट्रोल से फोर्क) @kamo/doc-render बंडल pdf.js page renderer (self-hosted worker, no CDN), उत्तरदायी, रोटेशन सही ओवरले @kamo/theme pertenant branding bootstrap (getthemePath, ThemeLogo) गतिशील मेटालोडर @kamo/api-client ब्राउज़र + सर्वर Redis/forwarding सहायक @kamo/config साझा tsconfig / tailwind preset / eslint ऐप (apps/kamo-signer): - token-scoped हस्ताक्षरकर्ता auth (SIGNSESH httpOnly सत्र, BFF रूट हैंडलर) स्वागत है -> सहमति (ESIGN/UETA) -> EIDAS AES step-up OTP -> निर्देशित संकेत -> खत्म -> पूरा होना, सभी चरणों एनिमेटेड (फ्रेमर-मोशन, कम गति) जागरूक), मोबाइल-पहली डेस्कटॉप के बराबर, WCAG-minded - हस्ताक्षर कैप्चर सूट: ड्रॉ / टाइप (script fonts) / अपलोड / अपनाने-सभी - बहु-दस्ताव, डिकोडर, प्रतिनिधि / प्रतिनिधि, पूर्ण i18n (next-intl, 22 स्थानीय लोगों) - रनेबल पूर्वावलोकन मोड (कोई बैकएंड की आवश्यकता नहीं) + /.forgejo + /k8s (HostRegexp) *, टर्बो-prune Dockerfile)

  15. · kamo-internal

    पूर्ण-चौड़ाई उद्यम लाइव पूर्वावलोकन के साथ फिर से लिखना

    लोन उत्पादफॉर्म एक एकल संकीर्ण कॉलम (अधिकतम चौड़ाई: 880) था जिसमें हार्डकोडेड था हर जगह अंग्रेजी। अब प्रस्ताव पृष्ठ के समान उद्यम पैटर्न का उपयोग करता है: लेआउट: - ब्रेडक्रंब, बैक तीर, टाइप बैज के साथ पूर्ण-चौड़ाई ढाल हेडर - दो कॉलम ग्रिड (6fr / 6fr) lg + पर, नीचे एकल स्तंभ - दाएं पर बाएं, लाइव "उत्पाद पूर्वावलोकन" पर फॉर्म फॉर्म साइड: - विवरण के साथ ToggleButtonसमूह के रूप में दयालु चयनकर्ता (Installment बनाम LOC), एक ड्रॉपडाउन में दफन नहीं है - यह संरचनात्मक विकल्प है जो फिर से आकार देता है बाकी के रूप में, इसलिए यह प्रमुखता के लायक है - आइकन के साथ अनुभाग ब्लॉक (Basics · मूल्य निर्धारण · सीमाएं और शर्तें · अनुपालन) - दर % के रूप में दर्ज, तार पर बीपीएस में परिवर्तित (कोई और अधिक नहीं "3600 = 36%") - अगले-intl t () के माध्यम से सभी फ़ील्ड लेबल - डे-काउंट टूलटिप एसीटी 365 बनाम एसीटी 360 की व्याख्या करता है पूर्वावलोकन पक्ष: - हीरो कार्ड: प्रकार चिप, उत्पाद कोड चिप, नाम, शीर्षक, विवरण - 4-टाइल आँकड़े ग्रिड: दर, उत्पत्ति, देर से शुल्क, NSF शुल्क - सीमाएँ और शर्तें ग्रिड (kind-aware: सीमा + किस्त के लिए आवृत्ति, ************* LOC के लिए - नमूना प्रस्ताव कार्ड (स्थापना): मासिक भुगतान, कुल ब्याज, मूल सीमा के मध्य बिंदु पर कुल लागत, नमूना उत्पत्ति - अनुपालन चिप्स: अनुमति देने वाले राज्यों (24 + अतिप्रवाह चिप), ऑटोपे आवश्यक + छूट, वचनबद्ध टेम्पलेट बाइंडिंग - फुटर नोट यह बताता है कि यह उत्पाद प्रस्ताव पृष्ठ पर कैसे बहता है लोन प्रोडक्टफॉर्म अब नए और संपादित पृष्ठों दोनों को लपेटता है। पेज रैपर बाजार में बिछुआ तो ब्रेडक्रंब साफ तरीके से हल करता है।.

  16. · kamo-internal

    लाइव पूर्वावलोकन फलक के साथ दो कॉलम लेआउट

    न्यू-ऑफर पेज व्यापक स्क्रीन पर एक लंबा स्तंभ था - आधा बर्बाद viewport. अब बाएं (5fr) और एक पर फॉर्म के साथ सीएसएस ग्रिड का उपयोग करता है दाएं (7fr) पर लाइव "ऑफर पूर्वावलोकन" फलक जो ऑपरेटर के रूप में अद्यतन करता है प्रकार। छोटी स्क्रीन पर सिंगल कॉलम (< lg)। फॉर्म साइड: - आइकन के साथ अनुभाग ब्लॉक (उत्पाद · उधारकर्ता · राशि · कस्टम शर्तें) - बोरोवर फील्ड्स एक कॉम्पैक्ट में लंबवत (सदस्य आईडी + राज्य) स्टैक करते हैं अब प्रस्तुतीकरण कि क्षैतिज अंतरिक्ष पूर्वावलोकन के लिए आरक्षित है पूर्वावलोकन पक्ष (केवल जब किसी उत्पाद को चुना जाता है): - ग्रेडिएंट पृष्ठभूमि, टाइप चिप, उत्पाद का नाम और एक के साथ हीरो कार्ड मानव पठनीय हेडलाइन ("$5,000 · 12 महीने की किस्त · 14.99% एपीआर" / "$25,000 ऋण की लाइन · 9.99% दर") - 4-टाइल आँकड़े ग्रिड: प्रिंसिपल, दर, मासिक भुगतान, अवधि (स्थापना) या मूल, दर, अवधि, पुनर्भुगतान अवधि (LOC) - शुल्क टूटने (origination/late/NSF/annual) जब एक "कस्टम" चिप के साथ ओवरराइड लागू होता है - लागत सारांश पैनल: नेट डिस्बर्स्ड, कुल ब्याज, कुल लागत - Amortization अनुसूची peek: पहले 3 + पिछले 3 पंक्तियों के साथ एक "{N} अधिक भुगतान..." शर्तों के लिए अंतर पंक्ति > 6 महीने - TILA रिमाइंडर नोट बैकेंड को समझाने के लिए सही APR + builds को computes वास्तविक अनुसूची + भेजने पर प्रकटीकरण प्रस्तुत करता है सभी गणित क्लाइंट-साइड स्ट्रेट-लाइन amortization (P × r × (1+r) ^n / ((1+r)^n -1) - एक वफादार पूर्वावलोकन, अंतिम खुलासा नहीं किया APR। बैकएंड अभी भी सत्य का मालिक है।.

  17. · kamo-internal

    पोलिश न्यू-ऑफर पेज - खाली राज्य, LOC बैज, कस्टम शर्तें

    तीन UX अंतराल पहले रिफैक्टर के बाद प्रस्ताव पृष्ठ था: 1. खाली राज्य। जब एक बाजार में अभी तक कोई ऋण उत्पाद नहीं है, तो ड्रॉपडाउन का इस्तेमाल किया जाता है चुपचाप खाली करने के लिए और ऑपरेटर को यह नहीं पता था कि क्या करना है। अब एक नायक खाली राज्य (आइकॉन, हेडलाइन, किस्त पर प्राइमर के साथ प्रतिस्थापित LOC बनाम, और एक "क्रिएट लोन उत्पाद" CTA ने उत्पादों / नए प्रवाह के लिए मार्ग दिया। 2. LOC बनाम किस्त दिखाई नहीं देता है - दोनों समान रूप से दिखाई देते हैं उत्पाद गिरावट। एक रंगीन चिप (LOC = नीला + दोहरा आइकन) जोड़ा गया, किस्त = ग्रीन + वॉलेट आइकन) ने दोनों को चयनित मूल्य में प्रस्तुत किया और प्रत्येक ड्रॉपडाउन विकल्प के अंदर, विकल्प में उत्पाद विवरण। 3. "बंद शर्तों" ब्लॉक को भ्रमित रूप से नामित किया गया था - यह अपरिवर्तनीय नहीं है किसी भी तरह से ओवरराइड करने के लिए। एक खुलने योग्य "कस्टम शर्तें" पैनल जोड़ा गया जो ब्याज दर के लिए प्रति-प्रस्ताव ओवरराइड्स को उजागर करता है, एपीआर का खुलासा करता है, और उत्पत्ति शुल्क (रिलेशनशिप प्राइसिंग, हार्डशिप वर्कआउट्स, प्रचार मूल्य निर्धारण). जब सेट किया जाता है, तो लॉक-टर्म्स कार्ड नेत्रहीन रूप से हड़ताल करता है। उत्पाद मूल्य और ओवरराइड दिखाता है (जैसे 14.99% → 11.99%) तो ऑपरेटर वास्तव में क्या जारी किया जाएगा देखता है। बैकेंड समर्थन KamoLOS 0e80393 में धकेल दिया; प्रकार losApi.ts में बढ़ाया इतना ओवरराइड फील्ड्स का फ्लो फॉर्म ऑफड्राफ्ट के माध्यम से होता है।.

  18. · kamolos

    दर, एपीआर और उत्पत्ति शुल्क के लिए प्रति-बंद ओवरराइड

    लोनOfferCreateRequest लाभ तीन वैकल्पिक फ़ील्ड — interestRateBpsOverride, AprBpsOverride, उत्पत्तिFeeAmountOverride. बनानाड्रॉफ्ट जब उन्हें लागू करता है सेट और अन्यथा उत्पाद स्नैपशॉट पर वापस गिर जाता है। मामलों का उपयोग करें: संबंध मूल्य निर्धारण (रिलीट उधारकर्ताओं के लिए दर किकबैक), हार्डशिप वर्कआउट्स (waived) उत्पत्ति), एक बंद प्रचार प्रदान करता है। किस्त उत्पादों के लिए, केवल ब्याजRateBpsOverride सामान्य पथ में है - APR को रेट + फीस + शेड्यूल से गणना की जाती है। AprBpsOverride के लिए उजागर किया गया है दुर्लभ मामला स्पष्ट रूप से खुलासा किया गया APR गणना से भिन्न होना चाहिए। लेखा परीक्षा: प्रत्येक ड्राफ्ट (offer SENT/ACCEPTED के साथ समान) के लिए offer DRAFTED लिखते हैं। लॉग्स स्पष्ट ओवरराइड मान बनाम उत्पाद डिफ़ॉल्ट तो निशान पुनर्निर्माण कर सकते हैं क्या प्रति व्यक्ति बनाम निर्धारित किया गया था।.

  19. · kamo-internal

    एक्सपोज़ PERSONAL LOANS in commerce-type & सगाई pickers

    PERSONAL LOANS को COMMERCE TYPES और EngagementType सूचियों में जोड़ता है, इसलिए नए KamoLOS व्यक्तिगत ऋण बाजार से बनाया जा सकता है। बाज़ार/संपादित पृष्ठ, इसे QuickActionsBar (with /commerce/personal-loans/news) में डालता है। मार्ग), और यह पाइपलाइन सगाई के प्रकार फिल्टर और विन्यास में शामिल हैं।.

  20. · kamo-internal

    T6+T7 frontend polish + org reports + auto-pay UI

    Frontend polish (T6): - New lib/format.ts: locale-aware Intl helpers — formatCurrency / formatDate / formatDateTime / formatPercentBps. Replaces hardcoded toLocaleString() + slice(0,10) patterns scattered across the codebase. - BorrowerAutoPayCard: full enroll / pause / resume / cancel / edit UI for the auto-pay state machine. Surfaces amount-mode dropdown (INSTALLMENT_SCHEDULED / MIN_PAYMENT / FULL_STATEMENT_BALANCE / FIXED_AMOUNT) + day-of-month + payment-method selector. Backend was already wired; this is the last piece for borrower self-service. - Charge-off queue: IRS 1099-C reason code dropdown (8 official letters A–H per IRC §6050P) replaces the free-text reason field; default **************** Notes field stays. Currency rendered via formatCurrency. Org reports (T7): - New **************** 5-bucket dashboard (Current / 1-29 / 30-59 / 60-89 / 90+) with %-of-total + color-coded top borders. Drill-through link to charge-off queue. losApi additions: - agingReport(orgId) + AgingReport type - auditSearch(filters) for the multi-filter regulator endpoint - LoanChargeOffReasonCode union type - confirmChargeOff signature accepts reasonCode

  21. · kamolos

    टीयर 6 + 7 + 9 + 10 - फ्रंटेंड पॉलिश, ऑर्ग रिपोर्ट, ओपनएपीआई, जेकोको

    T6 (फ्रंटेंड पॉलिश): - नया / उदारीकरण / स्वरूप। प्रारूपDateTime / प्रारूपPercentBps Intl APIs (Riffcoded) के माध्यम से toLocaleString + स्लाइस(0,10) पैटर्न). - BorrowerAutoPaycard: enroll / रोकें / फिर से शुरू / रद्द / संपादित ऑटो-pay राशि-मोड ड्रॉपडाउन (INSTALLMENT SCHEDULED / MIN PAYMENT) के साथ / FULL STATEMENT BALANCE / FIXED AMOUNT) + डे-ऑफ-माह + भुगतान-method चयनकर्ता - चार्ज-ऑफ कतार: आईआरएस 1099-सी कारण कोड ड्रॉपडाउन (8 आधिकारिक अक्षर) A-H प्रति IRC §6050P) मुक्त पाठ कारण क्षेत्र की जगह लेता है; डिफ़ॉल्ट G. प्रारूप मुद्रा के माध्यम से मुद्रा स्वरूपण। T7 (ऑर्ग रिपोर्ट): - न्यू लोन रिपोर्ट्सकंट्रोलर.एजिंग: करंट / 1-29 / 30-59 में लोन की गणना करता है / 60-89 / 90+ बकेट पेजेड डेलिनक्वेन्ट स्कैन + गिनती बायऑर्गनाइजेशन के माध्यम से एंडस्टैटस सक्रिय के लिए। ********** %-total के साथ 5-bucket डैशबोर्ड + रंग-कोडित बैंड + ड्रिल-थ्रू चार्ज-ऑफ कतार। T9-T10 (DX + docs): ********** /v3 / एपी-docs + /swagger-ui.html स्वतः उत्पन्न। OpenApiConfig सेट शीर्षक + विवरण + संस्करण। - DevSeedLoader @Profile ("dev"): जूते दो नमूना ऋणउत्पाद (12-mo) किस्त + perpetual LOC). Idempotent (वर्तमान उत्पाद कोड पर स्किड)। - JaCo Maven प्लगइन: टेस्ट चरण पर तैयारी एजेंट + रिपोर्ट। एचटीएमएल CI खपत के लिए लक्ष्य/साइट/जाको/index.html पर। lospi जोड़: - उम्र बढ़नेरिपोर्ट (ऑर्गिड) + एजिंगरिपोर्ट प्रकार - बहु-फ़िल्टर नियामक समापन बिंदु के लिए ऑडिट सर्च (फ़िल्टर) - पुष्टि Chargeoff हस्ताक्षर कारण स्वीकार करते हैंकोड 36 परीक्षण गुजरते हैं।.

  22. · kamolos

    टियर 5 अनुपालन बैच

    - OfacSanction Service: Jaro-Winkler fuzzy match @ ≥0.92 सटीक मैच के बाद पास करना सतह समानता स्कोर हिट्स। Los.ofac.fuzzy-threshold के माध्यम से विन्यास योग्य। - AdverseActionNoticeService: ECOA §1002.9 अनुपालन पीडीएफ जनरेटर नामकरण CFPB संघीय नियामक के रूप में। Renders कारण-for-decoder + मानक ECOA गैर भेदभाव भाषा। मीडिया सर्विस को स्टोर किया गया। ********** नियामक के लिए बहु-फ़िल्टर ऑडिट क्वेरी सबपोना + रिटेंशन स्वीप। पेज - LoanChargeoffservice.confirm कारणकोड पैरामीटर (IRS 1099-) को स्वीकार करता है C बॉक्स-6 पत्र), ऋण के लिए बनी हुई है।चार्जऑफरेसनकोड और धागा में YearEndTaxJob's 1099-C PDF render. डिफ़ॉल्ट G. - ऋणउत्पादवैलिडेशनसेवा जब ब्याजRateBps> MLA 3600bps कैप को चेतावनी देती है इसलिए अनुपालन प्रस्ताव समय MLA स्क्रीनिंग के लिए ध्वज कर सकते हैं। - YearEndTaxJob: ने प्रोडक्शन 1099 इंट शाखा को हटा दिया - निष्क्रिय था (कोई नहीं) उधारकर्ता-credit-interest भुगतान प्रवाह मौजूद है। स्टब प्रतिक्रिया के साथ छोड़ दिया एक बार ऐसे प्रवाह भूमि के मार्गदर्शन में। सभी 30 यूनिट परीक्षण पास करते हैं।.

  23. · kamo-shared-library

    LoanChargeoffReasonCode (IRS 1099-C बॉक्स 6) + लेखा परीक्षा खोज

    - न्यू लोनचार्जऑफReasonCode enum (A BANKRUPTCY) प्रति IRC §6050P ऋण - ************* नियामक subpoenas के लिए बहु-फ़िल्टर @ क्वेरी (loanId / type / actortype / actorMemberId / from / to) — paged

  24. · kamolos

    Tier 3 security + Tier 8 bug cleanup batch

    T3 — Security: - New RateLimitFilter (Bucket4j): 1000/min per IP for webhooks, 10/min per session for offer accept/decoder/rescind, 60/min general. Registered ahead of ProxyHmacFilter so abuse hits the bucket before cryptographic verification cost. - SecurityConfig adds HSTS + frameOptions(DENY) + contentTypeOptions via Spring Security HeaderWriter. - StripeConfig fails fast on prod profile with non-live key. T8 — Bug cleanup: - **************** looks up Loan.productIdSnapshot → LoanProduct.feeNsfFlat instead of hard-coded $25. $25 remains the fallback when product or fee is missing. - **************** gains an AdjustmentTarget field (PRINCIPAL / INTEREST / FEES). manualAdjust dispatches per target rather than always touching principal. Audit metadata now records which counter was touched. - **************** finds the most recent ACTIVE *or* PAUSED plan and reactivates it instead of creating a new row that orphans paused ones. - **************** typed FetchResult record with status (OK / NOT_FOUND / UNREACHABLE / UNCONFIGURED). fetchBlob(uid) preserved as legacy bytes-or-null adapter.

  25. · kamo-shared-library

    *************

    द्वारा इस्तेमाल किया ******************* एक मौजूदा प्रतिक्रिया करने के लिए एक डुप्लिकेट पंक्ति बनाने के बजाय PAUSED योजना जो प्यूज्ड को अनाथ देती है।.

  26. · kamo-internal

    /api/los proxy HMAC-signs identity headers

    When LOS_PROXY_HMAC_SECRET env var is set, the proxy now computes **************** secret) and sends X-Proxy-Signature + X-Proxy-Timestamp alongside the X-Org-Id / X-Member-Id headers. KamoLOS's new ProxyHmacFilter validates this (±60s skew, constant-time compare) so a client bypassing kamo-internal can no longer spoof identity headers. Unset secret = local-dev pass-through (filter disabled on the backend side too).

  27. · kamo-internal

    ऑर्ग-साइड लोन विवरण पृष्ठ + समायोजन / वादा एपीआई

    - losApi: मैनुअलएडजस्ट, waiveFee, वादा Topay ************* पूर्ण org-operation पृष्ठ * 4-अप बैलेंस कार्ड (वर्तमान, प्रिंसिपल, ब्याज, अगले देय) * मैनुअल समायोजन फॉर्म (CREDIT/DEBIT, आवश्यक कारण) - कॉल /api/los/adjustment/manual * Promise-to-pay form - call **************** * विवरण + भुगतान तालिका * पूर्ण घटना लॉग के लिए एम्बेड <LoanAuditTimeline> - यह टूटे हुए लिंक को हल करता है जो मार्केटएक्टिवलांसटैब + PipelineActiveLoansTab को इंगित किया गया था।.

  28. · kamolos

    अंतिम बैच - अनुपालन, पैकेट, समायोजन, ग्राफाना, परीक्षण

    अनुपालन: - MlaCheckService - मिलिट्री लेंडिंग एक्ट कवर-बोरोअर लुकअप के खिलाफ DoD MDC एकल रिकॉर्ड क्वेरी। यदि NotCovered to unconfigured so dev हार्ड असफल नहीं; उत्पादन MUST los.mla.endpoint + api-key कॉन्फ़िगर org के KYC चरण (PII पहुँच की आवश्यकता) पर मैनुअल MLA चलाएं। - OfacSanctionservice - ट्रेजरी SDN सूची कैश इन मेमोरी, ताज़ा रात से sdn.csv. Unicode NFD सामान्यीकरण + diacritic अलग करना। ऋणप्रस्ताव सेवा में वायर्ड: एसडीएन ने भेजने और लिखने के लिए ब्लॉक किया STATE RULE VIOLATION DETECTED लेखा परीक्षा पंक्ति। - लोनलाइफसाइकल सर्विस कूलिंग-ऑफ ने अब लोनस्टेटरुले.coolingOffday पढ़ा उधारकर्ता के राज्य के लिए (places the localDateTime.now() placeholder). - Stripe account.updated webhook अब प्रभार / भुगतान / विवरण झंडे + सिंक करता है डिफ़ॉल्ट currency + आवश्यकता disabled reason on LoanOrgStripeConnect इसलिए क्रोन नौकरियां + org सेटिंग्स UI लाइव क्षमता राज्य को देखते हैं। प्रकटीकरण पैकेट: - न्यू डिस्क्लोजरपैकेटबिल्डर बंडल्स TILA बॉक्स + GLBA गोपनीयता नोटिस + ECOA गैर भेदभाव नोटिस + ACH जनादेश प्राधिकरण एक पीडीएफ में PDFBox PDFMergerUtility+ स्टोर्स in MediaService. प्रत्येक घटक है एक ऋण के रूप में दर्ज किया गया प्रकटीकरण पंक्ति प्रस्ताव की कुंजी है। LoanOfferservice.send इस्टाइन लिफाफा बनाने से पहले स्वचालित रूप से पैकेट बनाता है। सर्विसिंग ऑपरेशन: - ************* - शुल्क / मूल क्रेडिट या डेबिट आवश्यक कारण से; ऋण भुगतान (INTERNAL ADJUSTMENT) का उत्सर्जन करता है या REVERSAL ADJUSTMENT) + MANUAL ADJUSTMENT ऑडिट - LoanAdjustment Service.waiveFee — Flips LoanFee.waived पर + क्रेडिट FEE WAIVED लेखा परीक्षा - ************* - गैर वित्तीय प्रतिबद्धता पंक्ति D60+ वर्कफ़्लो ट्रैकिंग में प्रयुक्त, PROMISE TO PAY LOGGED ऑडिट का उत्सर्जन करता है - लोन एडजस्टमेंट कंट्रोलर एक्सप / एपीआई / लॉस / अन्याय / रियल को उजागर करता है, फीस/{uid}/waive, वादा-to-pay अवलोकन: - ************* - के साथ आयात करने योग्य डैशबोर्ड स्टेटस गेज, भुगतान परिणाम दरें, कोड द्वारा आर-कोड रिटर्न, वेबहुक p50/p90/p99 टेस्ट (30 कुल, सभी हरे): 7 Amortization Engine - 9 InterestAccrualEngine (पहले तय 100x बग सहित) - 5 भुगतान आवंटन - 4 NachaReturnCode (रीट्री क्लास + जनादेश-रिवोकिंग कोड + वर्णन) 5 OfacSanctionsService (स्वच्छ मैच / हिट / diacritics / alias / विकलांग) प्रतिबिंब-इंजेक्टेड कैश के माध्यम से, कोई नेटवर्क या परीक्षण कंटेनर की आवश्यकता नहीं है)

  29. · kamolos

    P2 बैच - observability, परीक्षण, वार्षिक अंत कर, वास्तविक पट्टी ID

    अवलोकन: - क्लासपैथ पर micrometer-registry-prometheus - /actuator/prometheus प्रबंधन विन्यास के माध्यम से उजागर (दोनों स्थानीय + k8s configmap) - ऋण मीट्रिक सेवा: **************** ************* los charge off total, los disbursement total, los loan status count{status} gauge, ************* हिस्टोग्राम - काउंटरों को लोन पेमेंटपोस्टिंग सर्विस + लोनचार्जऑफ सर्विस में वायर्ड किया गया गणित + परीक्षण: Amortization Engine (स्तर भुगतान, APR Newton- राफसन, मासिक नियत तारीख प्रगति, प्रिंसिपल+interest invariant, बुरा इनपुट गार्ड), interjectAccrualEngine (ACT 365 / ACT 360 DPR, एक दिन / तीस दिन accrual, LOC ADB), PaymentAllocator (fees→interest) → मूल आदेश, आंशिक, ओवरपेमेंट, nulls) ************* - divisor 3,650,000/3,600,000 के बजाय 36500/36000 था (annualRate) अंश की जरूरत है दोनों / 10000 bps → भिन्नता और / 365 दिन), तो accrued ब्याज 100 × बहुत अधिक था। टेस्ट जोड़ा गया है कि यह पकड़ा जाएगा। रियल स्ट्रिप पहचानकर्ता (कोई और अधिक प्लेसहोल्डर नहीं): - StripeConnectController.onboard अब LoanOrgStripeConnect जारी रखता है सफल स्ट्राइप खाता निर्माण; स्टेट ऑनबोर्डिंग स्टेट रिटर्न - न्यू स्ट्राइपिडरेसोल्वर: कनेक्टेडएकाउंटिडफोरऑर्ग (AccountIdForOrg) + आलसी getOrCreateBorrowerCustomerId (idempotency-keyed customer.create कनेक्टेड खाता के तहत, लोन.स्ट्रिप कस्टमर को जारी रखता है Id) - AutoDebitRunJob.fireAchDebit + .fireDisbursement अब असली हल "acct placeholder *" के बजाय स्ट्रिपिडResolver के माध्यम से आईडी रिमाइंडर कैडेंस: - ReminderSchedulingJob: रात में स्वीप PAYMENT DUE 3 DAYS का उत्सर्जन करता है, PAYMENT DUE TODAY, PAYMENT LATE DAY 1/5/15, OFFER EXPIRING (24h) समाप्त होने से पहले, STATEMENT AVAILABLE (उत्पादन पर)। Dedup-keyed माध्यम ********** तो reruns idempotent हैं। वर्ष अंत कर: - YearEndTaxJob (cron 06:00 Jan 5): चार्ज-ऑफ के लिए 1099-C का उत्पादन ≥$600 उधारकर्ता क्रेडिट ब्याज के लिए 1099-INT > $ 10। PDFBox-rendered form, मीडिया सर्विस में संग्रहीत, फॉर्म / वर्ष के साथ लोन डिस्क्लोज़र के रूप में दर्ज किया गया मेटाडाटा इसलिए reruns idempotent हैं। - Loan.tax1099 चार्ज-ऑफ पर सेलिगिबल ऑटो-सेट पुष्टि करते समय ≥ 600 डॉलर

  30. · kamo-shared-library

    लोनऑर्गस्ट्रिप कनेक्ट + लोन टैक्स / संचयी फ़ील्ड + हॉट इंडेक्स

    - न्यू लोनऑर्गस्ट्रिप कनेक्ट इकाई (one-per-org, has stripeConnectedAccountId) + कनेक्ट ऑनबोर्डिंग क्षमताओं - ऋण: धारीग्राहक आईडी (आर्ग के कनेक्टेड खाते के तहत आलसी बनाया गया), LastAccrualDate, tax1099IntEligible, tax1099CEligible - हॉट कम्पोजिट इंडेक्स: * ऋण: (org id,status), (borrower member id,status), (next payment due at), (status, delinquency tier) ऋण भुगतान: (loan id, initiated at), (loan id,status), (stripe payment intent id), (statement id) * Loan statement: (loan id,statement number DESC), (due date,status) * Loan offers: (org id,status), (borrower member id,status), (status,expires at)

तुम्हारा ब्रह्मांड इंतजार कर रहा है.

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

हमेशा के लिए मुफ्त - कोई क्रेडिट कार्ड की आवश्यकता नहीं