Changelog
Qué hay de nuevo.
Cada mejora de la plataforma, a medida que se envía.
· KlusterServices
Requiere la tecla API y admita solo RAGService
· EmailService
Enviándome el correo necesita un asiento, para personas y miembros de IA por igual
Un miembro sin un asiento con licencia es denegado con el órgano compartido 403 SEAT-REQUIRED antes de que algo se envíe: POST /api/email/send, el camiso compartido enviar, y los cuatro reuniones-invite rutas (final, actualización, cancelación, respuesta). Un evento de calendario excepto pide la asiento sólo cuando invita a sus huéspedes por correo electrónico (envísitales verdaderos, notificaráByEmail no false): el diálogo del calendario y KamoMobile envía notificarEnvío de correo electrónico verdadero en cada guardar, así que a La entrada del calendario claro se mantiene abierta a todos. Las rutas internas nunca preguntan. El despliegue también toma el propio inicio de sesión NATS del servicio (nats-usuario-email), el Redis ACL login (redis-auth) y el secreto interno KamoAI.
· MediaService
Reuniones, chats grupales, adjuntos y llamadas necesitan el asiento que los incluye
· kamo-internal
El recolector de chat lista sólo los modelos que el miembro puede elegir
El seleccionador leyó la lista de modelos del administrador (403 sin MANAGE-AI-MODELS) y ofrece proveedores, que nunca seleccionó un modelo. Ahora lee GET /api/ai/models/seleccionable a través de una nueva ruta BFF, deja las opciones del proveedor, mueve una conversación desviada con el proveedor a Auto, y se queda con el proveedor orden AIService envía (prioridad de la organización) en lugar de volver a clasificarlo por su nombre.
· InitializerService
Migración para org alias domains, viendo la plataforma dos
Crea **************** y semillas la plataforma (es top level) con kamouniverse.com (por defecto, llevando adelante el viejo hardcoded platform.mail.domain) and kontak.kamocrm.com (additional, not default). Aplicado directamente a la producción antes de este compromiso — este servicio se ejecuta manualmente contra el OSD, no se desplega, por lo que el cuadro ya existe; esta es la fuente de registro para el siguiente ambiente fresco o re-run. La biblioteca con forma de kamo chocó con 1,6.2 para ****************
· EmailService
Lea el default de alias-dominio del compositor de los org-alias-domains
******************* usado un dominio codificado (platform.mail.domain, kamouniverse.com) como envío sintético por defecto, y sólo para la plataforma org ************* Lecrías OrgAliasDomainRepository en su lugar: cualquier org puede registrar cualquier número de alias dominios ahora, cada uno ofrecido como una identidad de envío en las primarias del miembro buzón, con la fila de bandera predeterminada de la org todavía prependdida como el El default del compositor exactamente como kamouniverse.com lo fue. lalibraria compartida de kamo se subió a 1.6.2 para ****************
· kamo-shared-library
Añadir orgalias-domains, la forma per-org del dominio de correo de la plataforma
Generaliza la plataforma de código dura única.mail.domain (kamouniverse.com, y sólo para la plataforma org) en una mesa cualquier org puede sostener cualquier número de filas en. EmailService's SendableMailboxService lo lee para ofrecer cada dominio como un enviar-como identidad en el buzón principal de cada miembro, el mismo mecanismo que antes.
· SecurityService
El interruptor de asesinato de IA puede ser leído por quien tenga su derecho
· kamo-internal
AI Platform Services e AI Kill Switch rights
· kamo-internal
La aplicación de AI Workforce y sus cuatro derechos; el guardaespees lee Java de nuevo
· AIService
Una mesa de ruta decide quién puede llamar a cada ruta de AIService
· kamo-shared-library
Un prefijo de bandeja de entrada privada para nuevos servicios, y el trabajador de LOS webhook está opt-in
· kamo-shared-library
Servicios inicia sesión para Redis con un nombre de usuario y contraseña cuando se le da uno
· kamo-shared-library
Una regla de asiento para la consola y cada servicio que la ejecute
La resolución lee al miembro con su organización embravecida y no abre transacción propia, por lo que un asiento se decide correctamente en un hilo sin contexto de persistencia (el AI WebSocket) y una lectura fallida realmente falla abierta en lugar de lanzar UnexpectedRollbackException pasado de la captura.
· KlusterServices
Inicie sesión en Redis como mail-rspamd
rspamd lee su contraseña de correo secreto/rspamd-dis-auth, incluido en local.d/redis.conf. La vaina gana fsGroup 11333: la imagen corre en 11333:11333 y una raíz: root 0440 El archivo secreto es un permiso fatal negado en la carga de configuración.
· kamo-shared-library
Servicios de plataforma de IA y derechos de cambio de mata, y la columna del interruptor
· KlusterServices
Usuarios de ACL para la plataforma, rspamd y operadores (por defecto aún abierto)
· kamo-shared-library
Ver, supervisar, aprobar y gestionar la fuerza de trabajo de IA (329-332)
· KlusterServices
Un login por carga de trabajo en la cuenta de KAMO, al lado de kamosvc
· kamo-shared-library
Aplicación AI Workforce, fuera del límite PHI y nunca automática
· kamo-internal
Elija cómo una aplicación publicada hace sus preguntas
"Publicar esta aplicación" (Configuración → Características → CRM → Vendedores y Productos) ahora lleva tres opciones al lado del chat, cada una un par de cartas que dicen lo que Quiero decir: - Tipo: Normal (unas pocas preguntas relacionadas por paso) o Squeeze (una pregunta por pantalla, cada explicada en palabras simples). - Información de contacto: Inicio (nombre, correo electrónico y teléfono primero, guardado el momento en que son entró, por lo que una solicitud abandonada es todavía una ventaja) o Last (el préstamo primero, detalles de contacto justo antes de enviar; nada guardado hasta entonces). - Campos: Completo o Básico (sólo lo que una primera llamada necesita). Una vista previa en vivo junto a ellos redibuja la primera pantalla, el orden de sección (contacto visiblemente se desliza hasta el final) y lo que el prestatario se reunirá — cuántas preguntas, y cuando se salva la pista. El diálogo es `md` así que ambos encajan de lado a lado. Las opciones viajan en el PUT existente .../aplicación (servicio de seguridad d345869), ida y vuelta a través de la lista de proveedores, y prefijo cuando el diálogo es reabierto. La reapertura de una página en vivo ahora dice "Guardar cambios" / "Configuración de aplicaciones guardadas." en lugar de publicarlo de nuevo, y su icono de fila es un slider configuración más bien que una burbuja de chat, ya que abre más que el chat.
· kamo-apps
Las opciones de diseño del prestamista. Exprimir, contactar primero o último, básico
La solicitud hipotecaria se expone ahora mientras se publicaba el producto (Configuraciones - Características de CRM - Publicar esta aplicación): - Tipo. NORMAL son los cinco pasos agrupados como antes. SQUEEZE hace una pregunta por pantalla: una ceja que dice dónde estás, la pregunta en la pantalla cara, una línea de lenguaje claro sobre lo que significa y por qué se le pregunta, entonces uno Responde. Los campos comparten una pantalla sólo cuando son partes de una respuesta (un nombre, una dirección, un agente y su empresa). Aprovechando una elección sigue adelante después de un batir; el teclado seleccione con flejas y sigue adelante con Enter. El carril se llena por pregunta. - Información de contacto. START pregunta quién es el prestatario primero, y salva el liderado momento hay un nombre y un correo electrónico detrás de una prueba de trabajo invisible, el el mismo caso de las necesidades del botón de envío, luego añade cada respuesta posterior a esa pista a través de Una ficha, y el envío final lo termina en lugar de archivar un segundo. La página Lo dice al lado de las preguntas de contacto. LAST mueve contacto a justo antes consentimiento, y nada se salva hasta que la forma sea enviada. - Campos. BASIC mantiene el nombre, el correo electrónico, el teléfono, el propósito, cómo se utilizará la casa, estado y ZIP, precio o valor, pago inicial o saldo, y crédito. El texto de ayuda supone que el lector no sabe nada: pago inicial, puntaje de crédito, HOA, impuestos, seguros, los programas de préstamo y los tipos de propiedad se explican cada uno donde se les pide. Sin respuesta sí/no las preguntas permanecen nulas (aquí saltadas o no aún Alcanzar en lugar de llegar como "no". También fijo, ambos viven hoy: el párrafo de consentimiento nunca nombró al prestamista ("us you da su consentimiento expreso por escrito para ponerse en contacto con usted" . . . . . . . . . . . . . . . . El argumento de la UCI no arrojó nada), y el recibo "Una copia está en camino de llegar a". descartó la dirección de la misma manera. El consentimiento ya no comienza con un minúscula "alguien". Proxies: ************* (POST) y /progress/-token- (PUT), compartir el manejo X-Forwarded-For con la sumisión. Needs securityservice d345869 para el diseño y los puntos finales de progreso; en contra un backend más antiguo la forma es el formulario agrupado, lleno, de contacto-primero y el primero Ahorre 404s una vez y detenga.
· kamo-internal
La pestaña de sesión deja de llevar el icono de Guacamole
Una pestaña de sesión es el documento de Guacamole, por lo que su propio "link rel="icon" href="images/logo-64.png" es dueño de la pestaña, y un miembro que abre la computadora de su empresa observa el icono convertido en un de terceros. Mantener el control del origen de Kamo y enmarcar la sesión habría mantenido la icono de organización; la pasarela responde a cada computadora.* ruta con X-Frame-Options: DENY, para que eso no esté disponible. La puerta de acceso responde para esos dos archivos en su lugar. QUIEN CONS CONSDIDO DE LA HOST, Y SOMETIMES THE ANSWER IS NOBODY'S. Una solicitud de icono es una imagen simple GET emitida mientras el navegador renderiza el de un tercero documento. No lleva sesión ni ficha, así que el anfitrión es la única señal que hay. En un Las propias computadoras de la organización.Estedominio es una respuesta completa. En el anfitrión de la plataforma compartida no lo es: resolver por huéstra que los nombres de la PLATFORM, como ya dice layout.tsx "que es No hay inquilino de nadie". Así que el anfitrión de la plataforma deliberadamente no resuelve ninguna organización y obtiene un glifo sin marca. Cada organización cuyo dominio aún no está en vivo comparte ese anfitrión, y pintando la marca de KamoCRM en la pestaña de un inquilino es lo exacto que existe una etiqueta blanca para evitar, desde aquí, indistinguible de trabajar. También es indistinguible de la respuesta correcta para Los propios miembros de KamoCRM, por eso no hay excepción para ellos. No tiene nada que hacerlo. cambio para que una organización tenga su propio icono: en el momento en que su host está en vivo, el El anfitrión lo nombra y la ruta lo resuelve. El glifo es un esquema de monitor plano en pizarra, sin marca alguna, en los dos tamaños Guacamole declara. El propio icono de una organización se resuelve alias --config.json --. favicon set, el mismo chain DynamicMetaLoader usa, y cada fallo a lo largo de ella cae de nuevo al glifo: un favicon es no vale la pena fallar una página, y una marca equivocada es peor que ninguna marca. THE ROUTE LIVES IN kamo, NOT BESIDE THE REST OF THE GATEWAY IN hosted-computers. Traefik corre con allowCrossNamespace y permitir ExternalNameServices tanto en su defecto de false, por lo que un IngressRute allí no puede llegar al servicio kamowebinternal, y encender cualquiera de las dos banderas es un Cambio en todo el grupo para llegar a un favicon. El certificado ya se ha expedido en este espacio de nombres, Así que la ruta se encuentra al lado del servicio al que se envía y CI lo aplica con el código. temaPublicBase se extrae por lo que el diseño del cubo se escribe una vez: Theme.tsx es "utilizar cliente" y el servidor necesitaba la misma forma.
· kamo-internal
Arive in CRM markets, on the lead page, and on member profiles
- Mercados: "Arive" se une al desplegable MLOS, y su diálogo Configuración sostiene los cuatro ganchos Zapier (sólo escritura, enmascarado), el Arive → Kamo se dirige a pegar en Zaps, el escenario → mapa de estado, la creación de plomo y interruptores de etapa-push, una guía de configuración y el registro de actividad de la conexión. Configure es ahora una lista de permisos: un proveedor con nada para configurar no más tiempo consigue un botón habilitado que no hace nada. - Página principal: LosHeaderActions renderiza los estados de cada proveedor - MeridianLink sin cambios; Arive crear → espera para Arive (reenviable después de 15 min, con a confirmación) → abierto en Arive con su etapa, convertir para un plomo Arive, y un chip sincproblema. Un enlace pendiente relee el mercado config cada 10 s por lo que se convierte en "Abrir en Arive" sin una recarga. - Perfil: la tarjeta de credenciales de Lender ahorra de nuevo (no podría desde el Reconstrucción de perfiles, c20bac57). Cada renglón de mercado edita por su cuenta: MeridianLink toma el nombre de usuario + secreto, Arive el e-mail de inicio de sesión del miembro. - MarketConfig.mlosProvider es el sindicato de proveedores, no una cadena corta. Espec: ¿Qué
· SecurityService
Opciones de diseño, y guardar los detalles de contacto a medida que van
El diálogo de publicación ahora elige cómo la aplicación de hipoteca pública se establece out (kamo-shared-library ac83bea1): NORMAL o SQUEEZE, detalles de contacto en el Cuestiones START o LAST, FULL o BASIC. - ¿Por qué? Disposición, aplicaciónContactStep y aplicaciónFieldSet; un desaparecido mantiene lo que es almacenado, así que retirar una página nunca reajusta su diseño. La respuesta los hace eco. - GET /public/loan-application/{p} respuestas diseño {type, contactStep, fieldSet}, siempre resuelto. - POST *************, para un producto START sólo (404) de lo contrario: *** no cerrado, presentación del presupuesto IP, nombre + correo electrónico requerido. Crea el plomo con la fuente "Online Loan Application (infinished)" y respuestas un token de 256 bits celebrado en Redis por un día, escrito dentro de la transacción por lo que El fallo de Redis hace retroceder el plomo en lugar de garantizar un duplicado. - Sí. añade respuestas a ese plomo a través de updateLead (absentimiento = sin cambios). Token vinculada al producto. - POST /public/loan-application/{p} con progresoToken terminas that lead (fuente "Online Loan Application", recibo como antes) en lugar de presentar un segundo; un token desconocido o caducado presenta una nueva pista como antes. - La propiedad de plomo se verifica BEFORE updateLead en lugar de coger su excepción: es @Transactional y marcaría la solicitud sólo regresiva. Base de referencia de Ratchet: startProgress y saveProgress añadidos con sus razones, y byHost (added on main by 81e0756 without a line, which left the ratchet red).
· kamo-shared-library
Opciones de diseño para una solicitud de préstamo publicada
Tres columnas en LEAD VENDOR PRODUCTS, elegidas en el diálogo de publicación y leídas por kamo-apps para poner el formulario de hipoteca pública: - APPLICATION LAYOUT NORMAL (agrupados pasos) - APLICACIÓN CONTACT STEP START (contacto primero, salvado como van) - APLICACIÓN FIELD SET FULL ANTE BASIC Llantas, no @Enumerated, por lo que ninguna restricción ddl-auto CHECK congela el valor Listo. Null lee como NORMAL / START / FULL, la forma como era. El DTO lleva el valores resueltos; setProductApplication gana una sobrecarga tomando las opciones, con null members meaning "keep", and the old signature representatives to it unchanged. DDL ya se aplica al grupo como propietario: ALTER TABLE public.lead vendor products ADD COLUMN IF NOT EXISTS application layout varchar(16); ALTER TABLE public.lead vendor products ADD COLUMN IF NOT EXISTS application contact step varchar(16); ALTER TABLE public.lead vendor products ADD COLUMN IF NOT EXISTS application field set varchar(16);
· InitializerService
Las columnas y el registro de actividad de los mapas de integración de la arzota
**************** (único), los campos de enlace de la unidad de la unidad en lead-los-links (amable, GUID, enlace profundo, etapa, pendiente-desde, último error) y los.sync.events. Todo nulo, sin relleno; "Pedrente" (0) porque las entidades Mapea de ellos. Ya se aplica a Yugabyte a mano (como el propietario, kamo) antes de la Empuje de la biblioteca compartida; esto mantiene un ambiente fresco a paso.
· APIService
Dirección pública Zapier posts Arive events to
PUESTOS ********** SecurityService's AriveInboundController, que posee el cheque de ficha. El cuerda de la consulta (el evento) cruza el tubo, un cuerpo de forma el contenedor ya parsed se reconstruye a partir de sus parámetros, y se aprueba el estado de SecurityService a través de as-is: Zapier muestra una tarea no-2xx como error, que es donde el La gente que mantiene el Zap se verá. Un token malformado nunca deja el borde.
· SecurityService
Arive through Zapier — connection, inbound events, and per-lead actions
Un mercado vinculado a Arive obtiene una conexión (cuatro Zapier Catch Hooks for crear-loan, actualizar-loan, actualizar-lead y convertir-lead, más una URL de entrada cuyo token se almacena como un hash) Con un registro de actividad. rotación token y "enviar una muestra" para que Zapier pueda aprender los campos de cada gancho. Arive dispara post a ******************* JSON o los cuerpos de forma (por defecto de Zapier), reconocidos por nuestro crmReferenceId, el Arive GUID, la pantalla id, o —para un plomo convertido dentro de Arive — el prestatario E-mail. Registros reconocidos aplican Ganancias Arive; una nueva etapa mueve el Kamo estado a través del mapa de escenario de la conexión; registros desconocidos se convierten en líderes asignado a los nombres de Arive miembro como oficial, y nuestro uid es devuelto. Cada resultado está registrado, y nada responde a un silencioso 200. La página principal crea/abierto envíos en el mercado: Respuestas de flecha 202 PENDING (confirma asincrónicamente) y añade /convert. Mapa de Miembros ellos mismos a su correo electrónico Arive (no secreto, no NMLS, un miembro por e-mail por mercado). El punto final de aplicación LO-XML ahora rechaza no MeridianLink proveedores en lugar de aplicar un parche de cero.
· kamo-internal
Comienza una sesión de codificador en la nube, y muéelo en la ventana
que enumera las listas de git en la máquina de dev (la más reciente trabajada en el modelo y el esfuerzo de los miembros. La máquina construye el mando, con CCR-FORCE-BUNDLE=1 para que la compra local se suba en lugar de clonarse de un control remoto de GitHub que no tenemos. El terminal que abre lleva a la nube: true en sus accesorios, y el título barra y la pestaña maximizada dibujan una nube sobre su icono terminal (windowIcon). Un apoyo en lugar de un nodo icono, por lo que sobrevive a una recarga; reabrir de la lista de terminales lleva la propia marca de la máquina de vuelta a la ventana.

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