Aller au contenu
KAMOUniverse

Changelog

Ce qui est nouveau.

Chaque amélioration apportée à la plateforme, à mesure qu'elle est livrée.

  1. · SecurityService

    Ajouter la provisionnement de thèmes - Éditeur NATS, point d'extrémité de fourniture-thème, téléchargement de logo

  2. · ConversionService

    Ajouter des critères d'évaluation de la redimensionner et de la génération de favicon

  3. · InitializerService

    Ajouter un glaqueur de migration pour logo-full-ext column on orgs

  4. · kamo-shared-library

    Ajouter le logoFullExt champ à l'entité de l'organisation; ajouter listeObjects à MinIOStorageService

  5. · kamo-internal

    Remplacer les icônes emoji par des icônes SVG solides sur le créateur d'ordinateur à pas

  6. · kamo-shared-library

    Ajouter findBranchTypeEID requête dérivée à OrganizationRepository

    Soutient le nouveau critère d'évaluation / sous-types/-id/-sid-/usages dans SecurityService pour vérifier si un type de branche a des orgs d'enfants actifs avant la suppression.

  7. · SecurityService

    Ajouter GET/types de branche/créable et /-id/série d'utilisation

    / types de branche de retours créables filtrés par le créateur de l'appelant (OWNERS/TEAM-MEMBERS/MEMBERS) via AppliedModelEnforcementService. /-id-/usages renvoie le dénombrement et le résumé des orges créés sous un un type de branche donné, utilisé par le frontend pour bloquer la suppression dure.

  8. · kamo-internal

    Suppression de type branche de garde contre les usages d'orges actifs

    Avant de supprimer une puce de type branche, le frontend appelle maintenant Si des orgs existent, il montre un dialogue d'information les énumérant et ordonne à l'administrateur de désactiver le type au lieu de le supprimer.

  9. · kamo-internal

    Insigne de billet d'assistance en direct sur NavTop et SupportCountContext s'abonne à NATS via STOMP, le badge montre en attente le nombre

  10. · MediaService

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

  11. · kamo-shared-library

    Ajouter le champ de comptage en attente à SupportAgentNotificationDTO et la requête de comptage à SupportTicketRepository

  12. · kamo-internal

    Ajouter un champ de nom de domaine à l'assistant de création d'une orge

    Ajoute un champ de domaine requis à l'étape Basics avec www. stripping automatique. Validé, inclus dans la charge utile API, et montré dans l'étape de révision.

  13. · kamo-marketing

    Ajouter l'appel à la modification de l'API à la page kamo-api-reference

    Montré uniquement sur /kamo-api-reference, invite les utilisateurs à soumettre un changement d'API demandes par /demande ou contact par /contact.

  14. · SecurityService

    Ajouter GET/types de branche/critère créatable avec filtrage de type créateur

    Retourne uniquement les types de branche que le membre appelant est autorisé à créer un Ensemble d'enfants sous, sur la base de leur classification de PROPRIÉTAIRES/ÉMIEMBRES/MEMBRES contre les modèles de sécurité appliqués de l'organisation actuelle. Les miroirs exactement les mêmes getBranchTypesCretablePar application du critère d'évaluation POST /org s'applique à temps de soumission, de sorte que le frontend peut pré-filtrer la liste de sélection et éviter montrant des options qui produiraient un 403. La réponse comprend les gammes autorisées de l'AgeAge et les gammes autorisées du modèle de sécurité de chaque type de branche afin que l'interface utilisateur puisse gate AgeReqType les options dans la même demande, sans deuxième aller-retour.

  15. · kamo-internal

    Remplacer OrganizationType wizard step with branchType/SecurityModel selection

    - Remplacer OrgTypeStep (OrganisationType et configuration) par BranchTypeStep qui fâtse - le le nouveau critère d'évaluation ne renvoie que les types de branche que l'appelant est autorisé à créer un enfant en charge sous, filtré par son OWNERS/ÉMINU-MEMBRES/MEMBRES Classification par rapport aux modèles de sécurité appliqués de l'organisation - Supprimer OrganizationType de la charge utile entièrement; configType est maintenant Dérivé automatiquement du modèle de sécurité autorisé MemberAgeRanges (KIDS-ONLY - KIDS-CLUB, teen-range - CLUB, sinon ENTREPRISE) - AgeRestrictionsStep maintenant filtres disponibles AgeReqType Options à celles permis par le modèle de sécurité sélectionné, avec une bannière lorsque le port est actif; âge nul (non spécifié) reste un produit sans émission par backend - Après la création réussie rediriger vers /setup/dns?orgId-orgName de l'organisation CURRENT (et non l'orgg de nouveau enfant) et le DNS doivent être configurés avant la nouvelle genre est accessible - Ajouter la route par procuration suivante.js - ReviewStep indique le nom du type de branche et la portée de l'âge autorisée au lieu de vie badges de type org/congestion

  16. · kamo-internal

    / la capacité de création de réseau est fermée par le type de membre

    - BranchSetupManager: nouveau "Qui peut créer des organisations d'enfants sous ce modèle" Carte à trois bascules (membres/membres de l'équipe/propriétaires). Valeurs Voyage aller-retour à la carteBackendModel et les deux flux de sauvegarde (modèle enfant) - modèle maître). L'état vide défaut tous les trois à faux - un modèle n'offre la création à personne jusqu'à ce que l'administrateur les opt. - /page de réseau: fetches Monter et cacher chaque « Créer une nouvelle organisation » (en en-tête) bouton, bouton de l'état vide, carte inférieure) à moins que le serveur ne retours définitifs canCreateChildOrg-true. Alors que le contrôle est en vol (noyau) la prime reste cachée afin que nous ne le clignons jamais à un membre qui ne devrait pas le voir. - Nouvelles voies de transit et indirectes jusqu'au nouveau point d'extrémité de SecurityService.

  17. · SecurityService

    Création de porte/réseau en or d'enfants par droit et applicabilité de type membre

    Fil de fin de ligne de départ de la création enfant-modèle de sécurité appliquée: - SecurityModelContrôleur et MasterModelContrôleur aller-retour dans les trois nouveaux appliquer aux drapeaux (appliesToMembers / appliesToTeamMembers / applyToToOwners) par la création et la mise à jour des charges utiles. - Nouveau GET - se décide - pour le la session de l'appelant - le seau de type créateur dans lequel ils tombent, si leur le rôle est associé à CREATE-CHILD-ORG, la liste des types de succursales dont ils disposent, et un canreCreateChildOrg booléen utilisé sur la page /network pour se cacher la création de l'aléance quand elle est fausse. - est maintenant rejeté avec 403 quand le l'appelant manque de CREATE-CHILD-ORG ou choisit un type de branche qui n'est pas parmi Ceux de leur type créateur sont offerts - la défense en profondeur contre un client qui contourne la porte de l'UI.

  18. · kamo-shared-library

    Porte de type membre - CREATE-CHILD-ORG droite pour la création d'or enfants

    Ajout la couche de données pour la création d'un portage/réseau par type d'enfant de réseau: - Nouveaux CREATE-CHILD-ORG de droite sur le thème "RctorType" (id 131). - Trois nouvelles colonnes booléennes sur ChildOrgSecurityModel : Appartiers à des membres/s'apposant à l'ÉquipemMembres / s'applique Lorsque c'est vrai, les types de branche du modèle sont proposés à ce seau de type membre sur/réseau. Un modèle avec les trois faux n'est jamais apparu comme une création l'option à qui que ce soit - elle ne régit que les questions existantes. ChildOrgSecurityModelService gagne 13 tranches de coûts de création/mise à jour de 13 charges accepter les nouveaux drapeaux; les signatures héritées de 10 tranches de 10 degrés sont déléguées. - ChildOrgSecurityModelDTO contourne les trois drapeaux. - AppliedModelEnforcementService expose la logique de la porte que chaque appelant parts: Enum ChildOrgCreatorType et MEMBRES, TEAM-MEMBRES, PROPRIÉTAIRES getBranchTypesCretableBy(org, creatorType) - la liste des types de branches qui appartiennent à des modèles qui s'appliquent à ce type de créateur et qui ont à au moins un type de branche. CréateurType) - prédicat booléen. Classification de type créateur: PROPRIÉTAIRES et membres d'équipe avec is OrganisationOwner-true, TEAM-MEMBERS et autres membres d'équipe, MEMBRES Tout le monde. Le contrôle de droite (CREATE-CHILD-ORG) n'est PAS cuit intentionnellement dans ces assistants - les appelants combinent les deux contrôles afin que l'assistant puisse également renvoie à des questions en lecture seule.

  19. · InitializerService

    Le modèle principal s'applique aux trois types de membres sur init

    provisionMaxedOutMasterModel sets désormais s'applique aux membres, s'applique à ToTeramMembers, et s'appliqueToToWwners tout est vrai de chaque type de membre voit le modèle maître types de succursales en tant qu'options de création sur/réseau. Modèle d'administrateur continue à GRANT chaque type de rôle, y compris le nouveau CREATE-CHILD-ORG droit (id 131) en vertu de l'itération de RoleRightType.values().

  20. · kamo-marketing

    Ajouter des millisecondes au compte à rebours de lancement, cocher toutes les 50 ms

  21. · kamo-marketing

    Remplacer la date de lancement statique par le compte à rebours en direct à 2 heures PST Apr 20 2026

    Coeurs toutes les secondes montrant Xd XXh XXm XXs; retombe à la date statique jusqu'à ce que le client s'hydrate, montre "Maintenant" quand la cible est atteinte.

  22. · InitializerService

    Le modèle de rôle par défaut de l'administrateur commence par tous les droits

    provisionMaxedOutMasterModel remplit désormais le modèle de l'administrateur avec chaque type de rôle à stratagème. Les trois autres modèles (membre de l'équipe, Membre de DEFAULT) se matérialise toujours avec zéro droit (NOT-SPECIFIED pour tout), en faisant correspondre la ligne de base en blanc prévue pour les rôles non adminis. Pourquoi GRANDE (non FORCE-GRANT) : au moment de la création d'enfantsorg ChildOrgTemplateSeedingService copie les valeurs de modèle de non-force dans le nouveau modèle OrgRoleRight rows, donc un modèle d'administration GANDTED donne à chaque nouvel enfant ug un rôle d'administrateur prêt à l'emploi avec des autorisations complètes que le propriétaire peut encore éditer. FORCE-GRANTED verrouillerait les droits à l'heure des opérations et les dissimulerait de la éditeur de forces de sécurité, ce que nous ne voulons pas pour la base de base du modèle d'administration.

  23. · InitializerService

    Fournir un modèle de sécurité principal maxed-out pour KamoCRM sur init

    DataLoader crée et affecte désormais un maître ChildOrgSecurityModel à KamoCRM immédiatement après la création de l'orge, avec chaque réglage max. à la valeur la plus permissive/à force: - permisOwnersViewOtherOrgs / allowOwnersPrivateOrgs / allowSubChildOrgs - true - IdentifierProviderSetting - ENABLED - équipeMembrePayFeesSetting et FORCE-ENABLE - autorisés MemberAgeRanges / allowedTeamMemberAgeRanges et chaque AgeReqType - appConfigs - chaque type de service non déprécié à FORCE-ENABLED, avec CRM'SimatiserTypes contenant chaque type de commerce - Organisation.masterModelID mis au nouveau modèle Les quatre modèles de rôle par défaut (administrateur/membre de l'équipe / membre / DEFAULT) sont matérialisés avec des droits nuls de sorte que l'UI rende des onglets pour chaque droit reste non-SPECIFI au moment de l'exécution, le blanc prévu valeur initiale. Les administrateurs peuvent modifier des règles de force spécifiques plus tard via les types de branchement onglet. bumps également kamo-shared-library à 1.5.0 donc le nouveau ChildOrgSecurityModelService / AppConfigService / DefaultRoleService et les types associés se résolvent au moment de la compilation.

  24. · kamo-internal

    CaractéristiquesManager honore l'état de force du modèle appliqué

    Accepte le nouveau modèleAvailability et les champs verrouillés de FeatureController et les fait surface dans l'UI: - Caractéristiques dont le modèleDisponibilité est FORCE-ENABLED l'état, désactivé, avec une infobulle explicative et les administrateurs peuvent voir Ils sont en train de s'en aller, mais ils ne peuvent pas les renverser. - Todeling a modelForced dispose de courts-circuits avec un toast clair plutôt que plutôt qu'une erreur générique du backend 403. - Les fonctionnalités NEUVES PAS DISPONIBLES n'atteignent jamais le client (côté serveur filtré) donc la liste de l'UI est déjà la vue fermée.

  25. · SecurityService

    Le modèle appliqué est la source de vérité en lecture-temps pour la disponibilité des caractéristiques

    Ferme l'intervalle "stale DB fuit une caractéristique désactivée" en portant chaque surface qui touche OrgFeature / ServiceType à travers le modèle de sécurité appliqué. (l'alimenteur primaire du frontal) OrgContext): remplace les caractéristiques brutes de la sérialisation par org.getFeatures()). L'auto- La boucle de provisionnement saute maintenant aussi apps le modèle ne brevete pas Nous ne créons jamais de lignes DB pour les applications bloquées. - FeatureController.list: retourne chaque fonctionnalité avec le modèleDisponibilité métadonnées verrouillées. Les lignes NON DISPONIBLES sont filtrées, lignes FORCE-ENABLED sont signalés comme activés - vrais - verrouillés - vrais quel que soit leur état DB. La liste disponible est également filtrée en applications que le modèle permet. - Nouvelle AppAvailabilityInterceptor et WebMvcConfig: installe un HandlerInterceptor sur chaque préfixe URL à portée de service (/api/security/pos, /api/sécurité/commerce-marchés, /api/sécurité/chefs-, /api/sécurité/lead- importations, /api/sécurité/marchés principaux, /api/sécurité/fournisseurs, :: Chaque demande est adaptée à un ServiceType, résolu par rapport au modèle appliqué de l'appelant, et rejeté avec HTTP 403 si l'application est effectivement éteinte. C'est la dernière ligne de défense: même avec un état client périmé, un contrôleur oublié, ou un appel API direct, une application bloquée retourne 403. Effet net: le modèle de sécurité appliqué gagne maintenant à l'heure de lecture partout les fonctionnalités ou les applications de l'org sont exposées - navigation, page d'accueil, paramètres Critères de décapage, FeaturesManager, par service. Quand l'administrateur bascule CRM à NON DISPONIBLE sur le modèle, l'UI CRM disparaît du frontend et les critères d'évaluation du CRM commencent 403's'''ing, que la DB ait encore ou non OrgFeature.isActive-vrai pour CRM.

  26. · kamo-shared-library

    Résolveur de caractéristiques efficace pour le portage en lecture-temps du modèle appliqué

    Ajoute la porte-temps en lecture qui fait du modèle de sécurité appliqué le modèle de sécurité final source de vérité pour la disponibilité des caractéristiques, donc l'état DB raréfié ne peut pas fuir a Une fonction désactivée et une caractéristique activée par la force est toujours visible même quand la DB n'a pas rattrapé. Nouvelles méthodes de service d'application de l'application: - calculAvailabilitiesMap(org) - résolution à un passage unique de chaque type de service disponibilité pour une gisure en une seule consultation. Sert la primitive du lot les autres nouvelles méthodes s'appuient. - isAppEnableively (org, serviceType, caractéristiques) - le canonique "est vérifier cette application sur ". Les services de base sont toujours, dépréciés toujours, FORCE-ENABLET toujours, NON DISPONIBLE (p. . . . . . . . . . . . . . . . . . . l'état actif de la ligne OrgFeature. - Caractéristiques) - l'ensemble de services compagnon pour les appelants qui ont besoin de "toutes les applications effectivement en place" comme ensemble. - calculEffectiveFeatures (org, caractéristiques) et retourne une nouvelle liste d'enregistrement OrgFeature lignes projetées à travers la porte: NON DISPONIBLE Largué, FORCE-ENABLED forcé à active (même sur les rangs DB handicapés), et APPS FORCE-ENABLED sans ligne DB mais représentées par des lignes transitoires (l'organisation a été portée, n'a jamais persisté). Les appelants sérialisant les fonctionnalités d'une organisation aux clients Caractéristiques de calculEffective plutôt que de lire la collection brute, de sorte que frontend voit la vue appliquée-modèle-réglée par défaut.

  27. · kamo-internal

    Ajouter des onglets de réglages de docs par assocec avec des types de doc, des ordres de gerbage et des panneaux de configuration

    Remplace ComingSoonTab sur /settings/spectals/docs par une interface de réglages complète: - Onglet d'aperçu général et un onglet par ImageAssocType (Compte, Service Application, Commande de service, Enregistrement d'appel, Mes documents, Enregistrement de la remise en forme, Largeur du système) - Chaque onglet assocType comporte 3 sous-onglets: Configuration (bassichoir/code de type panneau), Doc Types (plein CRUD), Commandes d'empilement (CRUD avec tiroir visuel de pipeline) - Voies de proxy de l'API de Next.js pour tous les critères d'évaluation des paramètres d'imagerie AssocConfigPanel, DocTypesManager, empilementOrdersManager, Pièceaux de gisement, composants AssocTypeSettings

  28. · DocsService

    Ajouter ImagingSettingsContrôleur avec type doc, ordre d'empilement, et assoc config CRUD

  29. · kamo-shared-library

    Ajouter ImgAssocConfig entité, référentiel et triOrder à ImgStackingOrderDt

  30. · InitializerService

    Ajouter FEATURE-REQUESTS à la catégorie d'appui et toutes les cartographies de plan-carratures

    Libre: Vote communautaire, Démarreur: Vote et demande, Entreprises: Demandes prioritaires, Entreprise: Custom dev inclus

Votre univers vous attend.

Commencez gratuitement en quelques minutes. Ajoutez des produits quand vous êtes prêt. Pas de migration, pas de nouvelles connexions.

Gratuit pour toujours — aucune carte de crédit requise