Changelog
Qué hay de nuevo.
Cada mejora de la plataforma, a medida que se envía.
· kamo-shared-library
Añádano derechos de acceso a módulo (IDs 112-118)
ACCESS.COMMERCE, VIEW-CALENDAR, ACCESS-CHAT, ACCESS-MAIL, ACCESS-VOIP, VIEW-SUPPORT, VIEW-ANALYTICS
· SecurityService
Pasa tiempo de caducidad legible por humanos para la plantilla de verificación de correo electrónico
Añadir humanizarMinutes() ayudante que formatea minutos como días/horas/minutos (por ejemplo. "1 día" para 1440 min). Pase como "expiryText" para que coinábaza actualizado variable de plantilla canónica.
· kamo-shared-library
Mejorar la plantilla de verificación de correo electrónico . . . . . . . . . . .
- Añadir enlace de verificación de texto plano abajo botón como falda de copia-pasta vuelta - Cambiar la variable de caducidad de .expiryMinutes a .expiryText para Formato legible por humanos (por ejemplo. "1 día" en lugar de "1440 minutos") - Actualizar sujeto a "Verificar el correo electrónico asociado con su cuenta de .orgName"
· kamo-internal
Serializar el correo completo HTML con el marco exterior en la plantilla guardar
- serializarFullEmailEmailHtml envuelve los bloques interiores en el marco exterior de la marca (Logotipo de la cabeza, título/subtítulo, área de contenido, logotipo de pie de página y nombre de org) usando URLs absolutas para que los clientes de correo electrónico puedan buscar las imágenes - Configuración de marco exterior (opciones de locos, título, subtítulo) se guardan para bodyBlocks.outerFrame y restaurado en la carga de plantillas - handleSave ahora utiliza serializeFullEmailHtml así que los correos electrónicos enviados coinciden con el Vista previa de la constructora
· SecurityService
Agregar ruta de verificación de correo electrónico basada en código a /verify-email endpoint
El endpoint ahora maneja tanto token (clic en enlace) como userId-code (entrada de 6 dígitos manual). Ruta sica sin cambios; ruta de código ha lavado el código suministrado y coincide con el token activo para ese usuarioId.
· KlusterServices
Añadir imagen semanal de poda y revista de vacío CronJob para k1m1
CronJob corre todos los domingos 3am, privilegiado, sujeta a k1m1. - crictl rmi --prune elimina imágenes de contenedores sin usar - nsenter diario de vacío impone tapa de 500MB - Paso CI/CD añadido al flujo de trabajo de los servicios de despliegue
· KlusterServices
Añadir a los Docs despliega paso al flujo de trabajo
· kamo-register
Requiere *** en la página de verificación antes de cada intento de verificación/enviar
*** se reinicia después de cada acción (éxito o fracaso) por lo que un nuevo Se requiere solución para cada intento posterior.
· kamo-register
Carápa de nombre /reend-verificación a /verificación
· kamo-register
Añadir página de verificación de sesión para redirdirects de inicio de sesión
Crea una ruta independiente /resend-verificación que acepta ?email y ?userId query params, reutilizando PostCompletionScreen para una consistente verificación de correo electrónico UX. Hace RegisterResponse.alias opcional para que página funciona sin un alias de registro disponibles.
· kamo-register
Rediseñar la pantalla de verificación de correo electrónico de corrección. fix reend error de correo electrónico
- PostcompletionScreen: diseño de página completa con fondo de org animado, tarjeta de vidrio, logo, cajas de código visuales de 6 dígitos, estados de éxito/verificado - reendVerification: pasar correo electrónico en el cuerpo de solicitud (relo que lo requiere)
· kamo-register
Coinar kamo-internal almacenamiento de avatar de 3 tamaños, MinIO, paso de carga separado
El diálogo Crop ahora produce tres manchas PNG (50/150/350px) a través de lienzo, idéntico a AvatarManager de kamo-inter. Después de la inscripción devuelve usuarioId, las manchas son POSTed a ************* (nuevo endpoint nouthenticated vigilado por correo electrónicoVerified=false). avatarUrl ya no se envía en el registro Cuerpo JSON. El fallo de la carga de Avatar no es mortal por lo que el registro aún se completa.
· SecurityService
Añadir el endpoint-hogar de registro para la subida de avatar post-registro no autentisticado
POST ************* acepta userId , file/fileSm/fileMd/fileLg sin una sesión. Guardas: el usuario debe no estar verificado y no tener avatar todavía, impidiendo abuso contra las cuentas existentes. Almacena archivos a MinIO con la misma estructura de ruta variantes del tamaño como el endpoint autenticado /avatars/foto.
· kamo-login
Reemplazar el error de EMAIL-NOT-VERIFIED con rica tarjeta de verificación
Cuando el inicio de sesión falla con EMAIL-NOT-VERIFIED la tarjeta de inicio de sesión ahora se sustituye por un pulido "Comprobar la bandeja de entrada" pantalla: envoltorio animado SVG con solapa de apertura y despejantes flotantes, pantalla de correo electrónico enmascarada, botón de correo electrónico con un 30 segundo Anillo de cuenta regreso de SVG, alertas de retroalimentación de éxito/error/limit-tar, y un "Regreso a firmo en el enlace. Todas las transiciones utilizan AnimatePresencia con escalafade. - app/api/login/route.ts: pasar todos los campos de error backend (no solo mensaje) usuarioId llega al cliente - ************* nuevo proxy para SecurityService ******************* - app/page.tsx: EmailVerifyCard component, emailVerifyState / reendenLoading / resendCooldown / reendE estado de Status, retorno de la resistencia, 30 segundos Uso de enfriamientoEfecto, detección EMAIL-NOT-VERIFIED en performLogin
· kamo-register
Ampliar la carga de fotos para soportar formatos AVIF y SVG
Añade imagen/avif e imagen/svg-xml a la lista de entrada de archivo aceptar y de validación regex. Actualiza la etiqueta de pista para listar los seis formatos. kamo-internal ya acepta imagen/* por lo que no se necesitan cambios allí.
· kamo-register
Añade react-easy-crop foto editor de fotos a paso de carga de registro
Espejos de PhotoCropDialog de AvatarManager de kamo-internal: - el diálogo de cosecha se abre inmediatamente después de la selección de archivos - sábana arrastrando, zoom a través de desplazamiento o deslizante (1o5o) - guía de capa circular desgarrada muestra la zona recortada - lienzo produce un 400o400 PNG almacenado como base64 avatarUrl - botón de re-cun en la vista previa permite al usuario ajustarse después de guardar
· kamo-register
Añadir /api/geoip ruta y auto-detección del país de alambre
Proxies cliente IP a SecurityService GeoLite2 buscar, luego establece el país detectado en FormMyCountry automáticamente en la carga de página.
· SecurityService
Añadir GET /api/security/geoip/me para el cliente IP country busup
Lee el cliente real IP de las cabeceras X-For / X-Real-IP, hace una mirada GeoLite2, y devuelve el código de campo, el nombre de country. Utilizado por el paso de auto-detección country de kamo-registr.
· kamo-register
Reemplaza h*** con kamo-capcha-widget en línea en paso final
· kamo-register
Añadir /api/capcha/challenge proxy ruta proxy
· kamo-register
Añadir al vendedor de kamo-capcha-widget, eliminar paquetes h***
· kamo-register
Refactor del asistente de registro SP6 . split PersonalInfo , añadir API de registro real
- Reemplazar FormPersonalInfo con FormName (campos de nombre) y FormAvatar (generador Avatar Creator con modos de generar/subir/falstas para 13o) - Eliminar el formularioRecoveryEnforcement (campos de recuperación eliminados del flujo) - Refactor FormPassportID al diseño de campo dual: alias siempre mostrados, correo electrónico sólo por 13o; callbacks sustituyen a ventana global - Añadir registroApi.ts con mecanografiado **************** - Añadir PostCompletionScreen para la entrada de código de verificación de correo electrónico y la redireccionación SIGNED-IN - Refactor RegisterFlow: lista de pasos dinámico basado en shouldIncludeAgeCheck y isUser13Plus, replace handle***Ensévose stub con llamada real de API, render PostCompletionScreen sobre el éxito
· InitializerService
SP5 migra KamoCRM agereq a ALL-WORK-ELIGIBLE
Añadir KamoCRMAgeReqUpdateRunner (orden 10) . . . . . . . . . . . . . . . . . . . . en la puesta en marcha; DONUEBO comprueba el valor antiguo por lo que las re-corridas no son-operaciones. Errores se tragan para que la startup no esté bloqueada. Actualice DataLoader para semillas de TODOS WORK-ELIGIBLE en instalaciones frescas.
· SecurityService
Implementar la verificación de correo electrónico SP4 y el cableado de registro
- Eliminar el correo electrónico heredado/VerificationEmail.java (hardcoded SMTP stub) - Añadir ************* (patrón de paquetes de recuperación de espejos) - Añadir ********** . . generación simbría simbría/SHA-256 hashing, enviar/verificar/reentar flujos respaldados por ********************** - Añadir ************* . alias.email única comprobación de la singularidad, Creación de Usuario, desencadena el correo electrónico de verificación en el registro - SecurityController: wire RegistrationService en /register endpoint, añadir EMAIL-NOT-VERIFIED (403) puerta en login, añadir POST /verify-email y POST /registro/resend-verificación endpoints finals - Bump kamo-shaed-library a 1.4.0
· kamo-shared-library
Añadir EmailVerificationToken entity . repo . Usuario.alias/emailVerified . . . . . . . . . . . . . . . . . . . . . . . . . . . .
· InitializerService
Añada SP4 email.verification.tokens DDL . . . . . . . . . . . . . . . . . . . . .
· kamo-marketing
Añadir la descaro de la marca al texto legal de la marca
· kamo-internal
Agregar páginas de configuración de cuenta para las preguntas de teléfono y seguridad (SP3)
Añade ************* con cableado de API a SecurityService /api/account/*. Sincronizaciones nav en las 3 ubicaciones.
· kamo-login
Llamadas de API real aládre en / página de recuperación (SP3)
Reemplaza todos los falsosEnviar (enviar) con la recuperaciónLes de api. Añade SMS OTP verificar la fase, entrada de correo electrónico de semillas, paso de palabra nueva y aterrizaje simba vía ?token= URL param.
· kamo-login
Añadir /api/recover proxy . recoveryApi client (SP3)

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