Înregistrări plătite de rută pentru a verifica după autentificare
După aut (manual sau auto-login), consuma apex-domeniul sp checkout plan cookie lăsat de kamo-register și redirecționează cumpărătorul către brand /subscribe?pl...
Carry paid ?plan de la inscriere la checkout
Atunci când o înscriere a unui membru provine dintr-un CTA de stabilire a prețurilor plătite (?plan=pro drop apex-domeniul sp checkout plan cookie la finalizare...
Secret interior-aut sârmă de la ***
ESigService validează acum X-Normal-Auth împotriva aceluiași secret comun APIservice prezintă Nu-ţi face griji. *** K8s secret), întărirea e-semnului programati...
Reconstruiește pentru actualizare kamo-shared-library (semnează șabloane e-mail)
Preia noul model canonic esign.signer verification + Esign.signer invita astfel încât sămânţa ForOrg le poate însămânţa la prima trimitere.
Șabloane canonice pentru semnalizarea electronică (verificare + invitație)
Adăugați două șabloane canonice de e-mail la nivel de platformă însămânțate leneș per org: - esign.signer verification (step-up OTP: {{cod}}, {{numele}}) - esig...
Înregistrează repertoriile pentru linia de depunere a contorului
EsignMeterSubmissionService needs EsignUsageRecordRepository, but @EnableJpaRepositorii nu au scanat com.kamo.z.shared.esign.repos, astfel încât contextul nu a ...
Contorizarea consumului de e-sign + verificarea de către consumatori a autoservirii
#4 contorizare: - EsignMeterSubmissionService (@Scheduled per zi): agregate de origine API EsignUsageRecords per org+ period; primul 40/perioadă inclusă, restul...
API SIGNATURĂ (E-Signature API)
Adăugați domeniul de aplicare E-Signature API la managerul API-cheie org astfel încât personalul să poată acorda Orgii de afaceri acces programatic e-semn. Util...
Portalul API (API SIGNATURĂ)
Add /api/public/esign/** to PublicApiController: validează tasta API org, solicită domeniul de aplicare al API SIGNATURE, limite de rată și transmite către ESig...
Plicul programatic intern API (origine=API) pentru afaceri
- Esign IntermediarController (/api/esig/intern/*): X-Normal-Auth + X-Org-Id authed, numit de APIService după ce validează cheia API SIGNATURE-scoped; refolosir...
API SIGNATURE api-cheie + EsignGenericEnvelope.origin
Aditiv, nici o versiune cucui: - ApiKeyScope.API SIGATURE - EsignGenericEnvelope.origin (EsignUsageOrigin, nullable) plicul a fost creat prin intermediul API ...
Acțiunea de trimitere pentru semnătură + starea pachetului în editorul de documente
Adaugă un buton "Trimite pentru semnătură" pe antetul editorului șablon care deschide un dialog pentru trimiterea documentului către destinatari și statutul de ...
Creare/trimitere generică a anvelopei motor (sender side)
Adăugați unități OTK-authed /api/esig/envelopes API kamo-internă pentru a trimite documente de semnare, reutilizarea acelorași entități de legătură comună publi...
Semnare publică API motor pentru semn.sign.pink
Punerea în aplicare /api/esig/public/* semnarea API apelurile aplicație kamo-signer, Transformarea semnatorului live de la previzualizare-tub într-un suport de ...
Înapoi la preţurile add-on cu un Billing Meter
Stripe (>=2025-03-31.basil) respinge utilizarea moștenită type+splay usage model contorizat ('preţurile măsurate trebuie să fie susţinute de metri), astfel încâ...
Comutator produs platformă în fila organizații
Suprafață denumirea platformei-produs în cazul în care acesta face parte din platforma Organizaţii. Adaugă un comutator cu poartă per org (dezactivat pentru org...
Gestionați Organizația.isPlatformProduct de pe Platformă → Orgs
PlatformaContExpuneri Sumare estePlatformProdus + areAbonare Piața; nouă Pune-o aici. (platform-admin gated) stabilește steagul și invalidează drepturile membri...
Organizația Explicit.isPlatformProdus ca semnal right-root
Înlocuirea "proprietății unei piețe de SUBSCRIPTION" euristică derivată cu un explicit; pavilion de proprietate admin-set. Un produs de platformă (de exemplu, s...
Selectaţi piaţa subscripption pentru configurarea platformei
KamoCRM deține mai multe piețe Nu-ţi face griji. SolutionProductMarket trebuie sa aleaga piata de tip SUBSCRIPTION (platform-access) Mai degrabă decât primul ac...
Rădăcina produsului = deține piața SUBSCRIPTION, nu orice piață
O org client (de exemplu, BluEleven) deține propriile sale piețe de afaceri (RETAIL/MORTGAGE) pentru a rula compania sa în timp ce rămâne un client al platforme...
Drepturile membrilor domeniului de aplicare la rădăcina produsului, nu KamoCRM
Serviciul de Drept rezolvă acum rădăcina fiecărui membru prin intermediul DreptRezolvator de drepturi (cel mai apropiat strămoș-sau-se) în loc de mersul pe jos ...
Rezolvarea drepturilor în funcție de orgul de rădăcină de produs, nu de platforma de nivel superior
IntroduceredreptateRezolvator: cel mai apropiat stramos de piata a unei org (rădăcina sa de produs), care revine la nivelul superior al platformei. Asta decuple...
Păstrați lista org pe reflet de fundal; dedupe apeluri sesiune
/Rețeaua re-arsed aduceNetworks pe fiecare sesiune de fundal reîmprospătare și a ascuns întreaga listă pe orice eroare de aducere, astfel încât un blip tranzito...
Adăugați destinatarul pachetului, valoarea câmpului, entitățile cu statut de destinatar
Verificați în modelul in-progress esign: EsignEnvelopeRecipient (+repo), EsignFieldValue (+repo), EsignRecipientStatus și o actualizare ESignSignerType. Aditiv;...
Adaugă EsignUsageRecord pentru contorizarea utilizării pe semnătură
O nouă entitate de utilizare numai pe bază de apendice (oglindă AiUsageRecord) emisă la semnătură Completare. Numai semnăturile de origine API se bazează pe un ...
Restaurează link-ul de e-mail click manners, izolează cauza
Rapoarte de utilizator email-preview link-uri clicuri încă nu fac nimic ȘI text Selecţia este ucisă în mijlocul tragerii. Dreapta-clic și planează ambele de luc...
Raportul de conservare a aspectului, nu se întinde niciodată logo-uri non-pătrate
Ramele Favicon PNG/ICO au fost produse cu mentinereAspectRatio (fals), intindere orice logo non-pătrat într-un pătrat distorsionat. Center-fit the logo on a pan...
Regenerează favicons pe etichetare salva; adulmecă tipul real de logo
description dar niciodata favicons regenerate An Org însămânțat fără o dispoziție completă a avut un favicon gol / set, astfel încât fiecare kamo (login/intern...
Seed globals.css din șablon atunci când dosarul org lipsește
update (run pe fiecare culoare salva) rescris css / globals.css org în vigoare, dar acest obiect există doar o singură dată Complet a copiat de la modelul impli...
Arată logo-ul complet cu extensia sa reală, nu hardcoded .svg
Branding tab-ul construit logoFullURL ca logo-full.svg pe montare, ignorarea Logoul lui OrgFullExt. Logouri complete încărcate ca png/jpg/etc. live la logo-ul c...
Reîmprospătați TLSStore fiecare buclă astfel încât nou emise certificate primi servit
update tls store() a rulat doar la pornire și la importurile de stocare în comun, așa că a Cert proaspat emis de catre managerul certificat (HTTP-01) a fost gat...
Oferă redirecționare-doar ruta un backend astfel Traefik v3 permite
Traefik v3 dezactivează un router IngressRoute cu servicii: [] atunci când permiteEmptyServices este oprit (cum este aici), astfel încât domeniul-agnostic HTTP-...
Redirecţionează toate gazdele HTTP către HTTPS + automat-cert la domenii reale de org
Domenii de org personalizate (de exemplu, login.sign.pink) returnate goale Traefik "440 page not found" peste HTTP simplu: singurul router de redirecționare por...
Semn pre-seed.pink + www.sign.pink in STATIC DOMAINS
sign.pink este un nou domeniu apex (semnătura electronică a consumatorului / eticheta albă Kamo chiriaș org). Pre-seed apex + www so a Let's cripte cert există ...
Conversie persistă error în loc de a eşua în tăcere
Atât șablonul cât și conductele de conversie de încărcare regulate înghiţite Doc-uri eșecuri de conversie (numai logate), plecarea este convertită=fals fără înr...
Description
LoanProductForm a fost o singură coloană îngustă (maxWidth: 880) cu hardcoded Engleză peste tot. Acum folosește același model de întreprindere ca pagina de ofer...
Layout cu două coloane cu vedere de previzualizare live
Pagina de nou-ofertă a fost o coloană înaltă îngustă pe ecrane largi. Portul vizual. Acum folosește CSS Grid cu formularul din stânga (5fr) și a vedere live "Of...
Reproiectarea paginii nou-ofertă ca spațiu de lucru cu două coloane + previzualizare live
Ai cerut imobiliare complete, moderne, lustruite formă monocolată într-o carcasă cu lățimea totală, care este exact latura jumătate de pagină de-gol-canvas cri...
Pagină poloneză nouă-ofertă
Trei goluri UX pagina de oferte a avut după readucătorul anterior: 1. Starea goală. Atunci când o piață nu are încă produse de împrumut, scăderea utilizată Pen...
Redenumește împrumutRepository → PersonalLoanRepository
Spring Data JPA derivă numele de fasole depozit din interfața lui nume simplu de clasă, nu de la @Repository(" ...") valoare de calificare, astfel încât nu a pr...
Adăugare /commerce/credite personale/intrare nouă + pagina de oferte cu vedere la piaţă
Acţiunea QuickActionsBar "Nou Loan Offer" îndreptată spre /commerce/personal-împrumuturi/noi dar nu a existat o astfel de pagină, așa că Next.js rutat la pagina...
Latimea intreprinderii lustruieste peste 10 pagini
Adoptă modelul modern de întreprindere (cap de absolvent + pesmet + săgeată spate + cochilie flexă cu înălțime completă + conținut grupat pe gri deschis panza) ...
Declanşarea reconstrucţiei pentru a prelua entitatea PersonalLoan redenumită
Imaginea SecurityService la 761019b a fost construita inainte de shared-lib d14dc54 (care a redenumit entitatea creditoare personale în denumirea JPA "PersonalL...
Expune personal LOANS în culegători de comerț-tip și angajament
Adaugă personal LOANS la listele COMMERCE TYPES și AngajamentType, astfel încât noua piata de credite personale KamoLOS poate fi creata de pe piete/noi si piete...
Evitați coliziunea împrumut/împrumut cu aplicația ipotecară
KamoInitializerService nu a reusit sa porneasca deoarece doua clase @Entity numite "Loan" și două clase de depozit numite "LoanRepository" ambele au vrut să înr...
T6+T7 frontend lash + rapoarte org + UI cu plată automată
Poli (T6): - Nou lib/format.ts: local-aware Intl helpers formatCurrency / formatDate / formatDateTime / formatPercentBps. Înlocuiește hardcoded laLocaleString (...
Codul de identificare a împrumutului (IRS 1099-C caseta 6) + căutarea auditului
- New LoanChargeOffReasonCode enum (A BANKRUPTY..H Other) per IRC §6050P - Coloana "Imprumut.chargeOffReasonCode" - ********************************************...
Nu-ţi face griji
Folosit de *************** pentru a reactiva un dispozitiv existent PAVIZAT plan în loc de a crea un rând duplicat care orfani cel oprit.
/api/los proxy HMAC-semne antete de identitate
Când LOS PROXY HMAC SECRET env var este setat, proxy acum calculează *************secret) şi trimite X-Proxy-Signature + X-Proxy-Timestamp alături de X-Org-Id /...
Interogări de repo paginate + conteByStatus pentru căi calde
- LoanRepository: countbyStatus / countByOrganization AndStatus + Pagina <Loan> findByStatus(...) / - Nu. - Nu. *************** pentru numerotarea rezistentă la...