Changelog
Qué hay de nuevo.
Cada mejora de la plataforma, a medida que se envía.
· SecurityService
Añadir el aprovisionamiento temático . Editor NATS, a endpoint de provision-theme, logo Subir
· ConversionService
Añadir el rediaño de imagen y los endpoints de generación favicon
· InitializerService
Añada corredor de migración para la columna logo-full-ext en orgs
· kamo-shared-library
Añadir logotipoCaso deFullExt a la entidad de la Organización; agregue la lista Objetos a MinIOStorageService
· kamo-internal
Reemplaza los iconos de emoji con sólidos iconos de SVG en la creación de mago stepper
· kamo-shared-library
Añadir findByBranchTypeID deriva la consulta derivada a OrganizationRepository
Soporta el nuevo criterio /branch-tipos/-id/usages endpoint en SecurityService para comprobar si un tipo de rama tiene ogs activos antes de la eliminación.
· SecurityService
Añadir GET /branch-types/creatable y /-id-s/usages endpoints
Tipos de rama de retornos /creatable filtrados por el tipo creador del llamante (OWNERS/TEAM-MEMBERS/MEMBERS) a través de AppliedMoforcementService. /Eid/usages devuelve el conteo y resumen de orgs creados bajo una dado tipo de rama, utilizado por el frontend para bloquear la eliminación dura.
· kamo-internal
Eliminación de rama de guarda contra usos activos de org
Antes de quitar un chip tipo rama, el frontend ahora llama **************** Si existen ucillos se muestra un diálogo informativo que los enumere e instruye al administrador a deshabilitar el tipo en lugar de borrarlo.
· kamo-internal
Inscripción de entradas de soporte en vivo en NavTop . SupportCountContext se suscribe a NATS a través de STOMP, insignia muestra pendiente de conteo
· MediaService
Live pending support ticket count via NATS — notify org owner on new tickets, add pending-count REST endpoint
· kamo-shared-library
Añadir campo de conteo pendiente a SupportAgentNotificationDTO y conteo de consultas para SupportTicketRepository
· kamo-internal
Añadir campo de nombres de dominio a asistente de creación de org
Añade un campo de dominio requerido al paso de Basics con el despojo automático de www. Validado, incluido en la carga útil de la API, y mostrado en el paso de revisión.
· kamo-marketing
Añadir la llamada de modificación de la API a kamo-api-referencia
Mostrado sólo en /kamo-api-referencia, incita a los usuarios a presentar cambio de API solicitudes vía /-pidaciones o contactar vía /contacto.
· SecurityService
Añadir GET /branch-types/creatable endpoint con filtrado tipo creador
Devuelve sólo los tipos de rama que el miembro de la llama está permitido para crear una niño org under, basado en su clasificación OWNERS/TEAM-MEMBERS/MEMBERS contra los modelos de seguridad aplicados de la actual org. Espejos exactamente igual getBranchTypesCreatableA la aplicación el punto de endo POST /org se aplica en tiempo de envío, para que el frontend pueda prefiltrar la lista de selección y evitar mostrando opciones que producirían un 403. La respuesta incluye permitidosMemberAgeRanges y se permiteTeamMemberAgeRanges del modelo de seguridad de cada tipo de rama para que la interfaz de usuario pueda portón AgeReqType opciones en la misma petición, sin un ida y vuelta.
· kamo-internal
Reemplaza el paso del asistente de OrganizationType con la selección de branchType/SecurityModel
- Reemplazar OrgTypeStep (OrganizationType . Configuration dropdowns) con BranchTypeStep que trae ************* nuevo endpoint devuelve tipos de rama que el llamante está permitido crear un niño org bajo, filtrado por sus OWNERS/TEAM-MEMBERS/MEMBERS/MEMBERS clasificación con los modelos de seguridad aplicados de la org - Eliminar OrganizationType de la carga útil por completo; configType es ahora autoderivado de la aplicación de la aplicación de seguridad permitidosMemberAgeRanges (KIDS-ONLY - KIDS-CLUB, rango adolescente - CLUB, la osse ENTERPRISE) - AgeRestrictionsStep ahora filtra las opciones disponibles de AgeReqType para aquellos permitido por el modelo de seguridad seleccionado, con una pancarta al cotizar activa; la edad nula (No especificada) sigue siendo un seguro sin poncha por backend - Después de la creación exitosa redireccionar a /setup/dns?orgId=&orgName= de el CURRENT org (no el nuevo niño org) - DNS debe ser configurado antes de el nuevo org es accesible - Añadir ************* Siguiente.js ruta proxy - ReviewStep muestra el nombre del tipo de rama. org tipo/config insignias
· kamo-internal
/network create affordance está cerrada por el tipo miembro.
- BranchSetupManager: nuevo "Who Can Create Child Orgs Under this Model" tarjeta con tres toggles (Miembros / Miembros del equipo / Propietarios). Valores ida y vuelta a través de mapaBackendModel y ambos ahorran flujos (modelo infantil - modelo maestro). El estado vacío predetermina los tres a falsos un modelo no ofrece creación a nadie hasta que el administrador los opta por ellos. - /network page: tratches **************** en Montar y esconde cada "Create New Organization" affordance (jefe botón, botón vacío-estado, tarjeta inferior) a menos que el servidor Devoluciones definitivas puedeCreateChildOrg=true. Mientras que el chequeo es en vuelo (null) la paga permanece escondida para que nunca lo destellamos a un miembro que no debería verlo. - Nueva ruta de poder de ************* hacia adelante a través del nuevo endpoint de SecurityService.
· SecurityService
Creación de portón /red para niños-org por derecho - aplicabilidad de tipo miembro
Alambres la puerta de creación de niños-va aplicada-modelo de seguridad de extremo a extremo: - SecurityModelController - MasterModelController ida y vuelta a los tres nuevos aplicar-a flags (aplicaToMembers / applyToTeamMembers / aplicaToOwners) a través de crear y actualizar cargas útiles. - Nuevo GET ********** se resuelve para el Sesión de llamadaer - el cubo tipo creador en el que caen, si su El rol lleva CREATE-CHILD-ORG, la lista de tipos de sucursales disponibles para ellos, y una canCreateChildOrg boolean boolean que la página /network utiliza para ocultar la asar la asperanza cuando es falso. - **************** ahora rechaza con 403 cuando el Al que llama carece de CREATE-CHILD-ORG o elige un tipo de rama que no está entre aquellos que su tipo de creador se ofrece - defensa en profundidad contra un cliente que pasa la puerta de IU.
· kamo-shared-library
Puerta de los miembros . CREATE-CHILD-ORG derecho para la creación de niños-org
Añade la capa de datos para la creación de gating /network child-org por tipo de miembro: - Nuevo CREATE-CHILD-ORG a la derecha en RoleRightType (id 131). - Tres nuevas columnas booleanas sobre ChildOrgSecurityModel: aplicaToMembers / aplicaToTeamMembers / aplicaToOwners Cuando es cierto, los tipos de rama del modelo se ofrecen a ese cubo tipo miembro en /network. Un modelo con los tres falsos nunca sale a la superficie como creación opción a cualquier persona, sólo gobierna orgs existentes. - ChildOrgSecurityModelService gana sobrecargas de 13 agarras de creación/actualización que aceptar las nuevas banderas; las firmas heredadas de 10 bragas delegadas. - ChildOrgSecurityModelDTO rompe las tres banderas. - AppliedModelforcementService expone la lógica de la puerta que cada llamante acciones: enum ChildOrgCreatorType - MIEMBROS, TEAM-MEMBERS, OWNERS getBranchTypesCreatableBy (org, creadorType) - la lista de tipos de sucursales que pertenecen a los modelos que se aplican a ese tipo de creador y que tienen en al menos un tipo de rama. ********************** creatorType) predicate boolean. Clasificación tipo Creador: OWNERS = miembros del equipo con esOrganizaciónOwner=true, TEAM-MEMBERS = otros miembros del equipo, MIEMBROS = todos los demás. La verificación correcta (CREATE-CHILD-ORG) no se hornea intencionalmente en estos ayudantes. llamadas a los que se combinan ambos cheques para que el ayudante también pueda espaldas consultas solo para leer.
· InitializerService
Modelo maestro se aplica a los tres tipos de miembros en init
provisionMaxedOutMasterModel ahora establece términosToMembers, aplicaToTeamMembers, y se aplicaToOwners todos los verdaderos para que cada tipo de miembro vea el modelo maestro Tipos de rama como opciones de creación en /network. La plantilla Administrador continúa GRANT cada RoleRightType incluyendo el nuevo CREATE-CHILD-ORG derecha (id 131) en virtud de la iteración de RoleRightType.values().
· kamo-marketing
Añadir milisegundos para lanzar la cuenta re, marcar cada 50ms
· kamo-marketing
Sustituir fecha de lanzamiento estática con cuenta renada en vivo hasta 2PM PST Abr 20 2026
Atar cada segundo mostrando Xd XXh XXm XXs; cae de nuevo a fecha estática Hasta que el cliente se hidrata, muestra "Ahora" cuando se alcanza el objetivo.
· InitializerService
La plantilla de rol por defecto del administrador comienza con todos los derechos GRANTED
provisionMaxedOutMasterModel ahora pueblan la plantilla Administrador con cada RoleRightType listo para GRANTED. Las otras tres plantillas (miembro del equipo, Miembro, DEFAULT) todavía se materializa con cero derechos (NOT-SPECIFIED para todo), coincidiando con la línea de base en blanco prevista para los papeles no de los administradores. Por qué GRANTED (no FORCE-GRANTED): en el tiempo de creación de niños-org ChildOrgTemplateSeedingService copia valores de plantilla no forzada en el nuevo OrgRoleRight filas de org, así que una plantilla de administración GRANTED da a cada niño nuevo org un papel de administrador listo para usar con los permisos completos que el propietario todavía puede Editit. FORCE-GRANTED bloquearía los derechos en el tiempo de ejecución y los escondería de la editor de seguridad-roles, que no queremos para la línea de base de la plantilla de administración.
· InitializerService
Disposición de un modelo de seguridad maestro al máximo para KamoCRM en init
DataLoader crea y asigna un maestro ChildOrgSecurityModel a KamoCRM inmediatamente después de la creación de la org, con cada ajuste al máximo hacia el valor más permisivo / con fuerza: - allowOwnersViewOtherOrgs / allowOwnersPrivateOrgs / allowSubChildOrgs = true - identityProviderSetting = ENABLED - teamMemberPayFeSetting = FORCE-ENABLE - permitidoMemberAgeRanges / allowedTeamMemberAgeRanges = every AgeReqType - appConfigs = cada servicio no despreciadoType en FORCE-ENABLED, con CRM permiteCommerceTypes que contiene cada CommerceType - Organización.masterModelID se establece en el nuevo modelo Las cuatro plantillas de rol predeterminadas (Administrator / Miembro / Miembro / Miembro / DEFAULT) se materializan con cero derechos para lo que la IU hace fichas para cada uno de los derechos queden NO-SPECIFIED en tiempo de ejecución, el en blanco previsto de referencia. Los administradores pueden editar reglas de fuerza específicas más adelante a través de los tipos de rama Pestaña. También bumps kamo-shared-library a 1.5.0 por lo que el nuevo ChildOrgSecurityModelServicio / AppConfigService / DefaultRoleService y tipos relacionados resuelven en el momento de compilación.
· kamo-internal
CaracterísticasManager honra a modelo aplicado estado habilitado para la fuerza
Acepta el nuevo modeloDisponibilidad a campos cerrados de FeatureController y las en superficie en la interfaz de usuario: - Características cuyo modeloDisponibilidad es FORCE-ENABLED render el descalzo en en estado, desactivado, con una herramienta explicativa y administradores pueden ver Están encendidas, pero no pueden darles la vuelta. - Acarparar un modeloDisco de cortocircuitos con un tostado claro que un error genérico del backend 403. - Las características de NO AVAILABLE nunca llegan al cliente (lado filtrado del servidor) Así que la lista de IU ya es la vista cerrada.
· SecurityService
El modelo aplicado es la fuente de la verdad en tiempo de lectura para la disponibilidad de características
Cierra el hub de "sacero DB filtra una característica desactivada" marcando cada superficie que toca OrgFeature / ServiceType a través del modelo de seguridad aplicado. - **************** (el alimentador principal del frontend OrgContext): sustituye la serialización de características brutas con ********************** org.getCaracteres ()). El auto- el bucle de provisiones ahora también se salta las aplicaciones del modelo NOT.AVAILABLE Nunca creamos filas de DB para aplicaciones bloqueadas. - FeatureController.list: devuelve cada característica con el modeloDisponibilidad metadatos cerrados. Las filas NO AVAILABLE se filtran, filas FORCE-ENABLED se notan como activados=true locked=true independientemente de su estado de DB. La lista disponible también se filtra a las aplicaciones que el modelo permite. - Nuevo appAvailabilidadInterceptor . WebMvcConfig: instala un ManejeInterceptor en cada prefijo URL de respuesta de servicio (/api/security/pos, /api/security/commerce-markets, /api/security/leads*, /api/security/lead- importaciones, /api/seguridad/limercados de plomo, /api/seguridad/vendores de plomo, ******************* ********** ************* Cada petición se combina con un ServiceType, resuelto contra el modelo aplicado por el llamante, y rechazado con HTTP 403 si la aplicación está efectivamente apagada. Esta es la última línea de defensa: incluso con estado de cliente rancio, un guardia de control olvidado, o una llamada directa de API, una aplicación bloqueada devuelve 403. Efecto Net: el modelo de seguridad aplicado ahora gana en tiempo leído en todas partes las funciones o aplicaciones de la org están expuestas a la navegación, página de inicio, configuración slide-out, FeaturesManager, endpoints por servicio. Cuando el administrador se vuelca CRM a NO AVAILABLE en el modelo, la interfaz de usuario de CRM desaparece del frontend y CRM endpoints comienza 403'ing independientemente de si el DB todavía tiene OrgFeature.isActive=true para CRM.
· kamo-shared-library
resolución de características eficaces para la hora de la lectura aplicada de modelo aplicado
Añade la puerta de la hora de lectura que hace que el modelo de seguridad aplicado sea el definitivo fuente de la verdad para la disponibilidad de características, por lo que el estado DB rancio no puede filtrar un Característica deshabilitada a través y una característica habilitada por la fuerza siempre es visible incluso cuando el DB no se ha puesto al día. Nuevos métodos en AppliedModelforcementService: - computeAdisilabilitiesMap(org) Resolución de un solo paso de cada ServiceType's disponibilidad para una org en un solo vistazo. Sirve como el lote primitivo los otros nuevos métodos basados. - esAppEfectivelyEnabled(org, serviceType, características) esta aplicación en el cheque. Los servicios básicos siempre encendidos, despreciados siempre fuera, FORCE-ENABLED siempre encendido, NO AVAILABLE siempre desactiva; OPTIONAL.* se postra a La fila de OrgFeature es Active. - *******************) . el Set-ServiceType. acompañante para los que llaman que necesitan "todas las aplicaciones" como conjunto. - computeEfectectiveFeatures (org, características) - devuelve una nueva ArrayList de Filas de orgFeature proyectadas a través de la puerta: NO.AVAILABLE cayó, FORCE-ENABLED obligado a activar (incluso en filas de DB desactivadas), y Aplicaciones FORCE-ENABLED sin fila DB aún representadas por filas transitorias (organización-enlaceda, nunca persistió). Los llamantes serializan las características de un org a los clientes ahora se dirigen computeEffectiveCaracterística en lugar de leer la colección cruda, por lo que el frontend ve la vista aplicada-modelo por defecto.
· kamo-internal
Añadir las pestañas de configuración de documentos per-asociación de los documentos con tipos de doc, órdenes de apilamiento y paneles de configuración
Sustituye ComingSoonTab en /settings/features/docs con una interfaz de configuración completa: - Pestaña general general de una pestaña por ImageAssocType (cuenta, Aplicación de servicio, Orden de servicio, Grabación de llamadas, Mis Docs, Recording Meet, System-Wide) - Cada pestaña assocType tiene 3 sub-tabs: Configuración (carpeta/docType características de tomas), Doc Tipos (Rómida CRUD), Ordenes de Apilamiento (CRUD con cajón de tuberías visuales) - Next.js API proxy routes for all Imaging settings endpoints - AssocConfigPanel, DocTypesManager, StackingOrdersManager, StackingOrderDrawer, AssocTypeSettings components
· DocsService
Añadir imaginaciónContralor con tipo doc, orden de apilamiento y assoc config CRUD
· kamo-shared-library
Añadir ImgAssocConfig entidad, repositorio y ordenarOrder a ImgStackingOrderDt
· InitializerService
Añade FEATURE-REQUESTS a la categoría de Soporte y todas las mapeos de la planta-caracter total
Gratis: Voto comunitario, Inicio: Voto y solicitud, Negocio: Solicitudes prioritarias, Enterprise: Dev personal personal incluido

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