Değişiklik Günlüğü
Yeni ne var?
Gemideki her iyileştirme.
· kamo-internal
P1 önend - şarj kuyruk + denetim süresi
- losApi: şarjOffQueue / onayChargeOff / denetimLoan - ******************** D120 inceleme kuyruğu sayfası; veya kullanıcı Her krediyi yorumlayın, bir sebep ekleyin, tıklama onay → POST /api /los /charge-off /{id}/confirm. Yüzeyler KrediChargeOffService backend. - Yeni <Loan ISStTimeline> bileşen: okur **************** Ve tüm kredileri ISSt Event stream (actor tipi, tür, miktar, zamantamp). Org-side kredi detay sayfasına bağlanmak için tasarlanmıştır.
· kamolos
P1 toplu - webhooks önceden devlet, crons, ticaret dikey
Para hareketi (Ana P1): KrediPaymentPostingService: markSucceedAndPost / işaretFailed / Döndüm ve geri döndü / işaretDisbursementSucceed / markDrawDisbursed. Allocation order kilitli: ücretler → faiz → ana. Durum oto-advances DELINQUENT ACT ACTIVE PA PAID OFF ortaya çıkan dengeye dayanarak. - StripeWebhookHizmet artık sadece oturum açmaz: ödeme intent.succeed / Ödeme / ücret finanse edildi (ACH geri döndü) / anlaşmazlık. Ödeme. ücretli+failed all comeger via PostingService. - NachaReturnCode + RetryScheduler: NACHA-compliant R-code routing – R01/R09 2 × / 5 gün boyunca yeniden deneme, R07/R10/R29 görevi iptal etti, tükenmiş retries turn CreditPaymentMethod → REQUIRES REVERIFY. Ticaret-vertical materialization: - **************** Şimdi Katılım yaratıyor (PERSONAL LOANS, COMMITTED), Commitment (ACTIVE, with pricing+terms JSON snapshots), Order (AUTHORIZED, subtotal=principal) ve kimliklerini iplikler Krediye geri dönün.commitmentUid / nişanUid / OrderUid'i Aynı işlem. Cron işleri (gerçek mantık, saçmalıklar değil): SoğutmaOffAdvanceJob: Bir PENDING DISBURSEMENT OUT ödeme için Her PENDING DISBURSEMENT Soğutma-off elapd. - InterestAccrualJob: günlük basit ilgi çekicilik ACTIVE + DELINQUENT kredileri için. - AçıklamaGenerationJob: per-due-date ifadesini yüklemek, LOC per-cycle ADB ile ilgili açıklama + yıllık ücret değerlendirme + otomatik ödeme zamanlama. - AutoDebitRunJob: PENDING oto-debits + DISBURSEMENT OUT ödemeleri + NACHA, idempotency anahtarları ile StripeConnectService aracılığıyla yeniden birleşmektedir. - ReconciliationJob: gece olarak ücret/principal/balance from the İLGİLİ; Giriş + denetim altına alındı. - Hatırlatmaİşi: PlanlananForULED bildirimlerini geçmiş Ve BildirimDispatchService aracılığıyla sunar. Bildirimler: - ******************** True HTTP POST to EmailService (/api/email/dönüşüm/dönüşüm) ve VOIPService (/api/voip/sms/send, /api/voip / fatura /send), şablonKey = "loan.{sp lowercase}" Geçerlilik: - KrediÜrünValidasyon Hizmeti: APR ≤ eyalet kapağını uygulayın (örneğin) Yasaklanmış çekler, min/max-principal sanity. Hooked into KrediÜrün Hizmeti.create + güncelleştirme. Şarj: KrediChargeOffService.queue() D120 kredilerini listeler; .confirm() statüsü döndürür CHARGED OFF ve bir CHARGE OFF RECORDED denetim olayı yazıyor. KrediChargeOffController ortaya çıkıyor **************** Denetim: - Kredi Askıları bile ortaya çıkar ****************
· kamo-internal
P0 sertleştirme - formlar, oturum çözme, ödeme yöntemleri
Formlar (org-side): - ************ ve /{productUid} edit sayfalar - Yeni Kredi ÜrünFormu: temeller / fiyatlandırma / sınırlar / şartlar / uyumluluk bölümler, tür farkındalık alanları (LOC vs LOC), promissory-note şablon UID, izin verilen devlet kodlarını - ******************** ürün ürün ürün ürün ürün ürün ürün ürün ürün ürünü Seçim (sadece bu pazardan aktif ürünler), borç veren üye, Temel, isteğe bağlı terim, borç veren devlet, "save draft" vs "send" - / fucks/features/lending: org-side Stripe Connect onboarding page (calls **************** yönlendirmeleri Stripe) Borrower-side sertleştirme: - Yeni kullanımCurrentSession() kanca, üye Id/orgId'ı /api/user-info (canonical) – KM sahte/KORG kurabiye benim kredilerimde okur, Teklif Detayları, Kredi Detayları, Lending Settings, Boru hatlarıLoanOffersTab, BoruActiveLoansTab - New BorrowerPaymentMethodsCard: borç veren ACH bankasını (Stripe ödeme method id + görev) veya kart, bağlantılı yöntemleri görmek, varsayılan belirlemek, Revoke; /loans /[loanId] sayfasında yer alan - losApi: + startStripeConnectOnboarding Ayarlar nav (2. bellek kuralı başına 3 yer): - AyarlarStatusWindow, Ticaret + rota girişi altında "Loan Ürünleri" ekler ************************ - (sidebar.tsx'in POS girişleri yoktur - hiçbir şey onaylamadı)
· kamolos
P0 sertleştirme - Stripe Connect endpoint + PDF düzten
- Fix EsignClient import: EsignGenericEn GeliştirmeRepository / EsignSignatureRepository .esign.repos'da yaşamak, değil .esign kök - New StripeConnectController POST **************** Create org Custom-account + returns onboarding URL (delegates to to to Mevcut StripeConnectService) - MediaServiceClient.fetchBlob: depolanmış bir blob's bytes çekiyor Düz/re-render iş akışları Yeni PdfFlattenHizmet: E-SIGN Act-compliant imza Satın alınan her biri için kaynak açıklaması PDF'ye sertifika sayfası imza (sözde verilen isim; işaretleyici/IP/UA/SHA-256 + zarf UID sayfada kaydetti. MediaService aracılığıyla yeni düzleştirilmiş blob Mağazalar ve geri döner blob id + SHA-256. - EsignClient.submitSignature şimdi, SED ve işaretlemeden sonra düzelir. populates **************** + BelgeSha256 imzaladı. Düzten başarısızlık logları ancak imzayı geri çevirmez.
· kamo-internal
/api/los/* proxy rotası → KamoLOS via k8s DNS
Mirrors the /api/billing/[...path] BillingServ: proxy: - Oturum Redis ile çözüldü; X-Org-Id + X-Member-Id forwarded - /api/los/webhooks / * oturum auth (Stripe imza-verified at leastified at oturum auth (Stripe sign-verified at leastified at leastified at leastified at to. KamoLOS; Stripe-Signature Title geçti - God-mode Title-through protected - 502 üst düzey başarısızlıklara kapıldı
· kamo-internal
PERSONAL LOANS ticaret türü ön uç
- KatılımTypeLabels: genişletilmiş Katılım Tür birliği + kelime - MarketCardGrid: PERSONAL LOANS rengi (#14b8a6) + Landmark ikon + karşı - Pazar detay sayfası: yeni sekmeler (Loan Ürünler / Teklifler / Aktif Krediler / Devlet Kuralları) ticaretType : 'PERSONAL LOANS'ta kapılandı. - losApi.ts: full DTO yüzey + ince sarmak /api /los /* Ürünler için, teklifler, krediler, ödemeler, çizer, ifadeler, ödeme yöntemler, oto-pay, eyalet kuralları, ESign imza teslim - New MarketLoanÜrünlerTab / MarketLoanOffersTab / MarketActiveLoansTab / MarketActiveLoansTab / MarketLoanStateRulesTab bileşenleri - BoruView: VERTICAL ICONS kişisel loans için giriş - BoruVerticalSection: PERSONAL LOANS in hasSubTabs + form blok Yollar Teklifler (intents) + Active Loans (commitments) alt-tabs - Yeni BoruLoanOffersTab / BoruActiveLoansTab / - Borrower (Member) /loans yüzeyi: indeks, /loans/offers /[offer) Id] Kabul ve imza akışı ile (tipli imza → ESign gönderimi → Kabul eden, /loans /[loanId] denge, ifadeler, ödeme Tarih, Pay Now, çizim-for-LOC - ayarlar / sayfa.tsx: ticaret nav "Loan Ürünleri" girişi ekliyor
· kamolos
İlk kişisel-loan kökeni + servis hizmeti
Yeni Spring Boot 3.1.5 / Java 21 mikro hizmet BillingService üzerinde modellendi. Kendi kişisel-loan domain end-to-end: KrediÜrün / KrediTamam / Kredi REST + DTO katmanı ile CRUD KrediYaşam döngüsü Hizmet Kredi + Ticaret Katılımı/Commitment Teklif için kabul (bir txn) KrediPayment + KrediDraw + KrediStatement + KrediPaymentMethod + KrediPaymentMethod + KrediRecurring ÖdemePlan hizmetleri + kontrolörler - Matematik: AmortizationMühendislik (Reg Z Appendix J) (ACT 365 / ACT 360 + ADB), ÖdemeAllocator (fees→+ilaç) - StripeConnectService (Open-account onboarding, ACH disbursement, ACH debit) + StripeWebhookService (idempotent via via through KrediStripeWebhook Event) + bağlantıya özel webhook endpoint - TilaRendererService Reg Z Schumer kutusu (installment) / open-end release (LOC) via PDFBox into MinIO - StateRule SelfHealService boot-loads kredi state rules.json (50-state rules. Kayıt + MLA cap + soğutma-off) - haklarından uzlaştırma modeli - EsignClient + EsignSignController eksik üyeyi tamamlar İmzalama yolu (EsignGenericEn Geliştirmee + EsignSignature in shared-lib) - BildirimDispatchService with dedup-keyed scheduling - Cron işleri: TeklifExpirasyon, AçıklamaGeneration, DelinquencySweep - k8s ortaya çıkıyor (konmap / dağıtım / hizmet), Dockerfile, Forgejo CI iş akışı (dual-cluster K1M1+K2M1) hepsi ile uyumlu BillingService kongreleri
· kamo-shared-library
PERSONAL LOANS ticaret türü + varlık paketi
- TicaretType.PERSONAL LOANS + paralel Katılım Türü + kelime - Kişisel-loan satıcılar için yerleşik girişler - 15 kişisel loans JPA varlıklar (LoanÜrün, KrediStateRule, LoanOffer, KrediOfferDecision, Kredi, KrediDraw, KrediPayment, CreditPaymentMethod, KrediRecurringPaymentPlan, KrediStatement, CreditFee, CreditDisclosure, Kredi bile değil, krediStripeWebhook Event, Kredi Doğrulama) + 15 repos - 22 kişisel loans enums (status, tier, tür, kaynak, kanal vs.) - esign EsignGenericEn Developmente + EsignSignature + repos for non-mortgage zarf yaratımı ve üye odaklı imza yakalama - KamoLOS → KamoMLOS yorum- sadece Organizasyon / / TicaretMarketService / TicaretHizmeti Schema yönetimi KamoInitializerService ile kalır; KamoLOS kullanır ddl-auto: hiçbiri.
· kamo-internal
Photo-album, aynı WS hattını yüklemeler olarak kullanır
Doc-manager yükleme boru hatları (hashing → dedup check → kayıt-or-. → WebSocket-güdümlü dönüşüm) tekrarlanabilir bir kullanım hayal gücü kanca. kanca, per-file state makinesi, XHR ilerlemesine sahiptir ve canlı dönüştürme-progress WebSocket aboneliklerini indirmektedir. Foto-album dialog kancayı tüketmek için yeniden yazılmıştır: - Dosyalar otomatik olarak sıralanır ve bir seferde bir süreçtir. - Her in-flight dosyası mevcut sahne etiketini gösterir (Hashing → Checking → Uploading → Converting → Complete) bir LinearProgress, bir check / hata / spinner ikon ve başarısızlık sonrası bir Retry düğmesine. - The dialog şimdi gerçek sunucu hata mesajını gösterir (e.g. "Failed to upload to MinIO"), yutmak yerine, yüklemeler hala uçuş sırasında engellenir. - Başarılı olarak yüklenen dosyalar otomatik olarak albüme öğeler olarak bağlanır.
· kamolos
Hide,Active=false programlarından gerçek zamanlı olarak
programCatalog artık programlarla filtreleniyor, daha önceActive=false Onları kredi sihirbazına geri döndürün. Bayrak bilgisayarlı sunucunun yanı sıra (base.isActive AND override.isActive), bu yüzden bir kredi veren bir programdan çıkmak için Mortgage Programlar sekmesinde, ilgili kart durakları durur persona/program seçiminde ortaya çıkıyor - mevcut 60s tarafından kapıldı staleTime tavan.
· SecurityService
Backfill programı, boot üzerinde mevcut ipotek piyasaları için teklifler
DataLoader şimdi aramalar **************** AppMortgage-engagement backfill'den sonra. Sweeps her mevcut MORTGAGE TicaretMarket ve programı tekliflerinin sağlanmasını sağlar. Kapaklar Market-side kancası ortaya çıkmadan önce yaratılan pazarlar - Özellikle kullanıcı bunu daha önce Markets & Fields ile ekledi dağıtmak. Idempotent: tamamen doldurulmuş bir sistem logları “tüm pazarlar zaten zaten zaten zaten Verilmiş" ve atlar.
· kamo-shared-library
Bootstrap ipotek programı piyasadaki teklifleri + boot backfill
Kullanıcı ticaretType=MORTGAGE ile bir TicaretPazarı yaratırken - aracılığıyla Markets & Fields ayarları sekmesi – piyasanın programına ihtiyacı var Aşağı ticaret yüzeyleri, niyetleri işaret etmek için. Daha önce bu sadece lazily ilk AppMortgage yaratmasında, bu yüzden yeni eklenen ipotek Pazarlar boş oturdu ve KamoLOS-side yöneticileri bir tane eklemekten hiçbir etki görmedi. - **************** type=MORTGAGE, call ************ pazar) tasarruf ettikten sonra. Terkedilmiş Deneme/catch bu kadar bir program izleme başarısızlığı piyasa yaratmasını engellemez (KamoLOS, Program kayıtlarından programlar okur, Teklifler değil). - ******************** süpürücüler Mevcut her MORTGAGE pazarı ve tekliflerinin sağlanmasını sağlar. Güvenlik Hizmeti DataLoader tarafından daha önce yaratılan piyasaları örtmek için önyüklemek için kullanılır Bu kanca indi. Idempotent - istikrarlı devlet botları bir no-op.
· kamo-internal
Duplicate connecters böylece kullanıcılar orijinalleri etkilemeden vazgeçebilir
Binder listesinden erişilebilir bir "Duplicate" eylemi ekleyin ve editör başlığında yeni bir düğmeden. Tekrarlanan kaynak binder'in metadata + öğeleri + modifiers, mevcut kullanıcı tarafından hisseleri olmayan ve otomatik olarak seçilmektedir, böylece kullanıcı toprakları hemen yeni şubede seçilir. Wires up: - ******************** Yol rotası yolu rotası - tekrarlananBinder() in binderApi.ts and useBinder Shop - "Duplicate" menüsü öğe BinderListPanel'de (gören herhangi bir binder üzerinde çalışır - ait, paylaşılan veya şablon) - Bect icon düğmesi + spinner in BinderEditor Title
· DocsService
POST ****************************
Deep-copies a binder the requester can see (kendi, paylaşılan veya şablon) isteğe ait taze bir binder. Her öğeyi (DOC, SEPARATÖR, GENERATED) sipariş, tip, yapılandırJson ve per-instance modifier overrides; kopyalar binder- çapında modifier; altta yatan Img belgelerini tek başına bırakın (her ikisi de aynı docslere atıfta bulunur). kopya hiçbir hisse ile başlar veTemplate=false.
· kamo-internal
Mortgage Programları toggle + MORTGAGE etkileşimi derin bağlantılar
- MortgageProgramsPanel şimdi her program kartında gerçek bir anahtar gemilerle iyimser güncelleme + başarısızlık üzerine geri dön. Bir program çağrısı PUT **************** ve yansımaları yansıtıyor Etkin aktif devlet, ana + override'den sunucu-side hesaplar. - ************ isActive) yeni son noktayı kaplar. - / e-ticaret/engagements/[id] sayfası: APPLICATION linkType şimdi rotalara yol açıyor /applications/{linkId} ( URLA detay sayfası), eksik değil **************** MORTGAGE nişanları oto-redirect into /applications/{linkId} bu yüzden kullanıcıların URLA'daki arazileri doğrudan direkt olarak Bunun yerine, genel bağlılık görüşü.
· SecurityService
PUT / programlar /{code} / aktif + deprecate mirası POS uç noktaları
- MortgageProgram Kontrolü PUT **************************** Vücutla {"isActive": bool}, LOS TAKE APPLICATION üzerinde kapılandı. Delegates to **************** which upserts the OrgProgramOverride row. - ******************** GetMortgageAppById, createMortgageApp, updateMortgageApp, updateMortgageAppStatus all işaretli @Deprecated with with javadoc, URLA-say /api/güvenlik/mortgage-apps endpoints. Geleneksel POS yolları geri dönüş için işlevsel kalır.
· kamo-shared-library
Per-org, sadece ipotek yolu
- ******************** Bir OrgProgramOverride satır KayıtState.isActive=desired; liste Şimdilik ve temel programın Override'nin aktif bayrağı, bu yüzden engelli bir override çiftliği taşır “Bu veyag bu programı açıkça devre dışı bıraktı.” - OrgProgramOverrideRepository,OrganizasyonId ve **************** for the upsert + listForOrg yolları için. - ******************** / findMortgageAppById / **************** / updateMortgageApp / updateMortgageAppStatus @Deprecated. Ticaret üzerinde çalışıyorlar - sadece LOAN APPLICATION'i etiketliyor ve URLA AppMortgage okumaz Kayıtlar - ******************** ile geri dönüş için tuttu Ancak yeni kod AppMortgageService + /api/güvenlik/mortgage-apps kullanmanız gerekir.
· kamolos
Scrubbable day↔night theme with sun-moon SkyToggle
Sürekli t ∈ [0,1] sahne pozisyonu sürücüleri -25 CSS özel özellikleri On: Sıcak-kırık gün ve gündüz arasındaki lineer RGB interpolasyon. aurora gecesi kütüphane/scene/palettes.ts - İlk ziyarette günün yerel zamanlarına dönerler; manuel aşırılık Bir kurabiyede yapışkan, bir saat-icon düğmesi ile yeniden kullanılabilir otomatik takip için - # SSRYLE ilk boyadan önce çözülmemiş paletleri pişiriyor Geri dönüş ziyaretlerinde FOUC yok; ilk önce otomatik mod kolay günden güne kadar -1.4'ler - SkyToggle: Güneş-moon'un karaya dönmesine işaret eden noktalı başparmak Güneş ile ışık arasındaki t ve morflar ile gerçek zaman - PageGlow + StarField çevre tabakaları: amber güneş sol üst solunda Gün, serin Ay-glow üst sağ gece, - 80 tohumlu yıldız geceleri kaybolur Geçmiş dusk ve ikizkle daha düşük duygusal farkındalık anahtarı - MUI teması t≥0.5 dusk sınırında kilitler; CsBaseline vücut rengi CSS'den gelen okurlar bu yüzden interpolasyon sürekli kalır - Sert çıplak karanlık sınıf + renkli-scheme; ikisini düzeltin Uzun-stale -surface-base (daha önce renk eki) gradient fallbacks YolculukCrest ve TörenClient
· kamolos
Expose nişanı/intent/commitment UIDs
AppMortgageDTO şimdi ticaret-yaşam döngüsü tanımlayıcılarını taşıyor Güvenlik hizmetleri her ipotek uygulaması üzerinde popülatlar. KamoLOS Onları aktif olarak kullanmıyor, ancak onları gelecekten sipariş etmek Borçlu-yüzlülükler (" uygulamanız işlendi") uygulanabilir Doğrudan URLA modeli olmadan ticaret katmanına atıfta bulun.
· kamo-internal
Show Trade context + Programlar sekmesi
- /applications kahramanı şimdi "Ticaret > Konut Mortgages · URLA 2021" diyor. Bu nedenle personel, ticaret modülünün bir dikeyi olarak ipotek görüyor, değil standalone pipeline. - Ticaret ayarları altında Yeni Mortgage Programları sekmesi - sadece katalog okudum Kredi programları (CONV/FHA/VA/...) aktif devlet ve kurallar versiyonu ile. Ayarlar nav tüm üç yerde güncellendi (Topics, rotalar, etiketFor). - AppMortgageDTO/SummaryDTO + yeni ProgramDTO/LoanProgramKom tipi ayna türü Paylaşılan-lib değişiklikleri (engagementUid / niyetUid / taahhütUid). - ipotekAppsApi.listProgramlar() mevcut / program uç noktası vurur.
· SecurityService
Enforce LOS hakları + / e-ticaret/engagements endpoint
- MortgageAppController: RolRightType üzerindeki her uç nokta. Okunanlar LOS VIEW PIPELINE gerektirir; yeni bir uygulama oluşturmak gerektirir LOS TAKE APPLICATION; Düzenlemeler herhangi bir LOS yazma rolünü kabul eder (take / process / process / process / process / process / Yaz / yakın / askıya alındı; silme gerektirir LOS SUSPEND OR WITHDW. KamoLOS'un hizmet hesabı zaten tam LOS sağ seti taşıyor, böylece Borçlu yolculuk etkilenmez; personel kullanıcıları rollerine kapılıyorlar. - TicaretÇevre Kontrolü: yeni GET ******************************** ( type/status/date filtreler ile liste) ve GET .../engagements/{uid} (detail) ACCESS COMMERCE'de kapılandı. Bu, dikey-agnostic bir takımdır ipotek-apps endpoint - aynı tel formatı bir okuma olup olmadığını ipotek, bir perakende sipariş veya kiralama rezervasyonu.
· kamo-shared-library
Wire URLA Bağlanma/Intent /Commitment /Intent /Commitment
Mortgage, ticaret sisteminin bir dikeyidir - perakende, kiralama, kiralama ile birlikte, Servis, abonelik ve satın alma. Bu URLA-faş ipotek ipotek Domain-agnostic ticaret hayatına o kadar çapraz-vertical yüzeyler (borline panjurlar, analitik, müşteri portal) başka bir şey gibi ipotek görüyor Katılım. - Uygulama: yeni bağlılık id / niyet id / taahhüt id FKs (belki için kullanılabilir). Geleneksel satırlar). - ************ bootstraps the org's MORTGAGE TicaretMarket + bir ilk uygulama oluşturmada KrediProgramKorutunu sunar; Her AppMortgage'a Katılım+Intent; Aynalar KrediFile. Durum durumu niyet üzerine.status ve Katılım. Durum; Bir Taitment üzerinde malzeme Kredi terimleri snapshot ile FUNDED. Idempotent son-to-end. - AppMortgageService: Blank/create FromLead bağlılık için bağlanır; Set SelectedProgramKod, niyetin teklifini yeniledi. KrediPipelineService.transition aynaları her geçişten sonra; ticaret Ayna başarısızlıkları URLA ilerlemesini engellemez (log + devam). - AppMortgageDTO / AppMortgageSummaryDTO yankıları Uid / niyetUid / Önsöz için taahhüt.
· kamo-internal
Bağcılarla Organize sekme ekleyin, ayırıcılar, üretilen docs
Doc yöneticisine organizatör ekleyin: - Yeni "Organizer" sekmesi (konder bir liste ile 4) + editör bölünmüş görüş; mevcut sekmeler doğru kaydırılır - "Organizasyona ek" her doc sırasında bir binder seçici (existing connecters or create new) açılır. - Binder editörü: drag-to-reorder öğeleri (HTML5 DnD), Page Broken (color + etiketi Modern RenkPicker ile), Generated Doc (Cover Page, Table of Contents, Photo Album, Word Count) ekleyin. - Photo Album yükleme-new-photos (ayrıca doc yöneticisine ekliyor) ve göz alıcı - Binder- çapında moderatörler paneli esign modifier şeklini yeniden kullanarak (sayfa numaraları, etiket, sumark) - Per-doc-instance modifier overrides via a per-item dialog - Preview modu, bir iframe PDF'yi bir iframe içinde oluşturur - İndir düğmeler /api/docs/binders/{id}/render Yeni Zustand mağazası Binder mağazası, REST müşteri uygulaması / tils /binderApi.ts ve Next.js proxy rotaları /api /docs /binders / * Mevcut görüntüleme proxy modelini aynalamak.
· DocsService
Add Organizer backend - CRUD, form, üretilen docs
Organize özelliği için /api/docs/bindersler altında yeni REST yüzeyi: - BinderController: CRUD, item add/update/remove/reorder, share, form - BinderService: org-scoped access checks, owner/share/template görünürlük, item pozisyonu yönetimi - BinderRenderer: iki geçit birleşmesi (C/WordCount’a teslim edildi), paylaşılan PdfBuildUtils aracılığıyla tüm modifierler geçerlidir - Cover Page için formers ile Genrated-doc kayıt, İçerikler Masası, Word Count, Photo Album (uses MinIO for image bytes) Reuses **************** esign-modified docs ve **************** erişim kontrolü için.
· kamo-shared-library
Binder/BinderItem/BinderShare varlıklar ve repositories ekleyin
Yeni doc-manager organizatör özelliği için kalıcı katman ekleyin: Binder (Long id, owner member, org-skod, isTemplate, binder-wide modifierJson) BinderShare (UUUID, alıcı üyeId, OK/WRITE rolü) - Spring Data JPA repositories with org-skod queryd Questions and a "visible to member" birliği (yalnızca + paylaşılan + şablon) Schema, Hibernate'un ddl-auto aracılığıyla KamoInitializerService tarafından otomatik olarak alınır.
· kamolos
Test pankartını soran, görüşe uygun, kurabiye onayını ekleyin
TestModeBanner yüksekliğini yayınlar -kamolos-banner-h ve Globals.css onu min-h ekrandan çıkarır, böylece ev görüşü hayır Artık pankartın pikseli tarafından görüntülenen akışlar. - Banner kaydırıcı bir amber shimmer + yavaş gölge pulu kazanır, bu yüzden Aktif bir uyarı olarak okur, pazarlama önizleme çubuğunu aynalayın. - Yeni CookieConsentBanner (Accept All / manage with Analytics toggle), karanlık kullanmak için pazarlama versiyonundan yeniden çıktı aurora yüzeyi + per-tenant -org-primary / -org-gradient.
· kamolos
Yüzey SAFE Yasası NMLS kimlikleri ödünç almak için + tahsis edilmiş
LoContactCard ile avatar, varlık pulu, doğrulanmış NMLS bağlantı ve ve Kahramanın üst solunda / e-posta/mesaj eylemleri arayın ve yüzeyler uygulayın, bu yüzden Borçlunun lisanslı kredisi (isim + NMLS ID) her zaman bir tanedir. Tapın - SAFE Act §1503 ve Reg Z §1026.36 (g). Kredi veren footer's NMLS, "Licensed · NMLS #" güven hapına ve UseAssignedLO şimdi kredi-file LO atamasına kadar sahte bir demo döndürür Topraklar. LoGuideChip sadece LO'nın kendi yüzeyi olduğundan ses çıkarmaya geri döner.
· kamolos
Gerçek onant çözmediğinde Demo kredileyici auto-loads
Sebep "kullanmayacak" - gerçek bir onant veyag mevcut değil hostname test ediliyor, bu yüzden SSR geri döndü ve her şey Kredili yüz yüzeyi paketli Kamo varsayılanlara düştü. The The The The The The The The markalaşma sistemi çalışıyordu; sadece marka için bir şey yoktu. Şimdi gemiler tam bir demo kredileyicisi bu otomatik yükleri sonbaharda geri döndürür. Gerçek getirmek hiçbir şey döndürür ve stublar izin verilir **************** the default). Prodüksiyon ile birlikte ublar hala Kamo varsayılanları temizlemek için düşüyor, bu yüzden biz değiliz Hiç bir zaman "Apex Mortgage" için gerçek bir borçtır. - lib/org/demoOrg.ts: "Apex Mortgage" - burgundy (#8B1538) birincil ve ve ve #8B1538) Altın (#D4A24C) ikincil olarak, kasıtlı olarak aurora'dan uzak, markalı etki güvenilmezdir. Full populate: tagline ("Üçüncü Seni eve götüren nesiller; NMLS #123456, telefon + e-posta, 1989, hem EHO + EHL işaretleri, lineer-135 gradient yönü. Yeni varlıkBasePath: '/demo-lender' org type, ThemeLogo'yu /demo-lender/logo-full'u yüklemek için söyler. daha önce MinIO veya küresel geri çekilmeye çalışıyor. - ******************** + logo..: gerçek Apex Mortgage burgundy → altın gradient'te kelime işareti ve dağ-peak işareti. Değil Değil Değil Sadece bir kelime işareti, gerçek bir kilit. - lib/org/fetchOrganizasyon.ts: geri dönüş olduğunda DEMO ORG döndürür ulaşılamaz veya hayır ya da kayıtlı değildir ve stublar buna izin verir. Gerçek-host / Gerçek niyetli karar şu anda kazanır. - bileşenler/theme/ThemeLogo.tsx: DanışmalarOrg().assetBasePath ve Bu eki aday zincirinin önünde koyar. Demo kredisi logo toprakları; gerçek kiracıların MinIO varlıkları hala ilk kez çözülürken Selam olsun. - app/layout.tsx: <link rel="preload"> aynı öncelikli düzeni izler, Bu yüzden SSR öncesi yük, demo kredileyicinin logosunu demo modunda olduğunda hedefler. Aktif. - **************** when org.id: 'demo-apex', Bayrak " demo kredileyicisini göster" diyor. Bu ev sahibi için yapılandırın" bu testçiler hangi marka olduklarını biliyorlar Görmek canlandı. 32/32 oluşturun, 140 test geçer. Borçlu uygulamayı yeniden yükleyin ve yapmanız gerekir Şimdi, Apex Mortgage logo + adı başlıkta, burgundy ve CTAs ve kurdeleler boyunca altın, " Apex Mortgage'a hoş geldiniz." iniş kahramanı, NMLS #123456 + EHO + EHL in the footer, "Call Apex Mortgage (800) 555-2739 yardım sayfasında.
· kamolos
İlk markayı ödünç alın, bir aksan değil
"Kamo ürünü kredi aksanlarla yeniden şekillendirin" "lender'in ürünü Kamo motor olarak." Her yüzey şimdi birbirine yol açar Borçlunun kimliği. - LenderLockup **************** - canonical kredier marka işareti her yerde kullanılır. Scales sm → md → lg → xl → kahraman. Pairs Logo (veya kelime işareti kredi verenin birincil renkte geri düşer) ile Kredinin adı; aşağıdaki opsiyonel etiket. Her yüzey tarafından kullanılır "Benim kredi kartımdayım." - BorrowerHeader - kafa barı h-14/h-16, logo + kredi adı Her zaman görünür (size="md” güçWordmark), damla gölge içinde kredi verenin birincil. Önceki küçük 24px köşe işareti gitti. Yeni bir Yeni A new A new A new A new click-to-call telefon düğmesi kredileyicinin yardımcı olmak için bir sonraki oturuyor birincil sınır + parlama; mobilde bir ikon düğmesine çöküyor. The The The The The The The The aksaklık 4px ( 2px) ve hala kredi veren gradient pans. - Landing page kahramanı - merkezid, kahramanca kilitlendi Güçlü bir cam kartının içinde ölçek -org-primary parlama. Yukarıda, Katlamalar "Selam'a hoş geldiniz" diyor. Adı, kredi verenin etiketi ile alt başlık olarak. Renkli bir hap, "{Lender} · Taksit Üzerine Kredi" diyor "Kamoville". CTA düğmesi daha büyük ve güçlü bir güçlü taşır --org-primary dış ışık. LenderFooter - tam alıntı satır: kredi adı + NMLS Tüketici Access link + telefon + e-posta + web sitesi + EHO/EHL işareti. Copyright çizgi "© 2023-2026 {LenderName}. Tüm hakları saklıdır.” küçük bir küçük "Onboarding by Kamo" kredisi. Kahraman yüzeylerde Visible. KahramanBrandIntro - üşün 3.4'ler ( 2.4'ler oldu), ilk ziyarette gösteriler Ve her 30-min idle geri dönüşü (bir kez-per-session) Logo kartı büyür boyut="hero" daha güçlü bir cam kartı içinde daha ağır bir cam kartı --org-primary dış ışık. {LenderName’e hoş geldiniz. Kredi etiketi alt başlıktır. - FindMetadata - Next.js unvanı şablonu şimdi “%s · {LenderName}’ Varsayılan ile sadece kredi adı. Her çocuk sayfası okur Tarayıcı sekme ve OG kartlarında ilk olarak. SiteName, unvanı ve Tüm akışları org kaydından tanımlayın. 32/32 oluşturun, 140 test geçer. Eğer onant örüntülü tagline / nmlsId / telefonDemir / e-posta Destek / yılEst / renkPri / renkSec / logo varlık, site Şimdi kredi verenin ürününüz gibi belirsiz görünüyor. Hiçbir şey ile “Kamo” varsayılanlara lütufla düşer.
· InitializerService
Borçlu marka için Göç + Açıklama sütunları
Kamo-shared-library Organizasyonunun yedi çıplak sütunu ekleyin Varlık şimdi (TAGLINE / NMLS ID / PHONE SUPPORT / EMAIL SUPPORT / EMAIL SUPPORT / / EQUAL HOUSING DISCLOSURE / ON PRIMARY TEXT / GRADIENT DIRECTION) böylece kamo-los borçlayıcı uygulaması, şema olmadan kredi veren markayı alabilir Mevcut orgs sıralarında hatalar. @Order (35) – LogoFullExtMigrationRunner (30) ve daha önce LeadCompanyColumnRunner (40). Idempotent via ADD COLUMN IF NOT EXISTS; Yeniden çalıştırmaya güvenli. Proje politikası bu dosya burada uygulanmaz - KamoInitializerService Kullanıcı tarafından başlatılır.

Evreniniz sizi bekliyor.
Birkaç dakika içinde ücretsiz olarak başlatın. Hazır olduğunuzda ürünleri ekleyin - göç yok, yeni girişler yok.
Sonsuza kadar ücretsiz — kredi kartı gerekmiyor