Aller au contenu
KAMOUniverse

Changelog

Ce qui est nouveau.

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

  1. · kamo-shared-library

    Supprimer VEW-DASHBOARD, VEW-REPORTS et EXPORTATIONS

    Les trois pages nommées qui existaient sur disque et qui n'étaient étayées que par rien: app/dashboard a rendu des messages d'échantillons directement à partir de i18n, app/rapports importé tramé-mouvement de cadre et le prochain et l'absence de données, et il n'y a pas de rapports moteur ou chemin d'exportation, où que ce soit dans la plate-forme. Aucune des deux pages n'a été reliée par navRegistry et aucune valeur d'application n'a été revendiquée. le test qui a maintenu en vie les droits de code de référence, depuis que MARKETING fait de la publicité ceux qui sont COMPLÉS. VISEW-TASKS (120) a été trié à côté de ceux-ci et est délibérément conservé. indistinctable des deux autres dans la source - inatteignable, sans dos, pur useState, i18n traduit dans 22 langues et doit être achevé. Un est abandonnée et l'une d'elle est la prochaine étape de la feuille de route, et seul le propriétaire du produit savait qui. La taxonomie 193/130/33/30 devient 190/129/32/29, 61 racines. Les quatre numéros bougent: un une racine qui perd son seul enfant, et cet enfant. Les cas 0, 1 et 2 sont brûlés. Il est à noter que 0 est un id réel. droite jamais déclaré - donc tout prédicat qui touche ceux-ci doit inclure zéro plutôt que l'on s'appuie sur la vérité.

  2. · kamo-internal

    Écônes d'applications sur l'étape de l'application et des fonctions du magicien

    L'assistant de création-réseau a dessiné chaque application comme la première lettre de son nom, donc le La même application était une vitrine sur Paramètres et un "S" ici. Les icônes Ils existaient déjà -- ils étaient verrouillés à l'intérieur de l'icône locale de FeaturesManager. A présenté ce tableau à - à base de ServiceType, et pointant les deux surfaces de celui-ci de sorte qu'ils ne peuvent pas dériver. Ajouté les deux apps que l'écran des caractéristiques n'a jamais été entré (CALCULATOR prend le rail nav Calculer, FEED prend DynamicFeed), les alias de nom déprécié, et un réseau app-râce repliement -- même forme que nav/settingsTopicIcons.ts. Chaque glyphe est plat var(--color-primaire) si l'application est allumée ou éteinte: vingt les produits arrivant chacun dans sa propre couleur se lirait comme une note de rançon. On/off reste avec la teinte de la tuile et l'interrupteur. Le test de garde échoue dans la construction si un service en direct n'a pas d'icône -- sinon a Les navires de l'application nouvellement catalogué en tant que carré gris anonyme et rien ne se plaint.

  3. · kamo-internal

    Une superposition en couleur pour le logo de l'écran de chargement

    Ajoute "Logo d'écran de chargement "overlayer le logo" directement sous la première page d'accueil - avec les mêmes treize options, appliquer sur le logo sur l'écran représenté entre les pages navigation. Défaut Pas de superposition, donc rien ne change pour un organisme qui n'ouvre jamais le champ. Son propre cadre plutôt qu'un partage avec la page d'accueil, parce que les deux les surfaces ont des arrière-arrières: une tête de mât blanche et une pente foncée. L'ombre qui lit sur l'un est rarement l'ombre qui lit sur l'autre, Et un seul cadre forcerait un choix qui est faux quelque part. Le témoignonne sous chacun de ce que dit. Le type est maintenant LogoOverlay, pas HomeLogoOverlay - il régit deux surfaces, et un type nommé d'un d'entre eux serait mal décrit les deux en une semaine. Le vocabulaire, le résolveur et la liste des options sont partagés; seule la colonne chaque lecture de la surface est différente, de sorte que les couleurs ne peuvent pas dériver. loading.tsx lit OrgContext directement plutôt que par le lancer crochet: il se monte pendant la navigation et ne doit jamais être la chose qui casse un transition vers la page. Une og manquante signifie pas de superposition, qui est la valeur par défaut Quoi qu'il en soit. Les deux lignes en lecture seule sont identiques, donc ils partagent maintenant une aideur au lieu de porter une copie chacun. Nécessite la colonne de chargement-logo-overlay (KamoInitializer, appliqué) et a SecurityService reconstruit contre l'entité partage-lib.

  4. · InitializerService

    Ajouter la colonne Chargement-logo-overlay

    Deuxième surface pour la superposition du logo: l'écran de chargement représenté entre les pages navigations, à côté de l'en-tête de la page d'accueil. Les deux ALTER vivent dans le seul coureur parce qu'ils sont un trait avec un vocabulaire, et quelqu'un à la recherche de l'un ou l'autre des autres devrait trouver les deux. Même forme que son frère - nul, pas de remblai, pas de remblai, pas de DEFAULT, puisque une valeur absente et Aucun ne signifie la même chose pour chaque client. Le garde de dérive itère maintenant les champs de superposition de l'entité au lieu de nommer l'un, donc une troisième surface ne peut pas être ajoutée à l'entité sans ALTER. C'est également une instruction par colonne: un seul ALTER partagé serait tranquillement laisser l'autre colonne non créée.

  5. · kamo-shared-library

    Emporter la superposition du logo de l'écran de chargement sur l'Organisation

    Le même vocabulaire superposé que homeLogoOverlay, appliqué à la place sur le logo sur l'écran de chargement indiqué entre les pages navigation, plus sa branche dans le chemin générique du patch. Une colonne qui lui est propre plutôt qu'un cadre partagé, parce que les deux les surfaces ont des arrière-arrières: la tête de mât de la page d'accueil est blanche et la écran de chargement est une gradient sombre, donc la teinte qui lit sur un est rarement l'ombre qui se lit sur l'autre. Une og qui veut les deux en veulent deux réponses. Null se résout de NON sur le client, donc chaque og existant commence par non superposés et n'ont pas besoin de remblai. La colonne de chargement-logo-overlay est déjà appliqué (KamoInitializer, OrgHomeLogoOverlayMigration).

  6. · kamo-internal

    Choisissez l'agent affecté dans le répertoire, pas une liste déroulante

    Le champ Agent affecté est maintenant le même contrôle que le gestionnaire sur un membre. profil: un champ en lecture seule qui ouvre le cueilleur utilisateur de membre. Une dérobauche ne pouvait jamais tenir qu'une page, et la liste derrière celle-ci a été chargée en entier voir si quelqu'un a ouvert ou non la carte - deux relevés d'annuaire par page load, dont l'une était morte depuis la dernière fois que le champ changeait de mains. L'éligibilité est inchangée dans le fond et mieux appliquée: le cueilleur demande annuaire pour les titulaires de VEW-LEADS, qui est le même droit, l'ancien critère d'évaluation résolu, et il reste sur les membres de l'équipe parce que c'est le champ d'application par défaut. Le "garder le cas particulier du cessionnaire candidat actuellement sélectionné" a été supprimé avec la liste déroulante le picker broye le pick le courant au-dessus des résultats, donc il survit à une recherche au lieu d'avoir besoin d'une option faite à la main. L'inassigne maintenant. L'option vide a toujours existé mais le patch s'est effondré c'est à un défini, qui buildUpdateLeadRequest saute, donc le choix a envoyé un vide et le fil de l'avance ont conservé son propriétaire. Le picker's Remove envoie l'id vide le serveur se lit maintenant comme un non-assignation explicite.

  7. · SecurityService

    Limiter la recherche du membre aux titulaires d'un droit donné

    Le préposé principal a besoin du répertoire pour ne rendre que les personnes qui peuvent Travailler en fait un lead, donc / membres d'équipe/recherche prend un droit requis. Une Un nom non reconnu est un paramètre 400 plutôt qu'inconnu: en chute silencieusement un filtre élargit une limite d'autorisation, ce qui n'est pas la bonne façon d'échouer. Un droit Personne ne retient retourne une page vide sans interroger, puisque l'alternative est une liste IN vide que la base de données ne sera pas analysée. Qui tient un droit s'engage dans RightHolderResolver, qui l'héritage Le point d'extrémité des membres assignables est également utilisé. La promenade a déjà été copiée à travers cinq sites d'appel et les deux sites d'affectation de rôle doivent se mettre d'accord sur la possibilité de savoir qui recevoir une avance - mieux qu'ils s'accordent en posant la même question qu'en Il est en train de détenir le même code aujourd'hui. Les trois autres sont intacts.

  8. · kamo-shared-library

    Laisser le répertoire filtrer de droite, et laisser une sonde non attribuée

    Deux choses dont le choix d'affectation a besoin. Les requêtes d'annuaire prennent un ensemble d'identifiants autorisés pour qu'un appelant puisse affiner la recherche à la population, une chose peut en fait être donnée - attribuer une piste à quelqu'un sans VEW-LEADS le parcelle là où ils ne peuvent pas l'ouvrir. L'ensemble est calculé en Java plutôt que rejoint ici parce qu'un droit est détenu soit par une ligne de droits, soit par une ligne de droits ou par un rôle de subvention, et le second n'a pas de rang à trouver. Il voyage avec un drapeau sans restriction et n'est jamais vide: IN () est une erreur de syntaxe sur les Postgres fil, donc le boîtier de l'ensemble de la direction passe un espace réservé au lieu de rien. Et updateLead lit maintenant un cessionnaire absent id et un cas vide comme différent les demandes, comme c'est déjà le cas pour le pays et la langue. Un dispositif transdermique porte uniquement les domaines qu'il entend changer, donc sans cette distinction il n'y avait pas façon de dire "personne ne possède cette avance" - la corde vide est tombée à travers la même la branche en tant que champ manquant et le désasséré n'a rien fait en silence. L'ouverture La ligne d'affectation est fermée plutôt que remplacée, puisqu'une attaque principale est toujours nomme un membre et il n'y a plus de nom.

  9. · kamo-internal

    Les éditeurs disent "Enforcé comme MANAGE-TIMECARDS" au lieu de "Pas encore appliqué"

    Une puce portait deux vérités différentes et était trompeuse dans des directions opposées. Ne rien vérifier le droit et l'accorder ne fait rien. Ressuscité signifie que la capacité est réelle et fermée, sous le nom d'un autre droit - on ne fait toujours rien, mais la suppression serait mauvaise et l'administrateur a besoin de savoir à la place quel droit d'accorder. Les quatre entrées sont celles de l'audit établi: GESTION DES CÉDULES sous MANAGE-TIMECARDS, parce que l'onglet Participation s'ouvrait sur Chaque onglet HR a par la suite reçu un droit propre; CREATE-EMPLOYEES et DELETE-EMPLOYÉS sous MANAGE-MEMBRES, parce qu'un employé est membre avec un le registre de l'emploi et il n'y a pas de critère d'évaluation CRUD employé. La liste est traitée à la main, contrairement à celle générée qu'elle annote, et délibérément: Aucun analyseur ne peut dire "superdit" à partir de "personne construit pour l'instant". L'adhésion n'est pas retirer un droit de l'UNENFORCED - DROIT - rien ne le transmet à un chèque dans un sens ou dans l'autre - donc le critère de parité avec l'audit engagé n'est pas affecté. Deux gardes maintiennent l'annotation de pourrir dans un commentaire tiède. Un droit qui est une véritable application ne peut jamais être qualifiée de substitution, ce qui en irait deux des puces contradictoires sur un interrupteur. Et le droit de couverture ne doit pas être lui-même décoratif: le message est "subvention X à la place", donc un X dead enverrait le l'administrateur un pas plus loin d'une autorisation de travail. Cela valait la peine de faire avant les prochains pays, les bonnes ressources humaines. Deux d'entre eux étaient un vérifier d'être supprimé au cours de l'audit précisément parce que l'éditeur a dit Ils étaient morts.

  10. · kamo-shared-library

    Porter le logo de la page d'accueil sur l'organisation

    La couleur pleine d'une org peut peindre sur le logo de la tête de mât page d'accueil kamo-internal, plus sa branche dans le chemin générique du patch de sorte que le Le PUT/org/-id- existe le maintient à côté de bgWatermark. A la consommation d'un jeton - PRIMARY-DARKER, pas 004ba0 - résolu par rapport à cet org les couleurs propres au moment de rendre, donc un orgement qui, plus tard, conserve une superposition Cela correspond toujours au lieu d'un hexagone gelé quand quelqu'un l'a cueilli. Plaine Chaîne plutôt qu'un enum, donc un jeton futur n'a pas besoin de contraintes balayer. Null résout de NON sur le client, c'est pourquoi chaque pays existant org commence sans superposition et n'a pas besoin de remblai. La colonne home-logo-overlay est déjà appliquée (KamoInitializer, OrgHomeLogoOverlayMigration) - ce champ mappe une colonne qui existe, non Un service SELECT dans une erreur de requête.

  11. · InitializerService

    Ajouter la colonne d'onylogo-overlay

    Supporte le réglage de la couche de recouvrement du logo de la page d'accueil: la couleur solide et une boîte d'orgg peindre sur le logo de la tête de mât sur la page d'accueil kémo-interne. Tit un jeton plutôt qu'un hexagone, donc la superposition se résout contre le La propre palette d'org au moment de rendre le temps et survit à un rebrand. Plaine VARCHAR plutôt qu'un enum, donc un jeton ultérieur n'a pas besoin de balayage de la contrainte de vérification. Nullable, pas de remblai, pas de DEFAULT: chaque client résout une valeur absente à AUCUNE, qui est exactement ce à quoi chaque org regardait avant la colonne Il a donc un remblayage écrirait des lignes sans changement de comportement. «Order(0) selon la convention de colonne - le moment où le partage-lib entité mappe cette colonne, chaque coureur qui charge une Organisation par l'intermédiaire de la JPA l'émet dans son SELECT, de sorte qu'une migration ordonnée tardive serait un coureur mourant en premier. L'essai est un dispositif de protection antigace, et non un essai unitaire: les services fonctionnent ddl-auto: aucun, donc un champ d'entité sans ALTER correspondant commence en bonne santé et meurt à temps d'interrogation - et pour l'organisation, cela signifie résolution d'orge, connexion et la marque sur l'ensemble de la plate-forme. Cela en fait un échec de construction à la place.

  12. · kamo-internal

    Laissez une org peindre le logo de la page d'accueil d'une couleur unie

    Ajout "Logo de page d'accueil superposition" à la marque - directement au-dessus Filet de référence: Pas de superposition, blanche, noire, et à chaque étape de l'organisation rampes primaires et secondaires. Découpez-le et le logo de la tête de mât en haut à gauche de la page d'accueil rend une silhouette solide de cette couleur. Le défaut est Pas de superposition, donc rien ne change pour un organisme qui n'ouvre jamais le champ. Ce qui est stocké est un TOKEN, pas un hexadécimal et PRIMARY-DARKER, jamais résolu contre la palette de l'organisation au moment du rendu. Une og qui rebrandit garde une superposition qui correspond toujours à ses couleurs, au lieu d'un hexagone congelé au moment où quelqu'un l'a choisi dans une liste déroulante. logoOverlay.ts possède ce vocabulaire et la résolution, de la même manière que le filigrane.t est propriétaire du filigrane. Trois détails dignes de connaissance: - Les teintes sombres existaient déjà sur le fil. Le backend a envoyé tout cinq pas de chaque rampe aussi longtemps que EmbColorPalette l'a fait, mais Organisation.fromJSON n'a jamais cardé que trois, donc coloreDark/colorDarker est tombé sur le sol ici. Ils sont transportés maintenant, ce qui donne le des jetons plus foncés une couleur à résoudre. - ThemeLogo le fait avec un masque CSS, pas avec un filtre. Un filtre ne peut que pousser les couleurs existantes et ne peut atteindre une cible arbitraire, donc l'alpha propre du logo devient un masque et la couleur est peinte derrière elle. Le 'img' reste monté et simplement invisible: c'est le seul source du naturelSize dont dépend le bloc de calibrage, et il maintient occuper sa boîte normale exacte afin que la couche masquée puisse la remplir. Appels à la liste qui ne passe pas de superpositionColor rende byté-identiquement à avant. - Un jeton de marque dont l'ombre n'a jamais fixé de résolution à l'exclusion de la superposition plutôt que de retomber dans une ombre voisine. En voyant le logo vous On avait déjà des battements de voir une couleur que personne n'avait choisi. Nécessite la colonne d'onylogo-overlay (KamoInitializer, appliquée) et a SecurityService reconstruit contre l'entité partage-lib; jusqu'à ce que ces terres le champ lit et sauvegarde comme No Overlay plutôt que d'erreur.

  13. · InitializerService

    Purger les rangées VIEW-EMAIL-LOGS, et arrêter un test pourrir lorsque les ordinaux se déplacent

    VIEW-EMAIL-LOGS (64) a été supprimé de RoleRightType aujourd'hui pour nommer une fonctionnalité qui n'a jamais été construite. Cela supprime ce qu'il a laissé derrière lui mesuré à 42 lignes de rôle, 33 des lignes appliquées et des 8 lignes de gabarit - sur les deux codages, depuis le tableau de gabarits stocke le NOM de l'enum pendant que le reste stocke l'inte entier. - nécessaire pour fixer le même changement, et La raison vaut la peine d'être maintenue. Il a affirmé que son exemple avait iid - ordin, gardé par "le test n'a de sens que pendant" qui est valable. Suppression de l'id 64 décalée tous les jours plus tard ordinal, id est devenu égal à son ordinal, et le Un garde tiré. Si le garde n'avait pas été là, l'épreuve aurait continué à passer pendant ne rien prouver, ce qui est le pire résultat. Il choisit maintenant son témoin au moment de l'exécution - tout droit qui a un ancêtre et dont le document est le témoin de l'exécution de l'action de l'action de l'action de l'action de l'action de l'action diffère de son ordinal - de sorte qu'aucune délétion future ne peut le creuser tranquillement. Suppression Les droits sont maintenant suffisamment courants pour qu'un exemple de codage en dur soit un passif.

  14. · kamo-shared-library

    Supprimer VEW-EMAIL-LOGS, qui nomme une fonctionnalité que personne n'a construite

    Aucun journal de courrier électronique n'existe nulle part dans la plate-forme: pas de tableau dans aucun schéma, pas de point d'extrémité parmi les 21 contrôleurs d'EmailService, pas d'UI, et aucune référence dans le frontend - non même le checkRight that ManAGE-EMAIL-ACCOUNTS a au moins eue. La plate-forme fait les logs de modèles où il en a, avec téléphone-call-log, img-log-télécharges, phi-access-log et contact-sync-logs tous présents; l'e-mail n'a pas d'équivalent. Il s'agit de l'affaire CREATE-CHANNELS - le nom n'existe pas - plutôt que le MANAGE-MEETINGS cas où le nom est modélisé et que seul le verbe n'est pas exposé. La taxonomie 194/131/33/30 devient 193/130/33/30. Seul le nombre d'enfants se déplace: ACCESS-MAIL garde ses quatre autres enfants, de sorte qu'il reste une racine avec les enfants. Le cas 64 est brûlé. Les lignes stockées sont supprimées par EmailLogsRightPurgeMigration.

  15. · kamo-internal

    Placer le compositeur de notes au sommet de All Communications

    Le compositeur n'existait que sur le sous-tablet Notes, donc écrire une note sur Ce que vous lisait, c'est de laisser l'onglet sur lequel vous le lisiez. Tous porte maintenant le même PostComposer - le même exemple, même oug-visible note - et la chronologie en dessous, il résilie sa dernière page en place lorsqu'une page atterrit, en gardant les rangées sur l'écran au lieu de clignoter en une fileuse.

  16. · kamo-internal

    Choisissez les nouvelles applications de l'orge tout en la créant

    Ajout d'une épreuve et Caractéristiques entre le type et les bases. Il répertorie les applis Le modèle de sécurité du type de branche choisi offre en fait -- les modèles forcés comme "Toujours inclus" sans changement pour discuter avec, les optionnelles comme commute prédéfinis à la valeur par défaut du modèle -- et envoie les réponses avec la création. Type est ce qui décide quelles applications existent parmi lesquelles les applications ont choisi, donc l'étape se trouve juste après. Demander "ce que cette entreprise fera réellement" alors que c'est encore l'objet ne coûte rien au client; lui demander après huit écrans de le marquage se lirait comme une deuxième configuration non liée. Écrit pour quelqu'un qui n'a jamais utilisé la plate-forme: l'en-tête explique Qu'est-ce qu'une application est et que l'éteindre ne se cache que, chaque ligne transporte la description en langage clair de l'application, "Normalement on"/"Normalement off" dit d'où vient la présélection, et il y a un chemin de retour à la Ensemble recommandé. Rien ici n'est exigé et Review liste les applis l'orge s'ouvrira nommément -- un compte est un nombre que personne ne peut vérifier, et c'est le dernier écran avant un création irréversible. Les sélections sont mises à la clé sous la forme d'un nom de type ServiceType et une clé en l'absence signifie "qu'il en soit le modèle recommande", de part et d'autre du fil. Réélection du SAME le type de branche conserve les réponses plutôt que de reconstruire les défauts: BranchTypeStep réémet sa sélection chaque fois que cette étape est revue, donc l'insensé Une version annulerait silencieusement tout le pas en un clic sur l'étape avant c'est ça. La cueillette d'un autre type reconstruit, parce que la liste des applications est remplacée grossistes. Enfant également la description de l'application sur Paramètres ------------------------------------ lignes. Les descriptions ces lignes montrent maintenant à quelques phrases donc un Un lecteur non technique peut agir sur eux, et peu serré, ils tournent à chaque effondre ligne dans un bloc à trois lignes.

  17. · SecurityService

    Laissez le créateur choisir les applications de la nouvelle org

    L'assistant de création de réseau gagne une étape Apps and Features, et c'est le La moitié qui le rend réel. /branches/créatables décrit maintenant la sécurité de chaque type de branche Le modèle propose -- les propositions forcées comme « requis », OPTIONNELS avec le modèle propre par défaut -- donc l'assistant peut rendre l'étape avant l'administration. C'est doit venir d'ici: les points d'extrémité qui décrivent les applications sont définis à un Organe existant et sur le thème CONFIGURE-SYSTEME, une personne qui crée une souvent, la branche ne tient pas dans l'orgge parent. Les applications ne sont pas disponibles omis entièrement plutôt que représentés grisés. La création de gains de charge utile "appSelections") et le nouvelle oug est fournie à partir de celle-ci dans la transaction de création, à côté de la le trimille: le même genre de chose, et soit tout est en train de semer org n'est pas créé. La partie qui vaut la peine d'être lue deux fois est qu'une application en cours de commutation est toujours un OrgFeature row. Jusqu'à présent, un nouvel org n'avait aucune ligne de caractéristiques et ils étaient remplis paresseusement la première fois que quelqu'un a ouvert Paramètres - Apps -- a loop qui permet à tout le modèle ne bloque pas purement et simplement. Donc OPTIONNEL-DEFAULT-DISABLED, un administrateur disant explicitement "offre cela, mais commencez Il est en silence", a été silencieusement promu à l'appel pour chaque organisateur d'enfants jamais créé. Écrire une rangée inactive est ce qui fait le bâton de choix, parce que cette boucle ne crée que des lignes pour les types pour lesquels il n'en trouve pas. C'est aussi la raison pour laquelle cela ne peut pas être une étape après l'effort: le repli ne laisserait pas les applications désactivées, Cela les laisserait à l'opposé de ce que le créateur a demandé. Délimitément étroit en trois endroits. Une gorgée sans modèle appliqué est laissée sur le chemin paresseux -- calculAvailabilitiesMap answers OPTIONAL-DEFAULT-DISABLED pour tout là, et matérialiser cela donnerait à quelqu'un un espace de travail où rien ne s'en passe et rien ne dit pourquoi. Une sélection nommant une application le modèle n'offre pas, n'est pas refusé: le magicien conserve son projet en stockage de session, donc un administrateur rétrécissant le modèle à mi-session ne doit pas coûter un coût leur création. Et une application nulleSélection n'est pas "pas d'applications" -- c'est un un client plus âgé, et chaque application revient à la valeur par défaut du modèle.

  18. · kamo-shared-library

    Réécrire la copie du catalogue de l'application pour les personnes qui la lisent

    Le nom d'affichage et la description sur ServiceType sont la seule description de une application que la plupart des gens ont jamais vues: un administrateur d'un administrateur sur Paramètres - Apps et fonctionnalités, a administrateur parent-org décidant ce que son enfant peut utiliser sur les types de succursales l'écran, et maintenant celui qui crée une organisation dans l'assistant de réseau. quelqu'un qui n'a généralement jamais utilisé la plate-forme auparavant. Deux choses n'étaient pas correctes avec cette copie, et les deux coûtent des clients. Il a décrit la mise en œuvre. "Adresseur alimenté par l'AI avec chat, RAG intégration", "Voix sur IP PBX Phone System", "Vidéo auto-hébergée conférence», "Dissoriculation personnelle avec édition de documents", "Falls retour à l'organisation mère SMTP lorsqu'il est désactivé" -- précis à un ingénieur, et pas d'aide du tout à un propriétaire d'entreprise décider s'il veut la chose. Pire encore, il a présenté la propre mise en œuvre de Kamo comme l'ensemble de l'application. Courrier électronique, Les téléphones et les réunions sont chacun une abstraction de fournisseur -- EmailProviderType, VoipProviderType et MeetingProviderType chaque navire, un fournisseur de Kamo à côté de Google Workspace / Microsoft 365 / zoho / Échange / IMAP, RingCentral et Équipes Téléphone, zoom et équipes. "E-Mail - E-Mail Hosting" dit "cochez ceci si vous voulez que Kamo héberge votre courrier", donc chaque g ou déjà sur Workspace ou 365 avaient une raison de décodeurr une application construite pour eux exactement. Remplit également deux véritables lacunes que la copie n'a jamais mentionnée: Le personnel doit lire et signer les documents d'information, et la commercialisation envoie en gros et des campagnes d'e-mails au goutte-à-goutte. ServiceTypeCustomerCopyTest broie les deux erreurs afin qu'ils ne puissent pas revenir. Les noms constants ne sont pas touchés. persiste le nom en tant que chaîne, donc un renom réassignerait silencieusement tous les subventions du modèle de sécurité.

  19. · kamo-internal

    Raccourcir les étiquettes de la navigation sur les opportunités et les crédits

  20. · SecurityService

    Protéger les comptes de dieu sur la liste des administrateurs de la plateforme

    Les droits de la plate-forme d'un compte dieu ne peuvent être modifiés que par un autre dieu, et un dieu le compte ne peut jamais être retiré de la liste - par qui que ce soit, y compris un autre dieu. Dieu est l'identité de sabre de verre de la plate-forme: ses détenteurs sont ce qui reste quand Tout le reste a été mal configuré. Une détenante d'un administrateur MANAGE-PLATFORM-ADMINS mais pas Dieu pourrait autrement accéder à un compte dieu et enlever ses droits, qui est précisément l'édition qui désarmerait le peuple capable de le défaire. La révocation est absolue parce que la ligne qui s'en va et se déshabille Tout d'abord immédiatement; le changement des droits reste possible, mais seulement entre les pairs. Le test de paire est User.isGod sur l'appelant, pas une fenêtre ouverte de mode dieu: être Dieu est ce qui fait de vous la cible est égale ici, tandis que la fenêtre est à propos utiliser délibérément ce pouvoir ailleurs. estGod(Membre) échoue dans la direction de protection - un membre dont l'utilisateur l'enregistrement ne peut pas être lu est traité comme dieu, donc une ligne illisible est laissée seule plutôt que d'éditer sur la force d'une recherche qui n'a pas fonctionné. L'appelant le drapeau propre échoue dans l'autre sens, car il ne permet que des contrôles. S'applique aux trois chemins d'écriture, y compris le point d'extrémité d'ajout, qui remplace les droits sur un re-add et serait autrement un moyen de contourner la règle.

  21. · kamo-internal

    Les comptes de Dieu sont protégés sur la liste des administrateurs de la plate-forme

    Deux règles que le serveur applique et cela ne fait que refléter: la plate-forme d'un compte dieu les droits peuvent être changés par un autre dieu et personne d'autre, et un compte dieu peut Ne jamais être retiré de la liste - pas par un autre dieu, pas par lui-même. Dieu est l'identité de brise-verre, donc ses détenteurs sont le dernier chemin de retour quand Tout le reste a été mal configuré. Un administrateur détenant MANAGE-PLATFORM-ADMINS mais pas Dieu pourrait autrement accéder à un compte dieu et déshabillez-le, qui est l'évolution qui désarment les gens qui le détruiraient. Les deux contrôles sont désactivés avec la raison attachée plutôt que cachée - a contrôle qui disparaît se lit comme une fonction manquante, une caractéristique qui s'explique lui-même lit en règle générale. La puce "-N more" porte la même serrure, puisqu'elle s'ouvre la même chose. dialog.

  22. · SecurityService

    Cuire l'ordre de fond de l'ordonnance de l'ordre dans config.json

    kmo-login, kamo-register, le site de marketing et KamoMeet tous lire le Configg.json de thème pour backgroundImageCount; backgroundOrder now roule à côté, de sorte que le choix séquentiel/chaufflage de l'orge à l'échelle de l'ordre atteint tous quatre sur la disposition suivante du thème. Seules les deux valeurs connues sont émises - n'importe quoi d'autre est omis de sorte que le client revient à la lecture séquentielle plutôt que de lire une valeur qu'il n'est pas reconnaître. L'orge PUT rejette catégoriquement une valeur non reconnue.

  23. · kamo-shared-library

    Colonne d'ordre du contexte pour l'ordre public des diaporamas

    VARCHAR incessable; la résolution nulle à séquentieliser sur chaque client, qui est ce que chaque groupe avait avant la colonne existait. Chaîne simple plutôt qu'une enum donc un mode ultérieur n'a pas besoin d'un balayage de la contrainte de CHECK. La mise en miroir d'ALTER a déjà été traversée par KamoInitializer et le La colonne est confirmée dans Yugabyte, de sorte que ce n'est pas armé.

  24. · InitializerService

    Purger les rangées stockées pour les deux droits de notes retirées

    Les SHARE-NOTES (72) et MANAGE-NOTES-NOTES (73) ont été supprimés de RoleRightType aujourd'hui pour n'avoir aucune caractéristique à porte. Cela élimine ce qu'ils ont laissé derrière eux, compté et connectés dans la même course plutôt qu'en restant pour RoleRightsSyncService à balayer silencieusement sur un boot de SecurityService plus tard. Mesurée avant de l'écrire: 84 lignes à travers les tables de rôle, 16 lignes de modèles, 94 applique des lignes, et aucune au niveau départemental, de nom ou de membre. Les deux codages à nouveau. Les tables de droits et l'instantané appliqué stockent l'entier id; z stocke le nom de l'enum. Un DELETE à clé i irait à néant rien sur la table des modèles et le succès du rapport, laisser 16 rangées pour des droits qui ne décident plus d'être lues dans la règle de la force carte sur chaque recalcul - ce qui n'est pas hypothétique, c'est ce qui est arrivé à 24 sur les 150 lignes, la purge du canal de discussion était censée supprimer. Pas d'ensemencement ni de porte de vérification, contrairement à la semence de la rencontre: la suppression d'un droit ne peut supprimer l'accès de n'importe qui, parce que rien ne les a jamais lus. C'est ce qui les a fait séparable en premier lieu.

  25. · kamo-shared-library

    Supprimer SHARE-NOTES et MANAGE-NOTES-SETTINGS, qui ne nomment rien

    Les notes sont réelles, et à partir de aujourd'hui entièrement fermées - VIEW, CREATE, EDIT et DELETE sont appliqué sur chaque critère d'évaluation de KBService's NotesController. Ces deux-là n'avaient rien à nommer. Il n'y a pas de partage modélisé n'importe où dans la plate-forme: pas de colonne sur Note, pas de champ sur NotDTO, pas de tableau de notes et de notes de notes, les tableaux de notes, note-versions et note-embedding-records - pas de point d'extrémité parmi les dix, et pas d'UI. Les trois hits "share" dans FloatingNote.tsx sont en prose et ceux du service sont le nom du colis commun.kamo.z. L'architecture indique de la même manière: a La clé de contenu de note est dérivée de son propriétaire, donc le partage de celui-ci est un re-cléing un problème plutôt qu'un critère d'évaluation manquant. La surface des réglages n'a pas non plus de surface de réglages, pas de tabulation sous les paramètres/caractéristiques, pas d'itinéraire sous app/réglages, pas de table de configuration, pas d'entité de configuration, aucune référence nulle part dans le frontend. Il s'agit de l'affaire CREATE-CHANNELS, où le nom n'existe pas, et délibérément pas le cas de la mémoire de la semaine dernière, où le nom est modélisé MeetingStatus a déjà ANNULÉ et mis à l'encontre, et WebinarServices lecteur à la fois Seul le verbe n'est pas exposé. Le test que la taxonomie apporte le raisonnement. La taxonomie 196/132/33/31 devient de l'ordre des jeunes de 19/131/33/30, 63 racines. Deux nombres bougent plutôt Plus de trois: SHARE-NOTES était l'un des quatre enfants de VEW-NOTES, donc VEW-NOTES séjourne un root-with-children au lieu de s'effondrer comme l'a fait ACCESS-CHAT. Les Ids 72-73 sont brûlés. RoleRightTypeIdConverter persiste l'id, donc un droit futur réutiliser l'un hériterait de toutes les lignes dans les orges qui les avaient mise en marche. Les rangées stockées sont supprimées par NotesRightsPurgeMigration.

  26. · InitializerService

    Ajouter orgs.background-order

    VARCHAR(20) n'est nul, pas de remblai et aucun DEFAULT, chaque client ne résout une valeur absente pour l'absence d'après l'absence d'une valeur, c'est-à-dire le comportement de chaque org avant l'existence de la colonne. Ordre(0) selon la convention de colonne: une fois que l'entité partage-lib carte tout coureur ultérieur chargeant une Organisation l'émet dans son SELECT.

  27. · kamo-marketing

    Lire le nombre réel d'arrière-plan et l'ordre de jeu de l'ordre d'origine

    Le héros a sondé pour bg/1.webp puis codé trois images en dur, donc un org avec plus jamais de les montrers et la rotation modulo'd de LOCAL-BGS.longueur indépendamment du nombre d'images en réalité. Il lit maintenant config.json comme toute autre surface de Kamo, et honore le décor de l'orge.

  28. · kamo-register

    Honorez l'ordre du diaporama séquentiel/suffle de l'ordre de l'ordre des diaporamas

    Même contrat config.json que kamo-login: backgroundOrder drives all trois antécédents d'inscription, en l'absence de séjours clés séquentiels.

  29. · kamo-login

    Honorez l'ordre du diaporama séquentiel/suffle de l'ordre de l'ordre des diaporamas

    config.json porte maintenant backgroundOrder à côté de backgroundImageCount. Shuffle re-randomise à chaque avance et ne répète jamais le cadre sur écran; une clé absente reste séquentielle, ce qui est ce que chaque org avait. Les deux écrans Swiper gardent leur fondu en-côte arrière mais conduisent leur propre minuterie Swiper autoplay ne progresse jamais qu'une diapositive.

  30. · SecurityService

    Tous les réseaux suivent le droit de l'utilisateur du système

    Voir chaque organisation et être en mesure d'entrer dans une seule est la même décision la liste existe pour qu'un opérateur puisse trouver l'organisation qu'il est sur le point de Le soutien, donc/all-networks demande maintenant SYSTEM-USER au lieu de la propriété du Organisme de haut niveau. Un administrateur de plate-forme a accordé l'accès de l'utilisateur du système pourrait entrer précédemment dans une organisation tout en ne pouvant être en mesure de voir la liste d'entre elles. solutionFromSession fournit le reste de la règle et remplace laminée à la main version de ce gestionnaire transporté: l'appelant doit être dans l'organisation de haut niveau, les sessions de l'utilisateur du système sont refusées, et un propriétaire ou un mode de dieu ouvert Windows encore qualifiés sans subvention explicite.

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