Saltar al contenido
KAMOUniverse

Changelog

Qué hay de nuevo.

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

  1. · SecurityService

    Añadir el aprovisionamiento temático . Editor NATS, a endpoint de provision-theme, logo Subir

  2. · ConversionService

    Añadir el rediaño de imagen y los endpoints de generación favicon

  3. · InitializerService

    Añada corredor de migración para la columna logo-full-ext en orgs

  4. · kamo-shared-library

    Añadir logotipoCaso deFullExt a la entidad de la Organización; agregue la lista Objetos a MinIOStorageService

  5. · kamo-internal

    Reemplaza los iconos de emoji con sólidos iconos de SVG en la creación de mago stepper

  6. · 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.

  7. · 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.

  8. · 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.

  9. · 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

  10. · MediaService

    Live pending support ticket count via NATS — notify org owner on new tickets, add pending-count REST endpoint

  11. · kamo-shared-library

    Añadir campo de conteo pendiente a SupportAgentNotificationDTO y conteo de consultas para SupportTicketRepository

  12. · 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.

  13. · 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.

  14. · 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.

  15. · 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

  16. · 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.

  17. · 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.

  18. · 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.

  19. · 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().

  20. · kamo-marketing

    Añadir milisegundos para lanzar la cuenta re, marcar cada 50ms

  21. · 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.

  22. · 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.

  23. · 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.

  24. · 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.

  25. · 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.

  26. · 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.

  27. · 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

  28. · DocsService

    Añadir imaginaciónContralor con tipo doc, orden de apilamiento y assoc config CRUD

  29. · kamo-shared-library

    Añadir ImgAssocConfig entidad, repositorio y ordenarOrder a ImgStackingOrderDt

  30. · 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