Changelog
Was ist neu?
Jede Verbesserung an der Plattform, wie sie geliefert wird.
· SecurityService
[04] Scheibe E2 InvestorConfig Kollektion CRUD (D31)
Die zweite Sammlung Konfiguration Domain (doc-04 -3.2 InvestorConfig) pro Anleger die Genehmigung/Lieferung/Beerigkeit, die die Ausführung von Kapitalmärkten einführt. Wiederverwendet die Einheit H Kollektionsform genau: ************ beim Audit Spine (profileVersion bump + 4b.1 Validierung oder Walz-Log + WORM Change-Log; hart löschen audited {"deleted":true,row"; NoSuchRowException-'404 fail-closed on a Auslandsprofile Reihe). GET /Investoren + POST + PUT/{id'(+active:false-remove); investorCode + ZulassungStatus erforderlich, **************** delegierte Genehmigung optional; enum + non-negative-turn Validierung. The InvestorConfig +3-Kinder (Überlagerungen/Lieferung/Verpflichtung) Sub-Kollektionen bleiben ein Follow-on. 4 Tests (+Bestehende ctor Websites aktualisiert für die +InvestorConfigRepository arg; 16 config schreiben testet grün).
· kamo-internal
MORTGAGE Lizenzierungs-Tab (list/add/remove) - [04] Scheibe E2 (D31)
Die 6. MORTGAGE Konfigurationskarte: NMLS/state/Agentur/Investor Lizenzeinträge mit effektive/exorne Daten und ein Server-computed effective-today-Chip (Status ist nie gespeichert). Hinzufügen über eine Zeile inline, entfernen über die Müllaktion (hart löschen Server-Seite; ohne Löschen, Auslaufen der Vergangenheit). configTypes LicensingView/ LicensingRequest + LICENSE_TYPES + licenseTypeLabel; configApi list/create/update/ Entfernen Lizenzierung; registriert als Registerkarte "Lizenzierung" vor dem Register "All-on-Verträge". Englische Strings versenden über das Übersetzungs-Wörterbuch repo. tsc clean.
· SecurityService
[04] Scheibe E2 Lizenzsammlung CRUD (D31)
Die erste COLLECTION-Konfiguration (doc-04 -3.2 Lizenzierung, viel pro Profil) eine neue id-keyed Schreibform auf der gleichen Audit-Rücken wie die Singletons: - **************** / updateLizenz / deleteLizenz: profileVersion bump + 4b.1 Validate-or-Rollback + WORM Change-Log pro Zeile; Identitäts-Server-Stempel. Aktualisieren/löschen Sie die Zeile von id dann fail-closed 404 (NoSuchRowException) wenn es ist nicht das Profil des Operator org - kein Cross-Profil existieren Oracle. - deleteLicense ist ein HARD löschen (geprüft {"deleted":true,row]), weil LicensingResolver liest Einträge UNFILTERED by record state - eine weiche Flagge würde immer noch zählen als lizenziert; zu verfallen, ohne zu löschen, setzen Sie auslaufendeDate in die Vergangenheit. - MlosConfigController: GET /licensing (Liste, effectiveToday berechnet über isEffectiveOn(heute), nie gespeichert), POST /Lizenzierung, PUT /licensing/{id' (Achzig:false . . Der Konfigurations-Proxy hat kein DELETE-Verb); ISO-Dat + enum + auslaufendes&#xt.=effektive Validierung; NoSuchRowException---404. Investoren (+3 Kinder) und RiskOverlay verwenden diese Form in späteren Scheiben wieder. 6 Tests.
· kamo-shared-library
IDENTIFIER_REGISTERED Ereignistyp (mlos.identifier.registriert)
Das Erstregistrierungs-Pendant zu IDENTIFIER_SUPERSEDED - das langlebige Signal Downstream-Spiegel / Global-Auflösung Caches verbraucht, wenn eine native Kennung ist zuerst registriert (doc 11 €5.3/-10, D29).
· kamo-internal
Per-Stufe-Autonomie-Rheide-Tab (D28)
Die doc-04 4,2/4,5 pro Etappe unter dem AiAutonomy Singleton: jedes Lebenszyklus Etappe mit ihrer Plattformwand Klassifizierung (legal-wall chip / non-tunable floor) und die effektive Vertrauensschwelle, die das Gate verwendet (max(override, Boden)). Jede non-wall- stage hat einen Inline-Override-Editor (Schwelle + Auto-Ausführende) mit Speicher + entfernen (PUT active:false, da der Konfigurations-Proxy kein DELETE Verb hat); legal-wall Die Bühnen sind nur lesbar. Reloads nach jedem Schreiben, so dass die effektive Haltung spiegelt die server recompute. configTypes ************ UpdateStageOverrideRequest + configApi get/update/removeStageOverride. Englisch Strings (aiAutonomy.stageOverrides.*) live im Übersetzungs-Wörterbuch-Repo.
· SecurityService
[04] pass-2 AutonomyStageOverride CRUD + pro Stufe Autonomiekarte (D28)
Die pro-Stufe-Autonomie Oberfläche der Konfiguration vertikal verschoben, bis StageWallRegistry existiert (ihre aufgeschobene Schuldverschreibung ist jetzt befriedigt): - ************ sert per (lenderProfile, stageKey) auf dem SAME schreiben Wirbelsäule (Whitelisted Mutation, profileVersion bump, -4b.1 validate-or-rollback, WORM change-log append). LEGAL-WALL-Stufen (CLOSING/ FUNDING/COLLECTIONS) werden 400 komplett abgelehnt - das Tor ignoriert dort durch Design, und die Speicherung einer Zeile wird es nie ehren ist eine irreführende Prüfung Artefakt. - deleteStageOverride: HARD löschen (der "Rechenist liest ohne Datensatz- Zustand Filterung, so dass eine weiche Flagge würde halten, das Tor beißen), als ein {"deleted":true",",":...' change-log snapshot + profileVersion bump. Ausgesetzt als PUT {aktiv:falsch], weil der kamo-interne config Proxy kein DELETE Verb hat. - GET /ai-Autonomie/stage-Overrides: die doc-04 4,2 pro Etappenkarte - jeder LifecycleStage mit seiner Wandeinstufung (legalWall + nicht überschuldbarer Boden von StageWallRegistry), der Override-Reihe des Mieters und der EFFECTIVE-Stellung der Gate wird verwendet (max(override|default, floor); auto-execute = config AND override) via **************** - PUT ************ Schwelle in [0,1] max 3dp (gespeichert als ASK des Mieters; das Tor gilt immer den Boden - aufgetaucht als wirksameThreshold auf dem GET). Alle 3,2 Pass-2-Einheiten + prod-Tabellen existieren bereits (Mapping-Entdeckung - Die Notiz 'brauchen NEUE Entitäten' von der Warteschlange war veralte: keine Shared-lib-Änderung, kein KI-Lauf. Frontend Tab + E2E sind die angeheftete Lebenslaufpunkt (D28 STATUS Hinweis in der Pläne doc).
· DaemonService
[03] MLOS Lese-Seite Verbraucher - decision.routed Steward Fan-out + task.resolved seam (D26/D27)
Der Doc-03-Leserouter faltete sich in den MLOS-Konsumenten-Host der Flotte (der einzige Recreate-strategy-Einsatz - langlebige Rebinds sterben unter RollingUpdate), je Doc's explizite 'dünnen Leseservice oder gefaltete' Zugabe; eine grüne Wiese MLOSOrchestrationService bleibt inhabergeführt. Erste Produktionsmitarbeiter des Shared-Lee-Consum-Reliability-Kerns (doc 12 4:2): Jede Lieferung läuft über IdempotentEventProcessor - pro-consumer dedup Marker im SAME-Tx als Nebeneffekt, RETRY-Enak (gedeckelt durch max-Astrkte), MlosDeadLetter an der Mütze, unauffällige Leichen sofort totgeschrieben. - MlosEntscheidungRouter **************** daemon-mlos-decision-routed): Steward Fan-out via StewardNotifier - per-org SMS über VOIP POST /api/bulktext/send (Cluster X-Internal-Auth) zu configmap- aufgeführte Zahlen; EMPTY default = rekord-only bis zum Steward-Awardment-Modell landet member--Econtact-Auflösung (die Steward UI liest StewardTask direkt). - MlosTaskResolvedConsumer **************** daemon-mlos-task-resolved): das Auto-resume SEAM. DecisionSpine.resolve() bereits Flips Aufgabe RESOLVED + OrchestrationState GREEN synchron (entdeckt im Mapping - die Wirbelsäulen-Seite lösen EXISTS; nur der HTTP-Endpunkt ist der Steward-Bildschirm-Einheit; der Motor-Re-Run-Nudge Stecker in hier, wenn Motor wieder aufnehmen APIs landen. 6 Tests.
· kamo-internal
Marketing Tools Modul + nav rework
- /Marketing-Modul mit Account-Style Hero Header + Rechte-Gated Route tabs: Übersicht, Social Media (/sozial), Materialien (/Materialien), Überweisungscodes (/Erzählungen); kommende Platzhalter; Zugang bewacht von VIEW_MARKETING + prot-tab Rechte - NavPri: Marketing-Artikel (Kampagnen-Symbol, VIEW_MARKETING) zwischen Commerce und KB; Anmerkungen entfernt - NavTop: Kalender + Kontakte jetzt nur Icon-only (Tooltips gehalten); Notizen verschoben hier von NavPri (icon-only, same isNotes+VIEW_NOTES gating) mit einem Hinter vertikale Regel - SecurityRoleManager: Abschnitt zu Marketing-Rechte (immer sichtbar)
· kamo-shared-library
Marketingrechte Gruppe - ServiceType.MARKETING + 6 Rechte (ids 150-155)
VIEW_MARKETING, VIEW_SOCIAL_MEDIA, MANAGE_SOCIAL_MEDIA, VIEW_MATERIALS, VIEW_REFERRAL_CODES, MANAGE_REFERRAL_CODES. MARKETING ist eine Rechte-Gruppierung module (enabled=false, like LOS) - keine org-fähige App. Rechte-Streitigkeiten Selbstheilen in alle Rollen auf SecurityService boot.
· kamo-shared-library
AUS-Konformitäts-Event-Typen - downgrade.forced, verzicht.aufgezeichnet, validieren.aufgezeichnet
Die langlebigen Signale des [10] Compliance-Gigator-Einheit (D22/D24): der FHA TOTAL Zwangs-Downgrade-Entscheidung-of-Record, und die Anhängsel-nur Verzicht / Daten-validierung Lebenszyklusreihen (Dok. 10 -6.2/7).
· kamo-internal
Hot Reassign - Front-Desk Live-Call-Transfer-Flow
Fügt eine Hot Reassign-Aktion zur Lead-View-Verweisungskarte hinzu (Front-Desk-Mitarbeiter bei Live-Anrufen): ein Erklärer + erforderliche Call-Note-Dialog, dann geben Sie das Blei in die Kredit-Auto-Auftrag Pool und öffnen Sie ein animiertes 'finde einen verfügbaren Agenten' Fenster. Wenn ein Handelsvertreter es akzeptiert, Fenster verrät ihren Namen/E-Mail/Arbeitserweiterung, so dass der Anrufer übertragen werden kann; eine Schließtaste (mit einer frühen kurzfristigen Bestätigung während des Wartens) lässt Mitarbeiter ohne Wartezeit Kaution. Echtzeit über onAssigned. Behebt auch den Zuweisungs-Down, um VIEW_LEADS-Mitglieder nach Name + Erweiterung aufzulisten.
· SecurityService
Zufällige Mitglieder Endpunkt + Arbeitserweiterung auf Mitgliedsprofil
- GET ************ (VIEW_LEADS Inhaber - Zuschuss-alle) . {id,name,extension] für den Lead-View-Zuweisungs-Down (Name + Arbeitserweiterung, nicht E-Mail). - GET /api/security/members/{id] enthält jetzt phoneWorkExtension, damit die Hot Reassign Wartezeit Fenster kann die Transferverlängerung des Empfängers anzeigen.
· kamo-internal
Provider-Markensymbole im Anschlussanbieter Dropdown + Datagrid (gemeinsam mit dem Chat-Popup über getProviderMeta)
· MediaService
X (Twitter) + Discord Adapter
- XAdapter: Account Activity webhook (CRC challenge + x-twitter-webhooks-signature HMAC überprüfen), normalizeEinbound (direct_message_events, echo-skip), OAuth 1.0a-signiert v2 DM senden; Verbraucher Schlüssel/Sekret von der Plattform X OAuth Registrierung, pro Verbindung Zugang token:secret - DiscordAdapter + DiscordRestClient: DM normalize + REST senden (öffnet DM Kanal + Nachricht/Datei) - DiscordGatewayManager: anhaltender JDK-WebSocket Gateway Verbraucher (ein WSS pro aktiver Discord Anbindung, HELLO/heartbeat/IDENTIFY, MESSAGE_CREATE DMs wiederveröffentlicht auf social.inbound.raw so die bestehende Verbraucher-Pipeline behandelt sie), @Scheduled versöhnen = wieder verbinden, @PreDestroy Cleanup - SocialCredsResolver: X-Zweig löst Verbraucherschlüssel/Geheimnis aus der Plattform OAuth Registry
· kamo-internal
X (Twitter) + Discord zu Verbindungsanbietern + Provider-Logos hinzufügen; X-Karte in Plattform OAuth-Registrierungen
· APIService
Forward x-twitter-webhooks-signature auf der Social Webhook Kante (X/Twitter Account Activity)
· kamo-shared-library
Hinzufügen X(4)/DISCORD(5) Provider enums + X(6) Plattform OAuth Provider + active-by-provider repo lookup (kein Schema; provider_type_id ist ein einfacher Integer)
· kamo-shared-library
Lock-Lifecycle Outbox Veranstaltungstyp + BusinessDayCalendar gefördert mlos.compliance
- **************** (mlos.pricing.lock.Lifecycle): ein Ereignis Typ für den gesamten Post-Lock-Lebenszyklus; der spezifische MlosLockEventType fährt in die Nutzlast. Die anfängliche LOCK verpflichten bleibt Kapital-Mlos.cm.lock.committed. - BusinessDayCalendar (CFPB -1026.2(a)(6) Replik des gesperrten DisclosureService regeln) bewegt sich von MLOSCapitalMarketsService zu mlos.compliance per D16 - der Preisgestaltung Lock-Lifecycle-Autor ist der zweite MLOS Verbraucher seine javadoc geplant die Förderung für. Test bewegt sich damit (7/7 grün).
· kamo-internal
Doc-04 MORTGAGE config tabs . 5 Domain Singletons
Business-Modell / Autorität / Kapitalmärkte / Service / ai-autonomie GET+PUT via /api/security/mlos/config; mlosPut + parseWriteError Oberfläche der 4b.1 Cross-Field Ablehnungsliste inline; boolesche Feldnamen symmetrisch mit der GET/entity JSON; montiert im MORTGAGE Marktabstand Streifen vor den Verträgen Kind (tot KommerzTypeLabel entfernt). tsc clean.
· VOIPService
Doc-07 SMS-Vorlagesystem /api/voip/sms/templates + GSM-7/UCS-2 Segmentschutz
************ über die Shared-lib SmsTemplate Entitäten: macht {{var" und sendet über den EXISTING BulkTextProvider primitiv (keine Sekunde Trägerweg); SmsSegmentCalculator (GSM-7 160/153, UCS-2 70/67) + sms.max-Segmente Kappe - 422. @EnableJpaBestätigte += **************** InternalAuthFilter bewacht das neue Präfix; X-Internal-Auth gated.
· SecurityService
Doc-04 Mieter-Konfigurationsebene - Selbstheilung + Aktivierungsübersicht + 5 Domain GET/PUTs
mlos.config.abled + com.kamo.z.shared.mlos.config in @EnableJpaRepositories. MlosConfigSelfHealRunner: Standard LenderProfile + 5 Domain Singletons pro Aktiv MORTGAGE Markt bei boot ************ MlosConfigWriteService: Whitelist - - 4b.1 Validierung oder Walz" -- profileVersion bump WORM MlosConfigChangeLog Schnappschuss. MlosConfigController /api/security/mlos/config: Kreditgeber-Profil Aktivierungsübersicht + Validierung + Change-Log + Business-Modell/Autorität/ ************ GET/PUT; **************** Gate, Session org/actor (SUDO-bewusst). Boolesche Felder symmetrisch mit dem GET/entity JSON.
· kamo-shared-library
Config/Aktivierungsschicht + Entscheidungsgate Härten + Entscheidungs-Spine-Redeanz + SMS-Vorlage-Entitäten
- [04] mlos.config: ************ enums + BusinessModelConfig/ ************ Entitäten+repos + ScreenState/Modul/ ModuleKey/StewardQueueKey + AktivierungMatrix (-4b Reihe-für-Runde); MlosActivationService Gewinne ************ (Gewerkschaft + Autorität/ CM/servicing Raffinessments); MlosConfigChangeLog WORM audit; VendorKategorie. - [12] StageWallRegistry (Selbstbestätigung: **************** 0.90 Kredit/Geldboden, Klassenlast ausfallend); DecisionGate ORs die Registrierungswand (add-only), zwingt die pro-Stufe-Etage, fügt Kraft-Steign-Ausfall-sicher. - [03] DecisionSpine.DecisionRequest erhält optional ausFindingId Provenienz (Back-compat ctor). - [07] Smstemplate/SmsTemplateKategorie entities+repos (donotmodify.voip.template, Spiegelung die gesperrten E-Mail-Vorlagen).
· kamo-internal
OAuth2 Client Registrierungsabteilung in erweiterten Einstellungen ************ - Provider-Karten + Dialog bearbeiten + maskierte Geheimnisse + Proxy + api Client
· VOIPService
RingCentral OAuth Client Creds lösen von der Plattform OAuth Registry bei beiden Verbrauchern (OAuthController + PhoneProviderFactory refresh) + boot-seed + platform-enc-key env
· EmailService
Google/Microsoft/Zoho OAuth Client Creds lösen von der Plattform OAuth Registry (+ boot-seed from env); entfernen @Value client-id/secret + platform-enc-key env
· MediaService
Meta OAuth liest App id/secret/verify-token von der Plattform OAuth Registry (+ boot-seed from env); entfernen social.meta.* Verbrauch + platform-enc-key env
· SecurityService
OAuth2-Client-Registrierungen CRUD (platform-admin gated, verschlüsselt-at-rest, Geheimnisse nie durchgesickert) + platform-enc-key env
· kamo-internal
Steward WRITE Komponisten - Rekord-Urteil, veröffentlichen Pull-Through-Politik, laufende Preisgestaltung
Die drei Schreibpfade, auf denen die Konsolen als kommende, live Ende-zu-Ende auftauchten: - StewardFeedback-Composer in der Entscheidungs-Trail-Schloss: CONFIRM/MODIFY/OVERRIDE Segmented Urteil (tone-codiert), Reg-B Grund auswählen (auf OVERRIDE erforderlich), MODIFY korrigiert-Wert JSON Editor mit Client-seitiger Validierung, WORM Anhängen-nur Hinweis, In-Flight-Wächter (die Kette hat keine idempotency-Taste). - PullThroughPolicyComposer ersetzt die publiant-Box im kommenden Jahr: zweistufig edit -" review-diff -" veröffentlichen v(n+1); Knauf-Validierung spiegelt den Dienst (Probs 4dp, Perzentile, doc-09 Horizont-Vokabular, Plattformboden-Hinweis); veröffentlicht über Session-gestempelten Proxy, dass Eigentum-vermittiert das Korn. - RunPricingComposer hinter einer Run-Pricing Header-Aktion: Szenario/Produkt Prefills aus dem ausgewählten Lauf, nur SHOPPING/WHAT_IF, optionale Fakten (fico/ltv/dti/state), Post-Run-Zählgeräte inkl. übersprungenen Produkten, Ansicht-run. Sanitär: mlos Routen vorwärts request.method + exportieren POST; mlosPost (NO retry - non-idempotent WORM schreibt); Schreibtypen/fns in GovernanceApi/pricingApi. i18n: alles neuer Text über next-intl; ersetzt hardcoded PRICING_PURPOSE_LABEL/ ELIGIBILITY_LABEL Karten mit t() unterstützten Helfern; Schlüssel dreifach geschrieben.
· kamo-shared-library
PlatformOAuthClientResolver (read+decrypt Registry) + PlatformOAuthSeeder (idempotent boot seed von env) + ResolvedOAuthClient
· kamo-shared-library
PlatformOAuthClient Registry Entität + Repo + PlatformSecretCipher + Provider enum
Plattform-Level OAuth2 verifizierte-App-Registrierungen ************ verschlüsselt in Ruhe über PlatformSecretCipher (AES-256-GCM, platform.enc-key). Standalone-Einheit; verbraucht von SecurityService (CRUD) und die Lösungsdienste (read+decrypt).

Euer Universum wartet.
Fügen Sie Produkte hinzu, wann immer Sie möchten – keine Migration, keine neuen Anmeldungen.
Für immer kostenlos – keine Kreditkarte erforderlich