Saltar al contenido
KAMOUniverse

Changelog

Qué hay de nuevo.

Cada mejora de la plataforma, a medida que se envía.

  1. · kamo-internal

    P1 frontend - cola de carga-off - cronolineo de auditoría

    - LosApi: chargeOffQueue / confirmChargeOff / auditByLoan - ************************* página de la cola de revisión D120; usuario de org comentarios de cada préstamo, añade una razón, hace clic en Confirmar . POST /api/los/charge-off /Eid/confirm. Superfas el apoyo de LoanChargeOffService. - Nuevo componente de LoanAuditTimeline: lee **************** y renderiza la corriente completa de LoanAuditEvent (tipo de actor, amable, cantidad, de timestamp). Diseñado para conectarse a la página de detalles del préstamo del lado de la org.

  2. · kamolos

    Lote P1 - webhooks avance estado, crons, comercio vertical

    Movimiento monetario (el núcleo P1): - LoanPaymentPostingService: markSucceededAndPost / markFailed / markReturnedAndReverse / markDisborsementSucceded / markDrawDisdesdesed. Orden de asignación bloqueada: honorarios de interés principal. Estado de auto-avances DELINQUENT - ACTIVE - PAID-OFF basado en el equilibrio resultante. - StripeWebhookService ya no es solo entronco: pay.intent.suceded / pay.fallecido / charge.refunded (ACH return) / disputa.created.closed / pago. pagado-incautó todo el libro mayor a través de PostingService. - NachaReturnCode - RetryScheduler: Enrutamiento R-code compatible con NACHA R01/R09 reiniciar hasta 2o / 5 días de diferencia, R07/R10/R29 revoca el mandato, Retries agotados flip LoanPaymentMethod . REQUIRES.REVERIFY. Materialización comercial: **************** ahora crea Compromiso (PERSONAL-LOANS, COMMITTED), Compromiso (ACTIVE, con pricing-terms JSON instantáneas, Orden (AUTHORIZED, subtotal=principal) e enhebra sus identificaciones volver a Loan.commitmentUid / engagementUid / originOrderUid in la misma transacción. Trabajos de Cron (lógica real, no rastros): - CoolingOffAdvanceJob: enquecaues a PENDING DISBURSEMENT. cada préstamo de PENDING-DISBURSEMENT cuyo enfriamiento transcurrió. - InterestAcrualJob: devengo de interés simple diario en principalBalance para ACTIVE - DELINQUENT préstamos. - StatementGenerationJob: entrega de declaración por fecha límite, LOC por ciclo declaración con aproximación ADB - evaluación anual de honorarios - pago automático programar. - AutoDebitRunJob: desmienda los bits automáticos de PENDING . DISBURSEMENT. NACHA vuelve a obtener a través de StripeConnectService con las teclas idempotencia. - ReconciliaciónJob: resuma nocturna de tasas/principal/balance de la libro mayor; corrección de deriva registrado . auditado. - ReminderDispatchJob: tira de las notificaciones SCHEDULED más allá de su programadoFor y se entrega a través de NotificationDispatchService. Notificaciones: - **************** real HTTP POST a EmailService (/api/email/transactional/send) y VOIPService (/api/voip/sms/send, /api/voip/voice/send), templateKey = "préstamo.kind-lowercase". Validación: - LoanProductValidationService: hace cumplir el tope estatal de APR (por tipo), controles de tipo prohibido, cordura min/max- principal. Enganchado LoanProductService.create . Carga-off: - LoanChargeOffService.queue() enumera préstamos D120; .confirm() flips status a CHARGED-OFF y escribe un evento de auditoría CHARGE-OFF-RECORDED. - LoanChargeOffController expone **************** Nachegue de auditoría: - LoanAuditEventController expone ****************

  3. · kamo-internal

    Foramiento de endurecimiento de P0 - formularios, resolución de sesión, métodos de pago

    Formularios (lados de oreja): - **************** y páginas de edición /-productUid. - Nuevo préstamoProductForm: básicos / precios / límites / términos / términos / cumplimiento secciones, campos amables (instalación vs LOC), pagaré-nota plantilla UID, códigos estado permitidos - ********************** producto selección (sólo productos activos de este mercado), miembro prestatario, principal, término opcional, estado prestatario, "salvar borrador" vs "enviar" - /settings/caracteres/préstamo: org-side Stripe Connect en la página de incorporación (llama ******************* redirecciones a Stripe) Embarcación del lado del prestatario: - Nuevo usoCurrentSession() gancho resuelve memberId/orgId de /api/user-info (camino canónico ***) - reemplaza a la falsa KEMBRE/KORG cookies lee en Mis préstamos, Oferta Detalle, Detalle del préstamo, Ajustes de préstamos, PipelineLoanOffersTab, PipelineActiveLoansTab - New BorrowerPaymentMethodsCard: prestatario puede vincular ACH bank (Stripe p.method id .mand. mandato) o tarjeta, ver métodos vinculados, establecido por defecto, revocar; incrustado en la página /présta/[préstamo] - LosApi: . startStripeConnectOnboarding Configuración nav (2 de 3 lugares por regla de memoria): - ConfiguraciónStatusWindow añade "Productos de Préstamo" en la entrada de la ruta de Commerce para ******************* - (sidebar.tsx no tiene entradas POS - confirmadas no-op)

  4. · kamolos

    Freenización de P0 - Punto final de Stripe Connect - PDF flatten

    - Fix EsignClient imports: EsignGenericEnvelopeRepository / EsignSignatureRepository vivir en .esign.repos, no raíz .esign - Nuevo StripeConnectController POST **************** crea org Custom-account . devuelve URL de a bordo (delegados a ya existe StripeConnectService) - MediaServiceClient.fetchBlob: tira de los bytes de una mancha almacenada para Flujos de trabajo planos/re-render - Nuevo PdfFlattenService: adjunta una firma compatible con la Ley E-SIGN página de certificación de la fuente de divulgación en PDF para cada capturado firma (nombre tipo traducido en cursiva; firmante/IP/UA/SHA-256 - sobre UID registrado en la página). Almacena la nueva mancha aplanada a través de MediaService y devuelve blob id SHA-256. - EsignClient.submitLa firma ahora se aplana después de marcar SIGNED y púmulos **************** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flotten registros de falla pero no hace retroceder la propia firma.

  5. · kamo-internal

    /api/los/* ruta de proxy . KamoLOS vía k8s DNS

    Espejos el /api/billing/[[...path] BillingService proxy: - sesión de *** resuelta vía Redis; X-Org-Id . X-Member-Id reenvió - /api/los/webhooks/* skip session auth (Stripe signature-verified at KamoLOS); Pasan la cabecera Stripe-Señala - Conservó el pasorilla de Dios - 502 envolviendo fallas aguas arriba

  6. · kamo-internal

    Añadir PERSONAL-LOANS commerce type front-end

    - engagementTypeLabels: ampliar EngagementType union - MarketCardGrid: PERSONAL-LOANS color (-14b8a6) . . . . . . . . . . . . . . . . . . . . . - Página de detalle del mercado: nuevas pestañas (Productos de Préstamo / Ofertas / Préstamos Activos / Reglas del Estado) cerradas en el comercioType === 'PERSONAL-LOANS' - losApi.ts: Superficie completa de DTO de la fósforo deslumbramiento golpeando /api/los/* para productos, ofertas, préstamos, pagos, sorteados, estados de cuentas, pago métodos, pago automático, reglas estatales, presentación de firmas de ESign - Nuevo MarketLoanProductsTab / MarketLoanOffersTab / MarketActiveLoansTab / MarketLoanStateReglas Componentes de la etiquetaTab - Visitulina: Entrada VERTICAL-ICONS para personal-loans - PasopelineVerticalSección: PERSONAL-LOANS en hasSubTabs . rutas Ofertas (intents) - Préstamos activos (compromisos) sub-tabs - Nuevo oleoductoOffersTab / PipelineActiveLoansTab - Borrower (Miembro) /loya de préstamos: index, /présta/ofertas/[ofertaId] con flujo de aceptación y señal (firma tipoda . ESign submission . aceptación-oferta), /présta/[préstamo] con saldo, estados de cuenta, pago historia, Pay Now, sorteado por LOC - configuración/page.tsx: el comercio nav añade entrada "Productos de Préstamo"

  7. · kamolos

    originación inicial de préstamo personal - servicio de servicio de servicios

    New Spring Boot 3.1.5 / Java 21 microservicio modelado en BillingService. Propiedades dominio de préstamo personal de extremo a extremo: - LoanProduct / LoanOffer / Loan CRUD con REST . - LoanLifecycleService materializa el préstamo y el comercio Compromiso/Compromiso en la oferta de aceptación (un txn) - LoanPayment - LoanDraw - LoanStatement - LoanPaymentMethod Servicios de LoanRecurringPaymentPlan - controladores - Matemáticas: AmortizationEngine (Reg Z Apéndice J), InterestAccrualEngine (ACT-365 / ACT-360 - ADB), Atencador de pagos (fees.interest-principal) - StripeConnectService (Abordado de la cuenta pública, desembolso ACH, Debit ACH) - StripeWebhookService (idempotent via PréstamoStripeWebhookEvent) . connect-specific webhook endpoint - TilaRendererService renderiza la caja Reg Z Schumer (instalación) / revelación abierta (LOC) vía PDFBox en MinIO - StateRuleSelfHealService boot-loads loan.state.rules.json (50-estado registro . MLA cap-Cop de la acción enfriamiento) - conciliar el patrón de derechos - EsignClient - EsignSignController completa la falta de dirección de los miembros ruta de la sumisión de firma (escritos EsignGenericEnvelope Esignafirma en shared-lib) - NotificationDispatchService con programación diseminada - Trabajos de Cron: Oferta de Expasión, declaraciónGeneración, DelincuenciaSweep - k8s manifiestos (configmap / despliegue / servicio), Dockerfile, Flujo de trabajo de Forgejo CI (dualcluster K1M1-K2M1) todos alineados con Convenciones de BillingService

  8. · kamo-shared-library

    Añadir tipo de comercio PERSONAL-LOANS - paquete de entidad

    - CommerceType.PERSONAL-LOANS - paralelo EngagementType . vocabulario - BuiltinVendorCategorías entradas para vendedores de préstamos personales - 15 entidades de la JPA de préstamos personales (LoanProduct, LoanStateRule, LoanOffer, LoanOfferDecision, Loan, LoanDraw, LoanPayment, LoanPaymentMethod, LoanRecurringPaymentPlan, LoanStatement, LoanFee, LoanDisclosure, LoanAuditEvent, LoanStripeWebhookEvent, LoanNotification) 15 repos - 22 préstamos personales enums (estatuto, nivel, amable, fuente, canal, etc.) - Esign EsignGenericEnvelope . EsignSignature . repos para no hipotecar creación de sobre y captura de firma orientada a los miembros - KamoLOS - KamoMLOS sólo comentarios-s refs actualizado en toda la Organización / CommerceMarketServicio / CommerceService La gestión del esquema sigue con KamoInitializerService; KamoLOS utiliza ddl-auto: ninguno.

  9. · kamo-internal

    Las subidas de foto-álbum utilizan el mismo gasoducto WS que la pestaña Subir

    Extrae la tubería de cargado de dác-manager (hashing - dedup check - register-or-upload" - conversión impulsada por WebSocket) en un uso reutilizableImagingUploads gancho. El gancho posee la máquina estatal por cuadro de archivo, el progreso de XHR y la suscripción de conversión en vivo-progress WebSocket que utiliza la pestaña Uploads. Diagnómetro de foto-álbum reescrito para consumir el gancho: - Los archivos hacen cola automáticamente y procesan uno a la vez. - Cada archivo en vuelo muestra su etiqueta de escenario actual (Hashing . Compresión de carga .Convertir . Completar) con un LinearProgress, un icono de verificación / error / spinner, y un botón de Retry después del fallo. - El diálogo ahora muestra el mensaje de error del servidor real (por ejemplo. "No se puede subir a MinIO") en lugar de tragárselo, y un ahorro está bloqueado mientras las subidas siguen en vuelo. - Sueltos cargados con éxito se conectan automáticamente al álbum como elementos.

  10. · kamolos

    Ocultar es Active=false programas de prestatarios en tiempo real

    useProgramCatalog ahora filtra los programas con isActive=false antes devolviéndolos al mago del préstamo. La bandera es del lado del servidor computado como (base.isActive AND override.isActive), así que cuando un prestamista alterna un programa en la pestaña de configuración de los Programas Hipotecarios, la tarjeta correspondiente se detiene que aparece en la selección de persona/programa, con un tope de los años 60 existentes techo de staleTime.

  11. · SecurityService

    Ofrendas de programas de relleno para los mercados hipotecarios existentes en bota

    DataLoader ahora llama **************** después del relleno de AppMortgage-engage. Barre todos los MORTGAGE existentes CommerceMarket y asegura que sus ofertas de programas estén aprovisionadas. Covers mercados que fueron creados antes de que el gancho de la cara de market aterrizó. específicamente los que el usuario añadió a través de Markets & Fields antes de esto El despliegue. Idempotente: un sistema totalmente atascado registra "todos los mercados ya aprovisionado" y saltos.

  12. · kamo-shared-library

    Ofrendas del programa hipotecario de Bootstrap en el mercado crean relleno de botas

    Cuando el usuario crea un CommerceMarket con commerceType=MORTGAGE a través de la Pestaña de configuración de mercados y campos - el mercado necesita ofertas de programas bajo él para las superficies de comercio descendente a punto de señalar las intenciones. Anteriormente esto sólo ocurrió perezosamente en la primera aplicación de la creación de la aplicación, así que la hipoteca recién agregada Los mercados estaban vacíos y los administradores del lado de KamoLOS no vieron ningún efecto de añadir uno. - ******************* cuando escriba=MORTGAGE, llame **************** mercado) después de ahorrar. Envueltos en prueba/captura para que un fracaso de la búsqueda de programas no bloquee la creación de mercado (KamoLOS lee programas del registro del Programa, no Ofertas). - ******************* barridos todos los mercados existentes de MORTGAGE y aseguran que sus ofertas estén aprovisionadas. Utilizado por SecurityService DataLoader en arranque para cubrir los mercados creados antes este gancho aterrizó. Las botas de estado estangollero son un no-operación.

  13. · kamo-internal

    Duplicar aglutinantes para que los usuarios puedan tenedor sin afectar el original

    Añade una acción "Duplicada" accesible desde el menú contextual de la lista de carpetas y desde un nuevo botón en la cabecera del editor. El duplicado parte de los metadatos de la carpeta de origen, los elementos, los modificadores, propiedad del usuario actual sin acciones, y se selecciona automáticamente para que el usuario aterrice en la nueva rama inmediatamente. Alambres hacia arriba: - **************** ruta de apoderado - duplicadoBinder() en binderApi.ts y useBinderStore - "Duplicar" elemento de menú en BinderListPanel (trabajar en cualquier aglutinante visible - propiedad, compartido o plantilla) - Botón de icono duplicado, spinner en la cabecera BinderEditor

  14. · DocsService

    Añadir POST *************

    Las copias profundas de un aglutinante que el solicitante puede ver (propiedad, compartida o plantilla) en una carpeta fresca propiedad del solicitante. Copias de cada elemento (DOC, SEPARATOR, GENERATED) con orden, tipo, configJson y modificador por inestras intactos; copia modificadores de ancho de carpeta; deja los documentos Img subyacentes solos (ambos carpetas hacen referencia a los mismos documentos). La copia comienza sin acciones y esTemplate=false.

  15. · kamo-internal

    Programas de hipotecas toggle - MORTGAGE engagement-link profundo

    - HipojoProgramsPanel ahora envía un interruptor real en cada tarjeta de programa con actualización optimista y retroceso en el fracaso. Llamando a un programa PUT ************* y refleja el eficaz estado activo lado del servidor calculado de la base. - **************** isActive) envuelve el nuevo punto final. - /commerce/engagements/[id] page: Enlace de APLICACIONType ahora rutas a / aplicaciones/-linkId (la página de detalles URLA), no la falta ******************* Los compromisos de MORTGAGE se redirigen a /aplicaciones/-linkId en carga para que los usuarios aterricen en URLUn detalle directamente en lugar de la visión genérica de compromiso.

  16. · SecurityService

    PUT /programas/-code-/active . deprecate hipotecaria heredada POS endpoints

    - HipotecaProgramController gana PUT **************** con el cuerpo "isActive": bool, cerrado en LOS.TAKE-APPLICATION. Delegados a **************** que se alza la fila de OrgProgramOverride. - **************** get MortrtgageAppById, create MortrtgageApp, updateMortgageApp, updateMortgageAppStatus todo marcado con javadoc llamando a los llamantes en la URLA-fidelity /api/security/mortgage-apps Puntos finales. Las vías POS heredadas se quedan funcionales para la compasión trasera.

  17. · kamo-shared-library

    Per-org enable/discapacable - depretecizar la ruta hipotecaria de comercio heredado -sólo

    - ************* upserts un OrgProgramOverride fila con registroState.isActive=desired; listForOrg ahora Y es el programa base de bandera activa con la anulación, por lo que una anulación discapacitada lleva el doble significar "este org ha deshabilitado explícitamente este programa". - OrgProgramOverrideRepository añade findAllByOrganizationId y **************** para la lista de caminosForOrg. - **************** / findMortgageAppById / **************** / updateMortgageApp / actualización de la actualización de la empresa.HerpoStatus. Operan solo en comercio Intenciones etiquetadas LOAN-APPLICATION y NO crean o leen URLA AppHerma de vídeo discos - guardado para la compasión de ida con **************** pero el nuevo código debe usar AppMortgageService /api/security/hip-apps.

  18. · kamolos

    Flizable tema de la noche con luna solar SkyToggle

    - Continuous t . [0,1] unidades de posición de la escena de 25 CSS propiedad personalizada en:root vía interpolación lineal RGB entre el día de papel cálido y Anclajes nocturnos de aurora en lib/scene/palettes.ts - Fallos a la hora local del día en la primera visita; anulación manual pegajoso en una cookie, con un botón de reloj-icon para volver a activar el auto seguir - SSR ScenePainter hornea la paleta resuelta antes de la primera pintura, así que no hay FOUC en visitas de regreso; el modo auto-visita de primera visita se alivia desde el día hasta el horario local en más de 1,4 libras - SkyToggle: pulgar puntero-draggable cuyo glifo de la luna subosa se gira en en tiempo real con t y morfos entre el sol-con-rayos y la luna creciente - PageGlow . Capas de ambiente de StarField: ámbar brillo de la izquierda superior en día, fresca luna-luz derecha de arriba-de noche, 80 libras estrellas semilla se desvanecen en pasado al atardecer y brillar a través de marco de claves de la cámara reducida - interruptores de tema MUI en el límite del atardecer; CssBaseline color de la carrocería lecturas de CSS vars tan interpolación se mantiene continua - Deja caer la clase oscura dura y color-esquema; arregla dos Regresos de gradiente de largo-acoso --surface-base (falta de color-prefijo) gradiente en JourneyCrest y CeremonyClient

  19. · kamolos

    Expong engagement/intención/compromiso/compromiso UIDs

    App-Her-ageDTO ahora lleva los identificadores de ciclo de vida comercial que el SecurityService backend pueblan en cada aplicación hipotecaria. KamoLOS aún no los usa activamente, pero tecleándolos a través de los medios de futuro Las asequios orientados a los prestatarios ("su solicitud ha sido comprometida") pueden referencia la capa de comercio directamente sin pasar por el modelo URLA.

  20. · kamo-internal

    Mostrar contexto de Comercio. Pestaña de configuración de los programas

    - /applications hero de ahora lee "Comercio de Hipotecas Residenciales . URLA 2021" para que el personal vea la hipoteca como una vertical del módulo de comercio, no como una Gasoducto independiente. - Nueva pestaña Programas Hipotecarios bajo Configuración de Comercio programas de préstamo (CONV/FHA/VA/...) con estado activo y versión de ruleset. Ajustes nav actualizado en las tres ubicaciones (subTemas, rutas, labelFor). - AppMortgageDTO/SummaryDTO - nuevo ProgramDTO/LoanProgramCemetro tipo espejo los cambios compartidos-lib (compementoUid / intenciónUid / compromisoUid). - hipotecaAppsApi.listPrograms() llega al endpoint existente /programas.

  21. · SecurityService

    Ejetura los derechos de los LOS . /commerce/engagements endpoint

    - MortgageAppController: cada endpoint ahora puertas en RoleRightType. Lecturas requerir LOS.VIEW-PIPELINE; la creación de una nueva aplicación requiere LOS.TAKE-APPLICATION; las ediciones aceptan cualquier papel de papel de escribo de Los EE. (toma / proceso / Suscribir / cierre / suspensión); la eliminación requiere LOS.SUSPEND.OR-WITHDRAW. La cuenta de servicio de KamoLOS ya lleva el set completo de la derecha de LOS para El viaje de los prestatarios no se ve afectado; los usuarios están cerrados por su papel. - CommerceEngagementController: new GET ************* (lista con filtros tipo/estatuto/fecha) y GET .../engagements/-uid- (detalle), cerrada en ACCESS-COMMERCE. Esta es la contraparte vertical-agnóstica de la punto final de hipotecas - el mismo formato de alambre si estás leyendo un hipoteca, un pedido al por menor, o una reserva de alquiler.

  22. · kamo-shared-library

    URL de alambreUna hipoteca en Compromiso/Intención/Compromión

    La hipoteca es una vertical del sistema de comercio junto con el comercio minorista, el alquiler, servicio, suscripción y contratación. Esto conecta la hipoteca URLA-fidelidad Apilar al ciclo de vida de comercio de dominio-agnóstico para superficies transversales (ámbares de tubería, análisis, portal de clientes) ver hipoteca como cualquier otro compromiso. - Aplicación: nuevo engagement.id / intent.id / engagement-id FKs (nualable for filas heredadas). - **************** bootstraps el MORTGAGE de la org CommerceMarket - una Oferta por LoanProgramCode en la primera aplicación crea; Agrega Compromiso a cada AppMortgage; espejos LoanFile.status on Intent.status y Engagement.status; se materializa un Compromiso sobre FUNDA FUNDADO con los términos del préstamo instantánea. Idempotente de extremo a extremo. - AppMortgageService: createBlank/createFromLead adjunto al engagement; setSelectedProgramCode refresca la oferta de la Intención. - LoanPipelineService.transition retropejos después de cada transición; comercio Los fallos del espejo no bloquean la progresión URLA (log . continue). - AppMortgageDTO / AppMortgageSummaryDTO exponer engagementUid / intentUid / compromisoUid para el frontend.

  23. · kamo-internal

    Añadir la pestaña Organizador con carpetas, separadores, documentos generados

    Añade el Organizador al administrador del doctor: - Nueva pestaña "Organizadora" (posición 4) con una lista de carpetas y editor split vista; pestañas existentes cambian a la derecha - "Añadir al organizador" acción en cada hilera de doc abre un recolector (encuadernadoras existentes o crear nuevas) - Editor Binder: artículos de arrastre a la reparación (HTML5 DnD), añadir Page Separator (marca color a través de ModernColorPicker), añadir Generated Doc (página de cobertura, Tabla de contenidos, Álbum de fotos, cuenta de palabras) - Photo Album admite cargue-nuevos (también se suma a la gestora de doc) y navegando-existente - Modificadores de ancho de Binder panel reutilizando la forma modificadora de esigno (números de página, etiqueta, marca de agua) - El modificador de formado endoc. se anuló mediante un diálogo por ítem - El modo vista previa convierte el PDF fusionado en un iframe - Descargar botón invoca /api/docs/binders/-id-/render Nueva tienda de Zustand useBinderStore, REST client app/utils/binderApi.ts, y Next.js proxy routes under /api/docs/binders/* que refleja el patrón de proxy de imágenes existente.

  24. · DocsService

    Añadir el backend del organizador . CRUD, render, generado docs

    Nueva superficie REST bajo /api/docs/binders para la función Organizador: - BinderController: CRUD, artículo add/actualizado/remove/reordenar, compartir, render - BinderService: controles de acceso con org-scoped, visibilidad de propietario/partito/templato, gestión de la posición de los elementos - BinderRenderer: fusión de dos pasos (conded ToC/WordCount) aplicable por instancia y modificadores a todo carpetas a través de PdfBuildUtils compartidos - Registro generado-doc con renderizadores para la página de portada, Tabla de contenidos, cuenta de palabras, álbum de fotos (utiliza MinIO para bytes de imagen) Reutiliza ************* para documentos modificados por la suignidad y **************** para el control de acceso.

  25. · kamo-shared-library

    Añadir Binder/BinderItem/BinderCompartir entidades y repositorios

    Añade la capa de persistencia para la nueva función de organizador doc-manager: - Binder (Long id, miembro propietario, org-scoped, isTemplate, modifierJson aglutinante) - BinderShare (UUID, miembro receptorId, READ/WRITE role) - Repositorios JPA de Spring Data con consultas de org-scoped y un sindicato "visible a miembro" (propiádida - plantilla compartida) El esquema es recogido automáticamente por KamoInitializerService a través del ddl-auto de Hibernate.

  26. · kamolos

    Adorar el banner de prueba, encaizar el deporte, añadir el consentimiento de cookie

    - TestModeBanner publica su altura a --kamolos-banner-h y globals.css lo resta de min-h-screen para que la vista casera no más largo desborda el puerto de vistas por los píxeles del banner. - Banner gana un brillo ámbar deslizante pulso de sombra lenta para que Lee como una advertencia activa, reflejando la barra de previsualización de marketing. - Nuevo CookieConsentBanner (Aceptar todo / Administrar con análisis conmutación), deslizado de la versión de marketing para usar la oscuridad superficie de aurora por inquilino --org-primario / --org-gradiente.

  27. · kamolos

    Surface SAFE Act NMLS IDs para prestamistas.

    Añade LoContactCard con avatar, pulso de presencia, enlace NMLS verificado, y acciones de llamada/coro/mensaje en la parte superior izquierda del héroe y aplicar superficies, así que el iniciador de préstamo con licencia del prestatario (nombre de identificación NMLS) es siempre uno , requerido por la Ley SAFE, el número de 1503 y el Reg Z, de 126,36 (g). El prestamista El NMLS del pie de página es promovido a una píldora de confianza "Licensed - NMLS, y UsarAssignedLO ahora devuelve una demo falsa LO hasta la asignación de la letra de la letra tierras. LoGuideChip vuelve a la voz sólo desde que la LO tiene su propia superficie.

  28. · kamolos

    Demo prestamista autocargas cuando no se resuelve ningún inquilino real

    La razón "todavía no marcada" no existía ningún verdadero inquilino org para el el nombre de host que se está probando, por lo que la SSR devolvió nula y cada La superficie orientada al prestamista cayó a través de los Kamo paquetes por defectos. El El sistema de marca estaba funcionando; simplemente no tenía nada que marcar con. Ahora envía un completo prestamista demo que se autocarga como la caída cuando el verdadero conseguir devuelve nada Y los taleros están permitidos ************* el defecto). Producción con los tenedores desactivados aún caen a Kamo desnudo por los defectos de los defectos para que no lo hagamos alguna vez envía un verdadero prestatario a "Apex Mortgage". - lib/org/demoOrg.ts: "Apex Mortgage" - burdeos (8B1538) primaria y oro de oro (D4A24C) secundario, deliberadamente lejos de la aurora por lo que el El efecto de marca es inconfundible. Pintura completa: eslogan ("Tres generaciones de llevarte a casa"., NMLS .123456, teléfono de soporte email, año establecido 1989, ambas marcas EHO y EHL, lineal-135 Dirección de gradiente. Nuevo activoBasePath: '/demo-lender' en la zona tips TemeLogo cargar /demo-lender/logo-full.svg antes probar MinIO o la caída global. ******************* . logo.svg: real Apex Mortgage marca y marca de pico de montaña en el gradiente de oro burdeos. No Sólo un punto de palabra, un encierro real. - lib/org/fetchorgan.ts: devuelve DEMO-ORG cuando se aguas arriba es inalcanzable o ningún org está registrado y los talones lo permiten. Albergue real / La resolución real-tenant gana cuando está presente. - componentes/tema/themeLogo.tsx: consulta useOrg().assetBasePath y pone ese prefijo al frente de la cadena de candidatos. Demo prestamista terrenos logotipo; los activos de los inquilinos reales MinIO aún resuelven primero cuando Poblado. - app/layout.tsx: "link rel="preload"--sácar el mismo orden de prioridad, para que la precarga de SSR se dirija al logotipo del prestamista demo cuando el modo demo es activo. - ************* cuando org.id === 'demo-apex', la pancarta excita "Mosando el prestamista demo (sin inquilino org configurado para este huésped) " por lo que los probadores saben qué marca son ver es enlatado. Construye 32/32, 140 pruebas pasan. Recarga la aplicación del prestatario y deberías Ahora vea el logotipo de Apex Hipojo de nombre en la cabecera, la burdeos y oro en todo los CTAs y cintas, "Bienvenido a la hipoteca de Apex". el héroe del aterrizaje, NMLS 123456 - EHO EHL en el pie de la ciudad, "Llama a Apex Hipoteca (800) 555-2739" en la hoja de ayuda.

  29. · kamolos

    Haz del prestamista la marca principal, no un acento

    Replantea la aplicación orientada al prestatario de "producto kamo con acentos prestamistas" para "el producto del prestamista, Kamo como el motor". Ahora toda superficie conduce con la identidad del prestamista. - LenderLockup **************** . prestamista canónico Marca de marca usada en todas partes. Escalas sm . md . lg xl . héroe. Pares el logo (o desplome de palabra en el color principal del prestamista) con el nombre del prestamista; eslogan opcional a continuación. Usado por cada superficie que necesita sentirse "Yo estoy en el sitio de MI prestamista". - BorrowerHeader - bar de cabecera crece a h-14/h-16, logotipo de nombre del prestamista siempre visible (size="md" fuerzaWordmark), en la sombra de caída teñida en el Lender es primaria. La marca de esquina de 24px anterior se ha ido. Un nuevo botón de llamar al teléfono se sienta junto a Ayuda con el prestamista de la ayuda frontera primaria brillar; en el móvil se derrumba a un botón de icono. El La cinta de acento es de 4px (estaba 2px) y todavía se desliza el gradiente prestamista. - Héroe de la página de aterrizaje, centrado, dominado por el encierro del prestamista a Héroe báscula dentro de una tarjeta de vidrio con brillo fuerte --org-primaria. Por encima de la pliegues lee "Bienvenido a "LenderName" (el prestamista recortado en el gradiente El nombre es el titular), con el eslogan del prestamista como subtítulo. Una píldora de colores dice "Lender, de préstamo de a bordo" en lugar de genérico "Kamoville". El botón CTA es más grande y lleva un fuerte --org-primirción externa primaria. - LenderFooter - fila de atribución completa: nombre del prestamista NMLS Consumer Enlace de acceso a Internet. Línea de derechos de autor , se lee "o 2023-2026 "LenderName". Todos los derechos reservados". con un diminuto "Abordando por Kamo" crédito. Visible a través de las superficies de héroes. - HeroBrandIntro - salpicaduras de 3.4s (era 2.4s), espectáculos en primera visita Y cada retorno ocioso de 30 minutos (fue una vez por sesión). Crece tarjeta de logo a tamaño="hero" dentro de una tarjeta de cristal más fuerte con una más pesada --org-primirción externa primaria. "Bienvenido a LenderName". es el titular; El eslogan del prestamista es el subtítulo. - generateMetadata de título de Next.js es ahora %s . con el valor predeterminado es sólo el nombre del prestamista. Cada página de niño lee prestamista-primero en la pestaña del navegador y tarjetas OG. siteName, title, y descripción todo fluye del registro de org. Build 32/32, 140 pruebas pasan. Si su config inquilino ha poblado eslogan / nmlsId / phoneSupport / emailSupport / yearEst / colorPri / colorSec / logo activo, el sitio Ahora se parece inequívocamente al producto de su prestamista. Sin nada Poblado con gracia a "Kamo" por defecto.

  30. · InitializerService

    Migración para la marca orientada a los prestatarios - columnas de divulgación

    Añada las siete columnas nulas de la organización de la biblioteca compartida de kamo entidad ahora declara (TAGLINE / NMLS-ID / PHONE-SUPPORT / EMAIL-SUPPORT / EQUAL-HOUSING-DISCLOSURE / ON-IMARY-TEXT / GRADIENT-DIRECTION) la aplicación de prestador kamo-perse puede recoger la marca de prestamistas sin esquema errores en las filas de orgs existentes. Orden (35) se ejecuta después de LogoFullExtMigrationRunner (30) y antes LeadCompanyColumnRunner (40). Idempotente a través de ADD COLUMN IF NO EXISTS; a salvo para volver a correr. Según la política de proyectos, este archivo no se ejecuta aquí . KamoInitializerService lo inicia el usuario.

Tu universo está esperando.

Comience gratis en minutos y agregue productos cuando esté listo, sin migración ni nuevos inicios de sesión.

Gratis para siempre: no se requiere tarjeta de crédito