Changelog
Ce qui est nouveau.
Chaque amélioration apportée à la plateforme, à mesure qu'elle est livrée.
· kamo-shared-library
Ajouter VENDOR-CALLBACK-RESOLVED clé de type événement (entrée 0,6a)
· kamo-shared-library
Substrat de registre de l'identificateur de prêt - 42 ids dactylographiés (clé de la pierre angulaire 0,5, tranche 1)
Nouveau pkg com.kamo.z.shared.mlos.identity (la clé de routage inbound-webbookchet): LoanIdentifierType (42 ids de première classe, chacun porteur Cardinality et propriété; - STRING COMPRENSION; singleActiveTypes() dérivé des métadonnées)Couplé à partir de LoanFile verrouillé; écrit une fois-once : les lancers de garde de la valeur/type/de type/conservateur, ne font que flipr le nom autorisé; «PrePersist normalise l'émetteur/sous-type - applique AUTRES-customSubtype) - LoanIdentifierRepository (résolveurs; valeur-only-on-ai-aide-s». Vérifié localement: installation mvn BUILD SUCCESS, 49 tests MLOS (y compris test de surveillance dérive mono-actif affirmant que l'ensemble enum correspond à l'indice partiel DDL de KamoInitializer). KamoInitializer DDL: balayage 3 index partiels-uniques et AUTRES CHECK. RESOLVER - entrée webhook - le premier nouveau microservice MLOSIdentifierService (défense).
· kamo-shared-library
StewardFeedback volant d'inertie et capturer chaque verdict d'intendant (clérir 0,11)
Nouveaux pkg et pliant uniquement StewardFeedback ground-lance row (FK ai-car.vi; verdict CONFIRM/OVERRIDE/MODIFY; Reg-B-aligned reason; corrigéValue jsonb; isTestLoan estampillé à l'heure d'écriture par doc12 4,4; 'PrePreUpdate WORM guard')en un tx (arrêt de la colonne vertébrale d'un AiDecision et enqueues mlos.steward.feedback.recorded through event-back-over outbox - tamponne la partition d'essai). Enregistreur gated mlos.governance.enabled (par défaut - zéro rayon de projection). KamoInitializer DDL: scan 'steward' Feedback indexes 'FK' en a-j'.
· kamo-shared-library
LED AiDecision Immutable WORM - DécisionGate à deux murs (clépier 0,3, tranche 1)
Nouveau pkg com.kamo.z.shared.mlos.decision (greenfield decision spine, never edit donotmodify): AiDecision (WORM via "PreUpdate Guard; loanFileId is a Long FK to LoanFile.uid per doc01/gotchas, NOT UUID); supersession via le remplacerDecisionId sur la ligne NON NON(débiteurs à la tête des luniers). DecisionGate - bibliothèque à deux murs en cours de traitement (bâtiment juridique ABSOLUTE/non-taccordable; confiance muraccordable; sol de sécurité de la plate-forme nonaccordable) - config-uniquement - Composante, pas de repop dep dep, coffre-fort à l'échelle du parc. DÉFÉRÉ aux tranches de dépendance: Entrée de décision (FKs the Phase-2 catalog), StewardTask/OrchestrationState, registre juridique, HMDA-firewall CHECK, ModelVersion FK. KamoInitializer DDL a ajouté (indice de décision et déclenchement DB WORM marqué nécessitant CRDB v24.x).
· kamo-shared-library
Porte d'isolement des locataires pour l'épine dorsale de l'événement (trancher 3)
Feuille de route 0.10: (le souam d'abonnement par locataire) à des fins d'abonnement par un clientitaire par retour à la route - ToTenant(sujet,orgId) qui reflète le filtrage NATS; forEvent rejette désormais l'orgiId non positif (pas d'événement sans locataire). MlosTenantIsolationTest est la porte exécutable du pourvoyeur-comparnant (y compris la limite de jeton: l'org 12 ne correspond jamais à l'org 123). MlosDeadLetterRepository gagne un détecteur d'intendance org-contré (porte-porte-repo-couche) aux côtés du courtier par l'opérateur. Le champ d'application par personne sur le houblon X-Internal-Auth est large et reporté à l'aube clé-clé; un test d'isolement des courtiers vivants suit avec le premier consommateur concret.
· kamo-shared-library
idémpotency côté consommateur, DLQ et réintégrateur (Slice 2)
Ajoute le noyau de fiabilité dans lequel n'importe quel consommateur MLOS se branche: ProcessedEvent dedup Livre (unique consumer-name-event-id) MlosDeadLetter DLQ et MlosDeadLetterStatus; IdempotentEventProcessor (INSERT-or-skip dedup in the handler's tx soys a désamarre;poisonable); DeadLetterReplayer (re-enquelore une lettre DEAD à travers la boîte de sécurité sous la forme d'un événement NEWId with causationLid-lata-ed lineage - no msg-icunique/ded-window collision, marque REPLAYED). L'enveloppe MlosEventEnvelope a acquis un gain de dérisonisation aller-retour. Les nouveaux composants partagent l'opt-in mlos.outbox.enabled; les reprises sont dans l'emballage déjà scanné. Live AbstractMlosDurableConsumer (abonnement NATS) a reporté à son premier consommateur concret.
· kamolos
Adopter la boîte à sous-box transactionnelle MLOS (chemin de production)
Permet l'ossature de l'événement de la phase 0 dans KamoLOS: ajoute com.kamo.z.shared.mlos.event à la balche des dépôts de la phase Jpa, à la balayage, à la balayage, à la balayage, à un test de câblage de chemin de production (mlos.outbox.enabled.true, MLOS-EVENTS stream et dedup window, balayeuse). Le schéma (mlos-outbox-event-indexes) est appliqué séparément par KamoInitializer géré par l'utilisateur.
· kamo-shared-library
épine dorsale des événements de la boîte à outils transactionnelle (phase B)
Monnaie de production de qualité en argent/classe de conformité dans le nouveau pkg (ne jamais éditer donotmodifier): MlosEventEnveloppe DTO et MlosOutboxEvent outbox entity/repo et OutboxWriter (single-tx enqueue) et OutboxRelay (AFTER-COMMIT hot-path et sweepercheduled, publish with Nats-M)Le flux S avec la fenêtre de dedup NatsConfig manque). Reuses les haricots NATS Connection/JetStream. Opt-in via mlos.outbox.enabled (défaut) de sorte que les services non optimisants ne sont pas affectés. Exactement sur une valeur unique et boîte à sous-cas et à la caisse transactionnelle JetStream Nats-Msg-Id dedup. Consommateur dedup/DLQ et CI isolement locataire sont Slice 2/3.
· kamo-internal
Montrer des couches de données par étape incl. Masque océanique EDT4 et marquages TRF2
Les cartes de scène du tableau de bord de Worldgen listent maintenant les couches de données chaque crête de scène de carrelage. accentuant les nouveaux ajouts: le masque de l'océan EDT4 (connectivité des mers) sous hydroélectricité, et marquage des voies TRF2 - classement du terrain d'exécution sous transport. Format/données pures les étiquettes (STAGE-LAYERS in types.ts) - pas de nouvelles chaînes i18n. Déjà des taux de stèle/régénèse surface automatiquement une fois que la diode est la bosse de provenance EDT3-EDT4 / TRF1-TRF2.
· kamo-internal
Troindre de la tuile de surface - Critique "Régénérer N" sur la page
L'instantané de l'agent transporte désormais la rresse par recette (à la date/à la date/rétive/ manquante); l'aplombe à travers l'API et l'ESS jusqu'à la page: - L'onglet Services indique une ligne de fraîcheur par service de tuile et le bouton Démarrer devient "Regenerate N" (réfaction - manquante) quand il y a un travail ciblé, ou "Jusqu'à ce jour". - L'indice de fin de série montre combien de tuiles doivent être mises à jour. Le démarrage est déjà piloté par la provenance sur l'hôte, donc le bouton déclenche un ciblage rema disposition exacte des cellules périses/manquantes.
· kamo-internal
Page d'administration de l'univers de la génération mondiale
Ajout/réglages/plateforme/univers dans le cadre de l'administration de la plate-forme - sa propre plate-forme Carte - trois sous-ongles (vue, services, actions) - pour commencer et surveiller KamoUniverse World-data pipeline en direct. Backend (API du rapport, site web-admin, par l'intermédiaire de la session, même règle que la garde du client): - app/lib/worldgenNats.ts: une connexion NATS à longue durée de vie et un abonné à un statut qui met en cache le dernier statut par étape et instantané (en mémoire et Redis) et ré-églacule sur un bus en cours de traitement pour l'ESS. Publies des commandes de démarrage. - app/api/univers/services état actuel de chaque étape (statut et tuile) Nombres et verrouillageHoud). Une commande de début à l'agent k3m1. - app/api/univers/stream SSE flux d'événements en direct/snapshot. Frontend (MUI et next-intl, met en miroir la page de configuration): - useWorldgen: un flux SSE partagé (auto-reconnexion) et start() pour tous les onglets. - Vue d'ensemble : agent/batch/arrimage/carreaux de tuiles et rails de pipelines vivants. - Services : une carte riche par script et rôle et ce qu'elle accomplit, état en direct badge, avec bar de progression/total, dernier événement et un bouton Démarrer (désactiver pendant tout lot contient la serrure globale). - Actions : exécuter l'ensemble du pipeline ou une étape individuelle (avec confirmation), plus un rafraîchissement instantané. Câblage: NATS-URL ajouté à la configmap; suppression de la dépendance client "Nons". Le k3m1 agent et script telemétrie en direct dans les données de l'univers-terre; chaînes dans la traduction dictionnaire. tsc clean sur tous les nouveaux fichiers.
· kamo-shared-library
Ajouter cas-insensible findByEmailEmailIgnoreCase
Les courriels sont stockés dans des cas incohérents (par ex. Sage-KamoCRM.com) et CockroachDB string equality est sensible à la casse, donc findByEmail misss sur le cas seul. Besoin de recherche d'e-mails de récupération de mot de passe.
· EmailService
Comptes de boîtes aux lettres auto-carrière de l'application DB (récupération de la dérive)
L'application DB est la source de la vérité pour laquelle les boîtes aux lettres devraient exister; KamoMail les comptes en direct dans les utilisateurs virtuels du serveur de courrier. Si le courrier DB perd des données, Les boîtes aux lettres sont manquantes chez le fournisseur tant que les enregistrements d'applications restent. - MailboxSelfHealService: au démarrage et quotidien, réapprovisionnement de toute application KAMO-MAIL boîte aux lettres manquantes chez les utilisateurs virtuels (mot de passe à la gestion d'applications fraîches). - synchroniser les boîtes de courrier (les paramètres "Sync" action) pousse désormais également l'application---fournisseur pour toute boîte aux lettres manquante, et pas seulement le fournisseur d'importation.
· kamo-internal
Composer/envoyer au nom de la boîte aux lettres des membres commutés
- Fabricant de boîte aux lettres en filindre, à partir du commutateur via la boîte à sous-embarcation le contexte de composition (événement et URL param). Nouveau message/réponse/comparature ouverte pour la boîte aux lettres des membres sélectionnée: À partir des listes déroulantes que les boîtes aux lettres des membres - pseudonymes, signature personnalisée à eux, et envoyer/buvier authentifier comme boîte aux lettres (mailboxId). - S'auto- composer inchangé lorsqu'aucune boîte aux lettres membre n'est active.
· kamo-internal
Transporter et en session par ongletsStorage au lieu d'un cookie partagé
L'identifiant de session vivait dans un cookie de navigateur partagé à travers tous les onglets d'un l'origine, donc un deuxième onglet (impersonisation) ne pouvait pas tenir sa propre session. Passer le transporteur à la sessionEnregistrement (par tab): - sessionClient: les assistants de jetons - un emballage mondial qui relie le id en tant que jeton X-z-toyen sur les appels de même origine/api, plus une seule fois migration de stockage. Installé via SessionBootstrap en configuration. - En-tête d'abord (cookie repli) utilisé par g) générons, session/info, session/extension, déconnexion, rencontre/courrier d'information. - generateOTK et getKsemIdFromRequest préfèrent X-z-Token plutôt que le cookie. - /api/validate ne fixe plus un cookie; retourne l'identifiant et le /validate page la stocke dans la session de cet onglet. - utiliserUserInfo - tous les crochets WebSocket lisent l'id de sessionStorage. - la déconnexion capte le jeton avant d'évacuer le stockage afin que la session Redis est toujours invalidée. L'usurpation d'images maintenant s'ouvre tout simplement /valider?otk... dans un nouvel onglet (même voie en tant que login: Redis session créé côté serveur, OTK remis à /validate); Un nouvel onglet obtient sa propre session et l'onglet admin est intact. Élimine le keepPrev/ImpersonationBanner retour-to-admin machine. Les gogots restent séparés par domaine et inchangé.
· kamo-internal
Jeton d'identification sur l'en-tête des paramètres des membres
Ajout une action "Impersonr" de haut en-droit sur /settings/member/[id, visible uniquement lorsque la session signée porte le mode dieu (getIsGod) et la cible n'est pas auto/nouveau. Appelle la nouvelle /api/sécurité/impersonr, puis échange le - cookie via le chemin OTK (/validate?otk-...-keepPrev-1) dans un nouvel onglet. keepPrev conserve la propre session de l'administrateur dans Redis; un ImpersonnementLa bannière met l'admin et propose un clic "Retour" à mon compte (les cookies de l'ensemble des origines ne peuvent pas tenir deux sessions en direct à la fois). SettingsView gagne un emplacement optionnel d'en-têteAction.
· SecurityService
Critère d'usurpation d'identité de membre divin
POST /api/sécurité/impersonner la nents d'identité un OTK frais pour un caractère arbitraire membre de l'ordonnance actuelle de l'appelant, reportée sur la session de l'appelant mode dieu (GD). Enregistre le membre de l'admin dieu en tant que SUDO-MEMBER-ID pour audit. Même construction de session en forme de connexion que EnterAsController, mais même en forme de session et d'agariré plutôt que de l'orge.
· SecurityService
Retour orgName et langue dans /user-info
Résoudre le nom d'affichage de l'orge et la langue choisie par le membre (ISO-639-1) code) à partir du DB de sorte que le kamo-universe peut montrer l'org et le drapeau de langue de chaque joueur sur leur plaque nominative. Résolue en direct (et non à la session) et les sessions existantes les ramasser immédiatement.
· kamo-internal
Carte de lancement de KamoUniverse - icône nav (Accès-KAMOWORLD, OTK redirection vers jeu.)
· kamo-shared-library
Ajouter ACCESS-KAMOWORLD droite (145, JEU) pour l'accès KamoUniverse
· KlusterServices
Registre d'images K1m1 remplaçant le registre d'images retirés k0m1:5000 (mêmes justificatifs d'identité)
· KlusterServices
Kamo-universe namespace-quota-valkey, sauvegardes CockroachDB, pile d'observabilité
- univers/: espace de noms et ResourceQuota, valkey-universe (AOF, hostPath k1m1), soir CockroachDB d'appui CronJob, script bootstrap d'opérateur - surveillance/: valeurs de barre de base script d'installation, gradana. route, tableau de bord de l'univers et règles d'alerte - CI: appliquer l'univers namespace-valkey dans la phase k1m1 (Le paquet NATS a été supprimé: 43030d6 déjà re-homed k3m1 avec isolement du compte)
· KlusterServices
Ajouter k3m1 noeud et migration de l'appairage de cluster vers les IP LAN
- état d'état: annoncer/rejoindre plus de 192.168.4.x (k1m1-22, k3m1-.36); WireGuard est tombé (k3m1 wg0 10.8.0.1 est entré en collision avec l'IP de la publicité k0m1). - init-job et CI kubeconfig terminaux sont passés aux IP LAN. - IC: ajouter K3M1 CockroachDB section de déploiement (aiguilleté K3M1-KUBECONFIG-B64 secret).
· kamo-login
Inscrivez-vous pour la caisse après la connexion
Après avoir réussi à acquérir (manuel ou auto-connex), consommer le domaine d'apex. okie sp-checkout-plan laissé par kamo-register et rediriger l'acheteur vers le page de marque /s' s'abonner à la page (Stripe checkout) au lieu de l'application par défaut destination. Un-coup: le cookie est clair en lecture.
· kamo-register
Reporter le plan payé de l'inscription à la caisse
Lorsqu'un membre s'inscrit à partir d'un CTA à prix payant, larguer un biscuit apex-domaine sp-checkout-plan à la fin. kamo-login consume après que l'utilisateur s'authentifie et l'achemine vers /subscribe - la survie du registre vérifie le saut de connexion.
· kamo-shared-library
Modèles de signataires canoniques de signature électronique (vérification et invitation)
Ajouter deux modèles d'e-mail canoniques à l'échelle de la plate-forme ensemencés par voie par org: - esign.signer-verification (dépassement du Bureau du Procureur: . - esign.signer-invite (invitation à la signature: 'nom', 'sender', 'message', 'sender', 'sender', 'sender', 'sender', 'sender', 'sender', 'sender', Les connecter à la liste des clés de CanonicalTemplateLoader et ressources EmailService.seedForOrg les prend au premier envoi. Permet le Bureau du Procureur/l'invitation en direct livraison pour le flux de l'essign (le meilleur effort n'opait pas sans les modèles).
· BillingService
Compteur d'utilisation de l'essign électronique et caisse en libre-service pour les consommateurs
4 dosages: - EsignMeterSubmissionService (Télémé quotidiennement): agrégats d'origin API EsignUsageRecords par org-période; premier 40/période inclus, le reste soumis comme rayuresEvents. Idempotent via reportedToStripe et l'UID d'utilisation-rémunérateur comme l'identifiant de MeterEvent (Stripe-side dedupe). Résout le nom de l'événement mètre à partir du prix réel de Stripe de l'addon, donc il correspond au mètre à quel niveau le prix est lié (fixe l'inadéquation de nommage). Poste de départ du consommateur: - ConsumerCheckoutService: Session de départ (mode-souscription) contre la prix du plan de la racine du produit (ligne de dépassement de la charge nominale pour les entreprises); Souscription des comptes (source PAID) et abonnement l'achèvement et invalide les droits. - ConsumerSessionResolver: authentifie l'acheteur par son propre cookie via Redis (jamais un en-tête d'ordre de l'ensemble du client). - ConsumerCheckoutController POST - StripeWebhookService gère maintenant checkout.session.complété. Additif/iner jusqu'à ce qu'un consommateur s'abonne; la charge en temps réel a besoin d'une carte réelle.
· kamo-internal
Déplôlage de la portée clé de l'API et de la SIGNATURE (E-Signature API)
Ajouter le champ d'application de l'API de signature électronique à l'organisateur de clés d'API pour que le personnel puisse accorder Équipements des entreprises en matière d'accès aux signatures électroniques. Utilisation au-delà du mensuel inclus L'allocation est mesurée par signature.
· APIService
Passerelle de l'API de signature électronique publique (portée API-SIGNATURE)
Ajouter /api/public/esté/- à PublicApiCtroteur: valide la clé API org, exige le champ d'application, les limites de taux et les limites de l'API et de l'APISIGNATURE, ainsi que les passages de ESigService enveloppe interne API (/api/esig/interne/-) avec X-Internal-Auth et X-Org-Id. Rétrovise le précédent de passerelle du catalogue d'abonnement.
· ESigService
Enveloppe programmatique interne API (origin-API) pour les entreprises
- EsignInternalController (/api/esig/sig/s) : X-Auth et X-Org-Id authée, appelée par APIService après avoir validé la clé à portée de l'API-SIGNATURE; réuse EsignEnvelopeService, tags enveloppes EsignUsageOrigin.API - - prend en charge l'origine (par défaut de ManUAL) - Trajets de signalisation maintenant compteurs par l'origine de l'enveloppe (API -------------------------------------------------------- - OTKAuthFilter bypasses/api/esig/interne (secret intérieur, non OTK)

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