Saltar al contenido
KAMOUniverse

Changelog

Qué hay de nuevo.

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

  1. · VOIPService

    Refactor del proveedor multiinstancia . Gratis completo de FreePBX . Flowroute SMS

    Cambio de modelo básico: un org . muchos VoipProviderInstaces (era: uno per org). Cada llamada API de proveedores ahora es de tipo de ejemplo. Interfaz PhoneProvider: - Nuevos métodos para la extensión/usuario/dispositivo CRUD . de audio/transcripción de voz. - Nuevas banderas de capacidad (ejértelaman, usuarioManagement, dispositivoGesación, voicemailTranscripción). Los fallos tiran **************** (HTTP 501) para que los proveedores de terza no se rompan. Los controles de Frontend obtienenCapacidades () para ocultar/desactivar las acciones por proveedor. - ProviderException (HTTP 502) para fallos de dependencia externa. PhoneProviderFactory: getInstance(UUID) / ************* reemplazo legado getProvider(Long orgId); getPrimaryForOrg(Long) guardado para sitios de llamadas heredados (CallController, CapabilitiesController, SipController, webhook inbound). - RingCentral OAuth fichas ahora sujetas a (org.Id, proveedor, instanceId) así que uno org puede autenticar múltiples implementaciones independientes de RingCentral. - La construcción de FreePBX lee config.json . BaseUrl, clientId, clientSecret, ignoreSslErrors e instantiate a un FreePBXGraphQLClient dedicado. RingCentral (RingCentralProvider): - Constructor toma ejemploId para el contexto de registro. - Nuevos métodos: listExtensiones / createExtension / updateExtension /Extension / deleteExtension; listUsers / createUser / updateUser / deleteUser (Modelos RC ambos como tipo=Extensiones de Usuario); listDispositivos / createDispositivo / updateDevice / deleteDevice; gottchVoicemailAudio (imágenes de contenido de adjunto de streams) y getVoicemailTranscripción. FreePBX (FreePBXProvider) - implementación completa reemplaza a marcador de posición: - Cinta de cliente OAuth2 caché silbado vía FreePBXTokenCache (-1h TTL, auto-refresco en 401, por-instancia). - FreePBXGraphQLClient: GraphQL - REST transporta con opcional skip-SSL-verificación para PBXs autofirmados en prem. - Extensiones, Usuarios de Administrador de Usuarios, dispositivos Endpoint Manager, buzón de voz lista/mark-read/delete . streaming de audio, historial de llamadas de CDR, credenciales SIP derivado del secreto pjsip de la extensión, la salud a través de getAsteriskInfo. - SMS explícitamente sin soporte (capabilidad sms=false) - FreePBX no maneja Aerolímster SMS. Flowroute SMS (FlowrouteTextProvider): - Mensajes v2.1 API con HTTP Basic (accessKey, secretKey). - La sonda de salud golpea GET /números?limit=1. - Registrado con BulkTextProviderFactory a través de nuevo valor de FLOWROUTE enum. Controladores: - VoipInstanceController (rebautizado de ProviderConfigController) en /api/voip/instancias con prueba/sincronización por instancia. Secretos redactados en GET respuestas ('***'); la fusión-actualización permite a IU idado los campos de ida y vuelta sin las credenciales almacenadas. - BulkTextInstanceController (rebautizado de BulkTextConfigController) CRUD en /api/bulktext/instances con prueba / final de prueba / enviar. - OAuthController reescrita para OAuth: inicio, callback, estado, desconectar todas las instancias. - SmsController resuelve la instancia de member.instanceId.org primaria, se adjunta a conversaciones más suerdas. - CallController / CapacidadesControla de control / SiController vuelve a la org's instancia activa primaria para los criterios de endo de una sola instancia heredado. Servicios: - InstanceSyncService: sincronización de caché pull-through extensions/usuarios/dispositivos/ mensajes de voz copiados de proveedor a mesas locales, filas que faltan suaves UNKNOWN. Cada subpaso envuelto para que una capacidad sin soporte no falle toda la sincronización (por ejemplo. FreePBX no-SMS - ha-extensiones). - VoipMessageService: todas las trayectorias de conversación/metraje propagan instanceId. Pruebas: pruebas preexistentes de VoipProviderConfig eliminadas (cubiertas la tipos rebautizados; la reescritura está fuera de alcance por diseño spec . . . . . . . . . . . . . . . . . . . . . . . . . . en este refactor se está agregando infraestructuras). Construye verde con una biblioteca compartida de kamo actualizada.

  2. · InitializerService

    Migración del proveedor de telefonía multiinstancia/SMS

    Ruta después de Hibernate ddl-auto:update crea nuevas tablas (VOIP-PROVIDER-INSTANCE, BULK-TEXT-PROVIDER-INSTANCE, PHONE-EXTENSION, PHONE-END-USER, PHONE-DEVICE, PHONE-VOICEMAIL, SYSTEM-CONFIGURATION) de las entidades rebautizadas/nuevas en commit kamo-shared-library commit 232d731. Maneja lo que Hibernate no puede: - Copia de filas de manos de heredado voip.provider.config / bulk-text.provider.config en nuevas tablas de *instancia, sintetizando instances.name de tipo de proveedor. - No gotas.CONFIGURAD (ordinal 0) filas - la ausencia es ahora el estado de "no proveedor". - Suelta el legado ahora vacío tablas *. - Backfill instance.id en member-voip-config, voip-conversations, y kamotokens.org.oauth-token usando la instancia activa más antigua de cada org. - Reconstruir el índice único de (org-org-oauth-token de (org.id, proveedor) a (orgánid, proveedor, instance-id) así que múltiples instancias de RingCentral por org funcionan. - Suelta índices únicos huérfanos de conversaciones de voip.Conversaciones, tablas de instancia del proveedor. - Semilla la fila de un soloton de configuración del sistema (intervalo de sincronización de voip 10min por defecto, El operador de plataforma lo configura a través de la nueva configuración de la nueva plataforma Pestaña VOIP y SMS. Todas las declaraciones idempotente; volver a correr en el BB ya emigrado es seguro. Orden 20 después de SchemaCleanupRunner (1), OrganizationTypeRemovalRunner (2), KamoCRMAMAgeReqUpdateRunner (10).

  3. · kamo-shared-library

    Fundación de esquema de sistema de telefonía multiinstancia/proveedor SMS

    - Renoname VoipProviderConfig . VoipProviderInstancia; drop UNIQUE(org.id), añadir instance-name, config.json, last-sync.at, last-sync.error. - Renombre BulkTextProviderConfig . BulkTextProviderInstancia; mismo tratamiento de múltiples insistancia. - Nuevas entidades: PhoneExtension, PhoneEndUser, PhoneDevice, PhoneVoicemail, SystemConfiguration. - Añada instance-id a MemberVoipConfig, VoipConversation, OrgOAuthToken (múltiples RingCentral instancias por org). - New enums: PhoneExtensionStatus, PhoneEndUserStatus, PhoneDeviceType, PhoneDeviceRegistrationStatus. - Depretar NOT.CONFIGURED en ************* (guardado en ordinal 0 para preservar las filas existentes en EnumType.ORDINAL). - Añadir FLOWROUTE a BulkTextProviderType para el nuevo proveedor de SMS Flowroute. - DTOstraction-Proveedor (ExtensionDto, PhoneUserDto, DeviceDto, VoicemailEntryDto, InstanceDto, Create/Update solicitudes). Primera fase de multi-instancia teléfono/refactor SMS . ver **************** (en kamo-sculpin repos). KamoInitializer migración - los refactores de servicio a seguir.

  4. · KlusterServices

    Implementar FreePBX 17 Puente Jigasi SIP en k1m1 y k2m1

    FreePBX (tiredofit/freepbx:17-latest) se ejecuta con hostNetwork para SIP/RTP conserva IPs del cliente real, clavada uno porno a través de nodoSelector. SIP en 5060 UDP/TCP (5061 TLS), RTP rango 18000-18999 elegido para evitar Janus (20000-20999), Coturn (52000-65535) y WireGuard (51820-51821). Conoce a Jigasi añadido como puente interno ClusterIP SIP para que FreePBX pueda Llamadas al maletero a las conferencias de Meet; Prosody ahora dormienta a un usuario jigasi de JIGASI-XMPP-PASSWORD. UAI de administración accesible vía Traefik en pbx.k1.kluster.kamocrm.com / pbx.k2.kluster.kamocrm.com con certs semillas a través de auto-cert STATIC-DOMAINS.

  5. · kamo-internal

    Vista de la plataforma-admin, paginación, búsqueda en vivo, filtros, logotipos de org

    Admins de la plataforma (propietario de org de nivel superior) ahora ven cada org en el sistema a través de la nuevo /api/security/org/all-networks endpoint en lugar de sólo sus propias membresías. El título de cabecera y la actualización de subtítulos para reflejar el contexto de administración. Otras mejoras: - Paginación: lado del cliente, por defecto 25/página, configurable (10/25/50/100) - Búsqueda en directo: filtros por título, título corto o dominio en tiempo real - fichas de filtro: "Todo", "Orgs I Own", "DNS No aún configurado" - Conteo de resultados mostrado junto al selector de la página de tamaño - Botones de número de página con colapso de laipsis para grandes recuentos de páginas - El componente OrgLogo consolida la renderización del logotipo (logo corto a través de getOrgLogoUrl) tanto para la tarjeta actual-org como para todas las cartas de org en la lista - Botón ENTER correctamente custodiado por org.memberId (archual compartido de usuario-miembro) - ENTER AS SYSTEM MIEMBROS disponible para todos los orgs cuando puedeEnterAsSystemMember

  6. · SecurityService

    Añadir GET /api/security/org/all-networks para administradores de plataformas

    Los dueños de org de alto nivel ahora pueden buscar a todas las organizaciones en el sistema con información de membresía en relación con el que llama. Orgs donde el que llama tiene un miembro registro get isOwner/memberId pobló; otros consiguen miembroId: null, isOwner: false. Endpoint hace cumplir que el que llama está en la zona de nivel superior y es propietario.

  7. · kamo-internal

    Subtabs en el editor de modelos de seguridad

    - Editor de modelos de seguridad en **************** ahora está dividido en cuatro sub-tabs: General (Basic Info, Visibility, Who Can Create, Configuración de la plataforma, Domain Config, Mercados de Comercio), Censura (alcohol/ tabaco/maombas - member - rangos de edad de los miembros del equipo), Aplicaciones permitidas, y Funciones de seguridad predeterminadas. - Nuevo **************** le permite editar un administrador de una modelo permitir la bandera de los trasdominios de raíz y los alias de los padres junto al resto de eso Ajustes del modelo. Anteriormente esto vivía dentro del subdominio de toda la org Ramas popup. - Subdominio Ramas El popup se simplifica a los bits de nivel de la zona de org solamente . Credensas de GoDaddy, maestro habilita para alternar. Ayas de modelo per se mudaron tanto del diálogo como de su superficie de apoyo; SecurityRoleManager deja caer el ahora-inutilizado accesorios también. - Elimina todas las referencias al equipoMemberPayFesConfección / PayFeesSetting / TriStateFeeOption - las "Cuentas de Self-Pay Kamo" seleccione en el editor de modelos y su chip en la mesa de modelos se han ido, junto con el tipo alias en usoEjecutado. - /configuraciones/plataforma/eventos y /configuraciones/plataforma/plans páginas son borrados (fueron marcadores de la superficie de facturación despreciada). La página de destino, la lista subtópica de SettingstatusWindow, y ruta/icon Mapas todos sueltan las entradas. - Gestionar el sub-tab del Grupo en ************* ahora muestra el título del Grupo por defecto como campo solo para discapacitados (era previamente oculto completamente detrás de una alerta de información) para que los administradores puedan ver el El nombre del grupo mientras entendía que no se puede cambiar.

  8. · kamo-internal

    Visibilidad de Alias UI . . . . . . . . . . . . . . .

    SubdomainBranchesDialog: - El editor de Alias reemplazó la lista de chip con una lista de filas al estilo de tabla que mostraba Mesas y miembros del equipo buzones por alias y admins control Tipos de creadores ver cada padre alias en /network/create - onUpdateModelSubdomainConfig firma actualizada para pasar objetos de alias completos (alias, visiblesToMembers, visibleToTeamMembers) en lugar de cadenas simples SecurityRoleManager: - TotalSecurityModels state - cargaFullSecurityModels Mapices con ******************* banderas - persistModeldomainConfig pasa objetos de alias completos al backend BranchSetupManager ************* - Añadido botón Subdominio Ramas (página de seguridad de los espejos) con el mismo SubdomainBranchesDialog, status-fetch on mount, y recarga de modelo cuando el diálogo se abre

  9. · SecurityService

    Filtro de visibilidad de Alias - auto-verificar la propiedad de subdominio

    OrganizaciónContralor: - Web-alias org creación ahora auto-marcas propiedadVerified=true y esDnsVerified=true en el registro OrgDomain creado y no TXT necesario desde entonces Abañemos a DNS en GoDaddy en su nombre - CLIOM parentorAliasType ruta ahora impone visibilidad de tipo creador per-alias (Pileros /filtro creatible para que el backend no se puede eludir) BranchTypeController /creatable: - parentAliases lista está ahora filtrada por el creador de la persona que llama Type: Los MIEMBROS ven sólo visiblesToMembers=true alias, TEAM-MEMBERS ver solamente visibleToTeamMembers=true alias, OWNERS ver todos - Cada alias DTO ahora incluye visiblesToMembers - visiblesToTeamMiembres de las banderas SecurityModelController: - processSubdomainBranchConfig ahora lee **************** de alias mapas objetos y llamadas reemplazarAllFull para persistirlos

  10. · kamo-shared-library

    Añadir banderas de visibilidad de tipo creador per-alias

    Añadir visibleToMembers / visibleToTeamMiembros columnas booleanas a ChildOrgSecurityModelAlias para que los administradores puedan restringir qué padres alias , aparezca a los miembros vs miembros del equipo cuando crea orgs infantiles. - Entidad: dos ABuilder.Feñones verdaderas predeterminadas con BOOL DEFAULT TRUE - SubdominioAliasDTO: exponer ambas banderas de Entity - **************** nuevo disco de AliasEntry . replaceAllFull sobrecarga que persiste visibilidad; sustituye a todos los delegados de la misma

  11. · kamo-internal

    Configuración de diálogo, ruta del asistente web-alias y panel de aprovisionamiento DNS

    Añade la UTI de Subdominios Ramas a través de tres superficies: - **************** nuevo botón "Subdominio Ramaes" abre un diálogo para el nivel de org enable toggle a los credos de GoDaddy, con un editor de modelo de seguridad para permitirRootSubmains - alias de la madre (reutilizaciones" los asistentes del mago es ValidAlias/toSafeAlias) - /network/create: BasicsStep ahora ramas entre un trajo-su-propio-dominio ruta y una ruta Kamo web-alias (atada en la bandera de la nave de origen, Estado de GoDaddy y los alias del tipo de rama seleccionado. Padre Alias listas de interrupciones ROOT (cuando se permite) más alias por modelo; ayuda en vivo actualizaciones de vista previa a medida que el usuario cambia cualquiera de los dos campos - /setup/dns: nueva DnsProvisioningPanel encuesta el registro de aprovisionamiento de la org y Superáfrasis por récord de GoDaddy con una acción fallida de reinicias Respaldado por Next.js BFF proxy routes under *******************

  12. · SecurityService

    Config a nivel de org, cliente de GoDaddy y web-alias org crear ruta

    Alambres las nuevas sucursales de Subdominios cuentan con extremo a extremo en el backend: - SubdominioBranchesContralor para habilitar a nivel de org. - GoDaddyDnsClient realiza idempotentes CNAME upserts y controles de credencial - DnsProvisioningService async-queus el subconjunto estándar KnownAliases y escribe filas por disco a OrgDnsProvisionLog - SecurityModelController lleva permitirRootSubdomains - alias[] en crear/actualización - **************** acepta el camino de las tiendas web-alias (usarWebAlias - parentAliasType - parentAliasId - webAlias), calcula el FQDN resultante bajo la zona raíz del padre, y inicia el aprovisionamiento DNS después de la org transaccional crear completas - BranchTypeController /creatable endpoint expone los alias per-modelo y el estado de subdominio-bronches de parent-org para que el mago pueda avisar a la interfaz de usuario

  13. · kamo-shared-library

    Añadir entidades, cifrado y a alias/DNS log andd andding

    Añade credos per-org GoDaddy (AES-GCM encriptado), una bandera de permitirRootSubdomains y la recogida de ajefes en el modelo de seguridad, un aprovisionamiento DNS registro de auditoría y un ayudante de SecretCipher compartido utilizado por SecurityService para redondear el viaje Las teclas API almacenadas sin devolverlas nunca al frontend.

  14. · kamo-internal

    Exándoteos Prefijo/suffix, puerta de dominio buzón, estado explícito

    - El prefijo de nombre y sufijo están ahora desplegables poblanos de la NombrePrefixType / NameSuffixType catálogos entregados por org-config endpoint. Muestra abreviatura y nombre completo por opción. - "Pericador de correo electrónico de la organización de la organización de la división" ahora está desactivado a menos que el El dominio de la organización coincide con uno de los buzones verificados de la organización dominios (tirados de GET /api/email/domains). Despejar mensajería en línea explica si está desactivado por falta de correo electrónico, sin verificar dominios configurados, o un desajuste de dominio y nombres reales dominios configurados para que el administrador sepa qué usar. - El estatus de miembro del equipo ya no es predeterminado a PROSPECT; los administradores deben elegir un estado de ciclo de vida explícitamente o someterse está bloqueado. Resumen El panel muestra "no establecido" hasta que se elija un estado.

  15. · SecurityService

    Estado del equipo explícito . nombre prefijo/suffix catálogos

    - GET ************* ahora devuelve nombrePrefijoses y nameSuffixes, de origen de NamePrefixType y NameSuffixType. Añadir los formularios de miembro / Add Team Member no tiene que trabajar para codarlos. - POST /create-team-member ahora rechaza una petición que omite equipoMembershipStatus (400). La anterior retroacción silenciosa PROSPECT es El llamante debe elegir un estado de ciclo de vida explícitamente para equipo Los miembros nunca se equivocan por defecto.

  16. · kamo-internal

    Alardo completo, tres panes Agregar formulario de miembro diseño

    Reelabora la forma de creación para utilizar todo el área de contenido en lugar de 1100px de toda la columna central. - Disyorado sensible de 3 columnas: nav de la sección izquierda pegajosa (md), ancho completo forma (siempre), panel de resumen en vivo a la derecha (xl). - filas de campo ahora escala a ancho disponible: la sección de nombre es 5-up a md, contactos y filas de rol suben a 4-up a xl puntos de interesción. - Sticky bottom action baraja a todo el ancho con una pista de estado y un gradiente CTA primaria. - Sección nav utiliza espía de desplazamiento para resaltar la sección en la que se encuentra el usuario y soporta hacer clic a descrol. - estilo de tarjeta pulido, bordes suaves, sutil ascensor flotante, gradiente iconos de la sección-cabeza. - Nueva tarjeta de resumen de laela derecha refleja los datos de forma en vivo (avatar iniciales, nombre, nombre, correo electrónico, rol, chip de estado) y muestra un indicador listo para crear una vez que la validación pasa.

  17. · kamo-register

    Fue alias/email/nombre/phone en un solo paso de "Mi perfil"

    Combine el anteriormente separado "My E-Mail & Alias", "Mi nombre", y "Periómo de teléfono" entra en un paso de "Mi perfil" para 13 registradores, con alias de correo electrónico - nombre legal requerido y número de teléfono opcional (verificado a través de SMS cuando se introduce). Los inscritos menores de 13 años ven ahora un single rebautizado como "Mi Usuario Alias" paso de "Mi Usuario Alias" sin correo electrónico, nombre legal o teléfono. - RegistroFlow: lista de pasos simplificado, mango unificadoSiguita validación, nuevos casos de renderStepContent. El paso del perfil es interno desplazables para que las tres secciones encajan dentro del aporte. - RegistroStatus gana un valor "REGISTERED" para las terminaciones menores de 13 años donde no hay correo electrónico para verificar, están enruidos directamente a la página de inicio de sesión con ?registr=1 en lugar de la página de verificación de correo electrónico.

  18. · SecurityService

    Hacer el correo electrónico y el nombre legal opcional para las inscripciones menores de 13

    El endpoint /api/security/registro rechazó previamente cualquier solicitud Correo electrónico faltante, nombre de pun, o apellido. Eso hizo el camino sub-13 (KIDS-ONLY orgs, o TODOS con un solicitante de registro sub-13) imposibles. esas cuentas legítimamente sólo tienen un alias de la contraseña. frase de semilla. La validación ahora requiere alias y contraseña en cada ruta, y golosina email-nombre de pedacaño - apellidos como triple de todo o nada: suministro alguno de ellos requiere los tres. El correo electrónico de la verificación envía y el campo de correo electrónico de respuesta ahora se protege sobre si un correo electrónico fue realmente proporcionado, y el estado de respuesta es "REGISTERED" (vs el existente "EMAIL-VERIFICATION-REQUIRED") cuando no hay correo electrónico para verificar.

  19. · kamo-shared-library

    Añadir ************* para entrar-como cheques

  20. · kamo-internal

    Página de Configuración del Usuario del Sistema de la red ENTRAR AS SYSTEM MIEMBROS

    Añade Administración de Plataformas - Configuración, una parent-org-propedor-sólo-propedor-on- página que otorga o revoca permiso para hacerse pasar por la plataforma Usuario del Sistema por departamento, título de trabajo o miembro del equipo individual. Registrado en los tres lugares de navegación (establecando la lista de azulejos de página, ConfiguraciónStatusWindow rutas . sub-tópicos, y la página misma). Actualizaciones /network para utilizar el nuevo /api/security/enter-como endpoint para el botón ENTER existente, por lo que el dominio de destino recibe una sesión construido del miembro de la org objetivo (arreglo al error donde la fuente El miembro de org/orgID se filcó en la nueva sesión). Añade un ENTER AS SISTEMA botón a la siguiente Agina de administración que sólo renderiza después **************** confirma que el que llama es elegido.

  21. · SecurityService

    Relleno, entrada en el flujo, guardias de mutación, API de configuración

    Aprovisionamiento autoheica: SystemUserBackfillService se ejecuta en cada Bota SecurityService (de DataLoader) para añadir la columna is-system.user-user y tabla de acceso de sistema, si falta, asegúrese de que el sistema de singleton El registro de usuarios existe, y crea un equipo de administrador-función en cada org sin nivel superior al que no pertenece ya. También corre en crear tiempo para que nuevos orgs consigan una membresía de usuario del sistema inmediatamente en lugar de esperar el próximo reinicio. Cross-org entra en flujo: reemplaza el viejo aypi/generate-otk hand-off (que filtró la sesión de fuente-org del llamante al dominio de destino) con /api/security/enter-as. El nuevo endpoint construye un nuevo visor *** a el miembro real de la org objetivo, por lo que memberID/orgID/rights siempre coincida la org en la entrada. Añade un campo SUDO-MEMBER-ID a la sesión JSON para que que la suplantación de Usuario del Sistema lleva al miembro del operador humanoId para la atribución de auditoría. Guardias: SystemUserGuard rechaza cualquier mutación impulsada por la API al Sistema Registro de usuarios o cualquiera de sus miembros (conectado en MemberController, MiembroSecurityController, **************** hides el Usuario del sistema de GetMembersAndSuscriptores, getTeamMembersAndContractors, y getMembersByDepartment endpoints para que los inquilinos nunca lo vean en las listas. Superficie de confidente: SystemUserConfigController expone a CRUD sobre la subvención mesa para propietarios de primer nivel solamente, y SystemUserabilityController devuelve un booleano de la página /network utiliza para decidir si renderizar el Botón de los miembros del SISTEMA ENTER.

  22. · kamo-shared-library

    Añadir la bandera del usuario del sistema - entidad de acceso-subcote

    Presenta el modelo de usuario del sistema de toda la plataforma: una bandera Usuario.isSisstemaUser (índice parcial único impone un solo to), más una tabla de SystemUserAccess que registra qué departamentos de alto nivel, títulos de trabajo o miembros del equipo puede hacerse pasar por el Usuario del Sistema para introducir orgs infantiles. Las filas de acceso son plataformas-internal (no entradas RoleRightType) por lo que se quedan fuera de la Los derechos de los inquilinos salen a la superficie.

  23. · kamo-register

    Añadir la verificación telefónica . pasos de preguntas de seguridad

    Insertar dos nuevos pasos entre la contraseña y la recuperación de cuentas para 13 registrantes: un paso de número de teléfono (opcional, esquiable, con código SMS verificación) y paso de las cuestiones de seguridad (negado, 3 distintos preguntas con respuestas). Los inscritos de Sub-13 siguen esquivando ambos y confiar en su frase de semilla para la recuperación. - FormPhoneNumber: in situ - . . . . . . . . . . . . . . . . . . . . widget Capcha gating SMS enviar, cambiar-número y saltarse caminos. - FormSecurityPresstions: 3 desplegables - respuestas, singularidad impuesta, El catálogo se llevó del nuevo punto de apoyo público. - RegistroFlow: nuevo formularioData campos, pasos condicionales, handleNext Validación, teléfono y seguridadPreguntas enlazadas en el cuerpo de presentación. - /api/fran de seguridad ahora va hacia adelante X-Forwarded-Host para que el backend pueda resolver el org para la selección del proveedor de SMS.

  24. · SecurityService

    Recolectar las preguntas de seguridad durante el registro

    Mávete de la colección de números y de seguridad en el autoservicio flujo de registro (donde originalmente estaban previstos) en lugar de requerir una página de configuración post-señal. - Nuevo registroPhoneService: generas/verifica códigos SMS de 6 dígitos a través de BulkTextSmsClient, TTL de 10 minutos, límite de 5 horas por tarifa por número. - RegistroServicio ahora acepta un registro de RegistroParams con opcional verificarPhone y una lista de preguntas de seguridad de 3 entradas; preguntas de seguridad son bcrypt-hashed con la regla de la respuesta-normalización existente. - /api/security/register acepta ************* y reclama el teléfono verificado contra el código antes de persistir en el Usuario. - Nuevos endpoints públicos POST /register/phone/iniciado (capcha-gated), POST /regter/phone/verify, y GET *******************

  25. · kamo-shared-library

    Añadir la entidad de registroPhoneCode .

    Nuevo tabla de "registration".phone-codes-tiendes-tiendas códigos de verificación SMS de un solo tiro emitida durante el registro de autoservicio, antes de que exista una entidad de Usuario. Se mantiene separado de AccountVerificationCode para evitar llevar un usuario de NULLId en esa mesa.

  26. · kamo-internal

    Añadir páginas de miembros de Miembro / Agregar a los miembros

    - /cuenta: sustituir un botón ambiguo con botones de pestañas Añadir "Miembro" en la pestaña Miembros, Añadir a miembro del equipo en la pestaña de miembros del equipo. Cada botón ruta a una página de creación dedicada en lugar de la vieja a través de la visión de detalle de los miembros. - Nuevos /settings/miembro/nuevos y /settings/team-member/new pages, ambos respaldado por un miembro compartidoCreateForm con un soporte "variante". - El formulario es un diseño de una sola página, orientado a la sección (nombre, identidad, contacto, buzón de org, rol/ubicación de solo miembros del equipo, revisión). En vivo la vista de usuario El correo electrónico y el nombre de usuario advierten cuando un usuario ya existe o ya está vinculado como miembro de esta org. - Honores la AgeReqType de la org: si el requisito permite a los usuarios menores de 13 años campos de correo electrónico personales y de organización están ocultos y el nombre de usuario se convierte el identificador principal. - La casilla de verificación opcional "organización de supervisión correo" crea la buzón vía EmailService y lo asigna como buzón principal del miembro. - Pestaña de perfil en /settings/member/[id] ahora incluye Work Location, Team Estado de membresía, y Título Oficial de Trabajo para los registros de TeamMimbre, portado a la actual PUT /api/security/members/.id. endpoint.

  27. · SecurityService

    Añadir flujo de creación de miembros/deñar equipo

    - Nuevo MiembroCreateController expone: * GET ************* . edad-req, zona horaria, departamentos, títulos de trabajo * GET ************* . verificación de la existencia debouncida chequear por correo electrónico o nombre de usuario * POST /api/security/members/create - crear Miembro en caller's org * POST ************* * Crear miembro de equipo con departamento / título del trabajo / lugar de trabajo / estado de membresía / nivel de seguridad - Reutiliza un Usuario existente cuando el correo electrónico o el nombre de usuario ya coincida; de lo contrario crea un Usuario neto y envía la plantilla EMAIL.VERIFICATION. BIENCOME La plantilla siempre se envía en la creación. - For orgs cuya AgeReqType permite a los usuarios menores de 13 años, la colección de correo electrónico es saltarse y el nombre de usuario se convierte en el identificador principal. - Exita GET /members/-id' para volver ubicación - equipoMembershipStatus es Organopiante de los miembros del equipo, y PUT para persistir en la ubicación, EquipoMembershipStatus, y jobTiptleOfficial cuando conste es miembro del equipo. - Asignación por defecto de funciones de funciones - materialización de derechos delegada en el Servicio Miembro Así que cada nuevo miembro aterriza con sus derechos efectivos ya aplicados. - Fix EntitlementService: boolean getter se deletreó getIsOrganizationOwner (Lombok genera esOrganizationOwner para campos booleanos primitivos).

  28. · kamo-shared-library

    Añadir AgeReqType.allowsUnder13() ayudante

    Utilizado por el Agregar Miembro / Agregar el flujo de miembros del miembro para saltar la colección de correos electrónicos para orgs cuyo requisito de edad permita a los usuarios menores de 13 años (ALL-AGES, KIDS-ONLY, ALL-COPPA-GRADS).

  29. · kamo-internal

    Reconstruir los planes y facturaciones de miembros en torno a los grupos de facturación

    - Pestaña Planes y Facturación de los miembros está ahora alineada con un brillo pulsante y un icono de StarRate en la barra de pestañas. Visible cuando el miembro visto es el usuario firmado o el usuario firmado es el propio org. Composición dividida en cuatro subtabs: Suscripciones, Factrices, Payment Info, Manage Group. Detección del selector de grupos de facturación - "Agregar Billing Group" botón de icono en vivo a la derecha de la barra de sub-tab; la selección de grupo conduce cada panel. - El panel de suscripciones muestra una tarjeta por mercado activo (FREE-DEFAULT KamoCRM siempre presente), con cambio-plan / cancelación / reactivado y a Rícula de licencia-asignación por asiento. Corre de autodesactivación prioritaria lado servidor en la reducción del asiento. - Panel de pago envuelve Stripe Elements vía StripeProvider a refactored PaymentMethodForm que se adhiere a un grupo de facturación (no el viejo cliente de nivel de org). -Gestiejo panel de grupo edita título / contacto de facturación / permisos de miembros (Licensee, Gerente de Planes de Grupo, puedeManageSubscription, canManageBilling) y añade/elimina a los miembros. El Grupo por Predeterminado es sólo leído. está implícito (todo el mundo no está en un grupo explícito), y no hay título o las ediciones de permisos están permitidas. - /settings/account?tab=bilación borrado directamente. BillingManager. PlanCalculator eliminado. Enlaces en todas partes actualizados al nuevo miembro Planes y facturación. - SettingsStatusWindow /settings landing nav ambos podados (tres vías sincronizar por regla de nav-sinc). - BranchSetupManager obtiene una nueva sección de "mercados de comercio" dentro de la Editor de modelo de seguridad, usando el nuevo SecurityModelMarketController para adjuntar/despuerto de los mercados de SUBSCRIPTION con por-scope Público/Miembro/ Equipo-Miembro desfromestes. - ********************** reescrito para mostrar por-org Billing Grupos - suscripciones por grupo - MRR. /settings/plataforma/eventos y /configuraciones/plataforma/planos se convierten en páginas de marcadores de posición (su antiguo contenido se han ido con el corte de la rebote limpio). - Nuevos proxies de API: /api/security/titlementments y **************** Nuevo usoLos derechos enganchado consume SecurityService EntitlementService para la toma de funciones en el - UI. Archivos de consumo de Legacy (StatsManager, FeaturesManager, BranchSetupManager lleva el control hasta su suscripción Código de calificación se reelabora en el usoComportamientos.

  30. · SecurityService

    Añadir Derechos de servicio . SeguridadMel de comercio

    - Derechos de servicio computes por parte de miembros subvenciones por unión activa El plan BillingGroupLicense cuenta con la línea de base de KamoCRM Free-tier. Caches Proyecciones de 15 minutos en Redis keyed sobre memberId. - Derechos de invalidaciónListener se suscribe al kamo.entitlements.invalidate Canal de Redis (DICIEMBRE:/GROUP:/ORG: cargas útiles) por lo que mutaciones de BillingService propagar inmediatamente. - DerechoController a /api/security/titlements expone /me, **************** y un POST de invalidación de caché. - SecurityModelMarketController en **************** Adosados y separa ComercioMarkets a ChildOrgSecurityModel y voltea el Public / Member / Team-Member scope booleans.

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