Журнал изменений
Что нового.
Каждое усовершенствование платформы, как только она появится.
· kamo-internal
Закладка лицензирования MORTGAGE (list/add/remove) — [04] срез E2 (D31)
6-я вкладка конфигурации MORTGAGE: NMLS/state/agency/investor licensing entries with дата вступления в силу / истечения срока действия и вычисленный сервером эффективный чип (статус никогда не храниться). Добавить через строку строки, удалить через действие мусора (жестко удалить на стороне сервера); Чтобы выйти на пенсию без удаления, установите срок годности к прошлому. ConfigTypes LicensingView LicensingRequest + LICENSE TYPES + licenseTypeLabel; configApi list/create/update/ удалить Лицензирование; зарегистрировано как вкладка «Лицензионные» перед вкладкой «Всегда действующие соглашения». Английские струны отправляются через репо-словарь перевода. ЦСК чист.
· SecurityService
[04] slice E2 licensing collection CRUD (D31)
Первый конфигурационный домен COLLECTION (doc-04 §3.2) LicensingEntry, many-per-profile) — новая форма записи с ID-ключом на том же позвоночнике аудита, что и у синглтонов: ********************** / updateLicense / deleteLicense: профиль bump + §4b.1 validate-or-rollback + WORM change-log per row; идентификационный сервер-stamped. Обновление/удаление разрешает строку по идентификатору, затем закрывается 404 (NoSuchRowException), если это Это не профиль оператора орга — никакого перекрестного оракула существования. - deleteLicense - это HARD delete (аудит {"deleted":true,row}) Лицензирование Resolver читает записи UnFILTERED рекордным состоянием - мягкий флаг все равно будет считать лицензированным; истекать без удаления, установить дату истечения в прошлое. - MlosConfigController: GET/licensing (список, эффективный сегодня вычисляется через EffectiveOn (сегодня), никогда не хранится, POST / лицензирование, PUT / лицензирование / (обновить или удалить через {active:false} — конфигурационный прокси не имеет глагола DELETE); ISO-date + enum + expiry>=эффективная проверка; NoSuchRowException->404. Инвесторы (+3 ребенка) и RiskOverlay повторно используют эту форму в более поздних ломтиках. 6 тестов.
· kamo-shared-library
IDENTIFIER REGISTERED тип события (mlos.identifier.registered)
Партнёр первичной регистрации IDENTIFIER SUPERSEDED — прочный сигнал нисходящие зеркала / кэши глобального разрешения потребляют, когда нативный идентификатор первый зарегистрированный (doc 11 §5.3/§10, D29).
· kamo-internal
Таблица отмены автономии на каждой стадии на вкладке ай-автономии (D28)
Doc-04 §4.2/§4.5 на каждой стадии карты под AiAutonomy Singleton: каждый жизненный цикл этап с классификацией стен платформы (схема правой стены / неперестраиваемый пол) и эффективный порог доверия, используемый воротами (max (override, floor)). Каждый non-wall stage имеет встроенный редактор override (порог + автоисполнение) с сохранением + Удалить (PUT active:false, так как конфигурационный прокси не имеет глагола DELETE); Этапы только читаются. Перезагружается после каждой записи, поэтому эффективная осанка отражает Рекомпьютер сервера. конфигурация **************************** UpdateStageOverrideRequest + configApi get/update/removeStageOverride. английский Струны (aiAutonomy.stageOverrides.*) живут в переводческо-словарном репо.
· SecurityService
[04] pass-2 AutonomyStageOverride CRUD + карта автономности (D28)
Автономность на каждой стадии отображает вертикаль конфигурации, отложенную до StageWallRegistry. Существовал (его отсрочка теперь удовлетворена): ********************** Upsert per (lenderProfile, stageKey) на одном и том же позвоночнике (мутация в белом списке, профиль Версия, §4b.1) Validate-or-rollback, WORM change-log append. Стадии LEGAL-WALL (закрытие) Финансирование / сборы) отклонены 400 прямо - ворота игнорируют переопределения там По дизайну и хранению строки, которую он никогда не будет соблюдать, это вводящий в заблуждение аудиторский артефакт. - deleteStageOverride: HARD delete (решитель читает оверреды без записи) Государственная фильтрация, поэтому мягкий флаг будет продолжать кусать ворота, проверенные как {"deleted":true",row":...} change-log snapshot + profileVersion bump. разоблаченный как PUT {active:false} потому что камо-внутренний конфигурационный прокси не имеет глагола DELETE. - GET /ai-autonomy/stage-overrides: doc-04 §4.2 per-stage map Стадия жизненного цикла с классификацией стен (юридическая стена + непересекаемый пол) Скриншоты из игры StageWallRegistry, Override row и EFFECTIVE posture: Ворота будут использовать (max (override |default, floor); auto-execute = config AND override) через **************************** - PUT **************** порог в [0,1] max 3dp как заклинание арендатора; ворота всегда прикладывают пол - всплыл как эффективный порог на GET. Все объекты §3.2 pass-2 + prod-таблицы уже существуют (картографическое обнаружение) Записка о очереди «Нужны новые сущности» была несвежей: никаких изменений общего выбора, никакого запуска KI. Вкладка Frontend + E2E - это точка прикрепленного резюме (примечание D28 STATUS в доке планов).
· DaemonService
[03] MLOS read-side consumers - decision.routed steward fan-out + task.resolved seam (D26/D27)
DOC-03 Read-Router складывается в MLOS-Consumer хост (единственный) Развертывание стратегии воссоздания - долговечные переплеты умирают в соответствии с RollingUpdate явное «служебное или сложенное» пособие дока; гринфилд MLOSOrchestrationService остается владельцем. Первые производители ядра общей потребительской надежности (док 12) §4.2): каждая доставка осуществляется через IdempotentEventProcessor - per-consumer dedup маркер в SAME tx в качестве побочного эффекта, RETRY->nak (заключается в max-попытках), MlosDeadLetter в кепке, неразборчивые тела немедленно забрасываются. - MlosDecisionRoutedConsumer **************************** daemon-mlos-decision-routed: steward fan-out via StewardNotifier - per-org SMS через VOIP POST /api/bulktext/send (кластер X-Internal-Auth) EMPTY default = record-only до модели назначения управляющего lands member->contact resolution (управляющий UI читает StewardTask напрямую). - MlosTaskResolvedConsumer **************************** daemon-mlos-task-resolved: the auto-resume SEAM. DecisionSpine.resolve() RESOLVED + OrchestrationState GREEN синхронно (обнаружено) в отображении - разрешение на стороне позвоночника EXISTS; только конечная точка HTTP является Стюард-экран устройства; двигатель повторно запустить подталкивающие вилки здесь, когда двигатель возобновить АПИ приземляются. 6 тестов.
· kamo-internal
Модуль маркетинговых инструментов + переделка nav
- / маркетинговый модуль с заголовком героя в стиле учетной записи + маршрут с правами вкладки: Обзор, Социальные медиа (/социальные), Материалы (/материалы), Коды рефералов (/скидки); скоро наступающие заполнители; защищенный доступ VIEW MARKETING + per-tab права - NavPri: маркетинговый элемент (иконка кампании, VIEW MARKETING) Коммерция и КБ; Удаление примечаний - NavTop: Календарь + Контакты теперь только для значков (сохранены инструменты); Заметки перемещены здесь от NavPri (только для иконки, те же примечания + VIEW NOTES gating) вертикальное правило SecurityRoleManager: раздел маркетинговых прав (всегда видимый)
· kamo-shared-library
Группа по маркетинговым правам — ServiceType.MARKETING + 6 прав (ids 150-155)
VIEW MARKETING, VIEW SOCIAL MEDIA, MANAGE SOCIAL MEDIA, VIEW MATERIALS VIEW REFERRAL CODES, MANAGE REFERRAL CODES. Маркетинг – это правозащитная организация Модуль (enabled=false, как LOS) — не орг-приложение. Правые ряды Самоисцеление во всех ролях на загрузке SecurityService.
· kamo-shared-library
Типы событий соответствия AUS - downgrade.forced, waiver.recorded, validation.recorded
[10] Прочные сигналы блока проверки соответствия (D22/D24): FHA TOTAL решение о принудительном понижении рейтинга и отказ только от приложения / проверка данных строки жизненного цикла (doc 10 §6.2/§7).
· kamo-internal
Hot Reassign — поток передачи вызовов в режиме реального времени
Добавляет действие Hot Reassign к карточке назначения (первый рабочий стол сотрудников на живых звонках): объяснитель + необходимый диалог call-note, а затем высвободите лидерство в кредитной автоназначении Откройте анимированное окно «найти доступного агента». Когда продавец принимает его, Окно показывает их имя / адрес электронной почты / расширение работы, чтобы абонент мог быть передан; кнопка закрытия (с предварительным подтверждением, пока все еще ждет) позволяет сотрудникам залог, не дожидаясь. В режиме реального времени через подписано. Также фиксируется выпадающий список членов VIEW LEADS по имени + расширению.
· SecurityService
Конечная точка назначения + расширение работы по профилю участника
- Получить **************** (VIEW LEADS holders grant-all) → {id,name,extension} для выпадающего заголовка (имя + расширение работы, а не электронная почта). - GET/api/security/members/{id} теперь включает в себя телефонРаботаРасширение, чтобы Жаркое Переназначение ждало В окне может быть показано продление передачи цессионария.
· kamo-internal
Иконки бренда провайдера в выпадающем списке провайдера связи + datagrid (совместно с всплывающим чатом через getProviderMeta)
· MediaService
X (Twitter) + адаптеры Discord
- XAdapter: Account Activity webhook (CRC challenge + x-twitter-webhooks-ignature HMAC verification), нормализовать Inbound (direct message events, echo-skip), OAuth 1.0a-signed v2 DM send; ключ/секрет от платформы X OAuth регистрация, per-connection доступ к токену: секрет DiscordAdapter + DiscordRestClient: DM normalize + REST send (открытый канал DM + сообщение/файл) DiscordGatewayManager: постоянный потребитель JDK-WebSocket Gateway (один WSS на активный Discord) Подключение, HELLO/Hartbeat/IDENTIFY, MESSAGE CREATE DMs переизданы на social.inbound.raw @Scheduled reconcile = reconnect, @PreDestroy cleanup SocialCredsResolver: X-отделение решает потребительский ключ/секрет из реестра OAuth
· kamo-internal
Добавить X (Twitter) + Discord к провайдерам связи + логотипы провайдеров; X карта в платформе OAuth
· APIService
Форвардная подпись x-twitter-webhooks-signature на границе социального веб-хука (X/Twitter Account Activity)
· kamo-shared-library
Добавить X(4)/DISCORD(5) провайдера перечисления + X(6) платформы OAuth провайдера + Active-by-provider repo lookup (нет схемы; provider type id является простым целым числом)
· kamo-shared-library
Lock-lifecycle outbox event type + BusinessDayCalendar продвигается на mlos.compliance
********************** (mlos.pricing.lock.lifecycle): одно событие Тип для всего жизненного цикла после блокировки; конкретный MlosLockEvent Тип аттракционов в полезный груз. Первоначальное обязательство LOCK остается mlos.cm.lock.committed на рынках капитала. - BusinessDayCalendar (CFPB § 1026.2(a)(6) копия заблокированной Службы Раскрытия) Правила) переходит от MLOSCapitalMarketsService к mlos.comliance per D16 - Ценовая блокировка жизненного цикла является вторым потребителем MLOS, запланированным на javadoc. Продвижение по службе. Тест движется с ним (7/7 зеленых).
· kamo-internal
Doc-04 MORTGAGE Config Tabs — 5 доменных однотонов
бизнес-модель / власть / рынки капитала / обслуживание / автономия GET+PUT /api/security/mlos/config; mlosPut + parseWriteError поверхностное поперечное поле §4b.1 список отказов в строке; названия булевых полей симметричны с GET/entity JSON; монтируется в полосе вкладок рынка MORTGAGE до заключения договоров ребенок (мертвый) УдалитьCommerceTypeLabel. ЦСК чист.
· VOIPService
Шаблонная система Doc-07 SMS — /api/voip/sms/templates + GSM-7/UCS-2
**************** по разделяемым объектам SmsTemplate: отображает {{var}} и отправляет через существующий BulkTextProvider примитивный путь несущей; SmsSegmentCalculator (GSM-7 160/153, UCS-2 70/67) + sms.max-сегменты cap -> 422. @EnableJpaRepositories += **************************** Внутренний фильтр защищает новую приставку; X-Internal-Auth закрыт.
· SecurityService
Слой Doc-04 tenant-config — самоисцеление + резюме активации + 5 доменных GET/PUT
mlos.config.enabled + com.kamo.z.shared.mlos.config в @EnableJpaRepositories. MlosConfigSelfHealRunner: по умолчанию LenderProfile + 5 доменных синглтонов на активную Рынок MORTGAGE на старте **************** MlosConfigWriteService: whitelist -> §4b.1 validate-or-rollback -> profileVersion bump Снимок WORM MlosConfigChangeLog. Контроллер /api/security/mlos/config: Резюме активации профиля кредитора + валидация + журнал изменений + бизнес-модель / полномочия / **************************** GET/PUT; **************** Ворота, сессионная организация/актер (SUDO-aware). Булевы поля симметричны с GET/entity JSON.
· kamo-shared-library
Уровень конфигурирования/активации + затвердевание шлюза принятия решений + Происхождение DecisionSpine + объекты шаблона SMS
- [04] mlos.config: ******************* Enums + BusinessModelConfig ************* Субъекты + Репо + ScreenState/ModuleState/ ModuleKey/StewardQueueKey + ActivationMatrix (§4b row-for-row); MlosActivation Сервис прибыль **************************** (союз + власть) CM/Servicing refinements); MlosConfigChangeLog WORM audit; VendorCategory. - [12] StageWallRegistry (самопроверка: ****************) 0,90 кредитный/денежный пол, класс нагрузки закрыт; решение Ворота или стена реестра (только добавьте), обеспечивает соблюдение пола на стадии, добавляет силовой стюард отказоустойчив. - [03] Решение Спина. DecisionRequest получает необязательное происхождение ausFindingId (back-compat ctor). - [07] SmsTemplate/SmsTemplateCategory entities+repos (donotmodify.voip.template, mirroring Закрытые шаблоны электронной почты.
· kamo-internal
Раздел регистрации клиентов OAuth2 в расширенных настройках **************** — карты провайдера + диалог редактирования + замаскированные секреты + прокси + api клиент
· VOIPService
Клиентские учетные записи RingCentral OAuth разрешаются из реестра платформы OAuth у обоих потребителей (обновление OAuthController + PhoneProviderFactory) + загрузочное семя + платформенный ключ env
· EmailService
Клиентские учетные записи Google/Microsoft/Zoho OAuth удаляются из реестра платформы OAuth (+ загрузочное семя из env); удаляются @Value client-id/secret + platform-enc-key env
· MediaService
Meta OAuth считывает идентификатор приложения / секрет / токен проверки из реестра платформы OAuth (+ загрузочное семя из env); удалить social.meta.* consumption + platform-enc-key env
· SecurityService
Регистрация клиентов OAuth2 CRUD (платформенный админ-шлюз, зашифрованный в режиме покоя, секреты никогда не просочились) + платформенный ключ env
· kamo-internal
Композиторы Steward WRITE — записывают вердикт, публикуют сквозную политику, запускают ценообразование
Три пути записи консолей всплыли как скоро, с конца до конца: - StewardFeedbackComposer in the decision-trail drawer: CONFIRM/MODIFY/OVERRIDE сегментированный вердикт (тонально закодированный), выбранная причина Reg-B (требуется на OVERRIDE), Модификатор исправленного значения JSON с проверкой на стороне клиента, WORM Примечание только в приложении, бортовой охранник (в цепочке нет ключа идемпотентности). PullThroughPolicyComposer заменяет публикацию в ближайшее время: два шага Отредактировать -> обзор-дифф -> опубликовать v(n+1); валидация ручки отражает услугу (пробы 4dp, процентили, словарь горизонта док-09, подсказка пола платформы); публикует через сессионно-штампованный прокси, что право собственности проверяет зерно. RunPricingComposer за действием заголовка Run-pricing: сценарий / продукт предварительное заполнение выбранного прогона, только SHOPPING/WHAT IF, дополнительные факты (fico/ltv/dti/state), счетчики после запуска, в т.ч. пропущенные продукты, просмотренные. Сантехника: mlos Routes forward request.method + export POST; mlosPost (NO retry) - неидемпотентный WORM пишет; пишет типы/fns в governanceApi/pricingApi. i18n: весь новый текст с помощью next-intl; замена жесткого кода PRICING PURPOSE LABEL/ ELIGIBILITY LABEL карты с поддержкой t(); ключи тройные.
· kamo-shared-library
PlatformOAuthClientResolver (реестр чтения + расшифровки) + PlatformOAuthSeeder (идемпотентное семя загрузки из env) + ResolvedOAuthClient
· kamo-shared-library
PlatformOAuthClient Register entity + repo + PlatformSecretCipher + provider
Проверенная регистрация OAuth2 на уровне платформы **************************** зашифрованный в состоянии покоя через PlatformSecretCipher (AES-256-GCM, platform.enc-key). автономный объект; потребляется Служба безопасности (CRUD) и службы разрешения (read+decrypt).
· SecurityService
Steward WRITE proxies — запись обратной связи, публикация сквозной политики, запуск ценообразования
Напишите дисциплину, применяемую одинаково на всех трех ПОСТ: - нисходящий корпус, построенный на стороне сервера из WHITELIST полей браузера; - organizationId + actor member id ВСЕГДА сессионно-штампованный (новый actorMemberId()) предпочитает SUDO MEMBER ID в качестве атрибутов для человека, а не для Пользователя Системы; - Org-blind target ids ownership-verified FIRST via the new MLOS org-resolution (decision-org / lender-profile-org / scenario-org), 404 on unknown or Иностранный — провал закрыт, нет межоргового существования оракула; - штифты обратной связи steward-feedback isTestLoan=false (HMDA/test partition is not) Контролируемый браузером; Ценовые зажимы предназначены для SHOPPING | WHAT IF и pins pricedAsOf (без задних дат) + ausGate (авторитетный); - клиенты получают близнеца PostJson, который передает вниз по течению статус 4xx / 5xx + тело дословно; только транспортные отказы пузырь до 502.

Ваша вселенная ждет.
Начните бесплатно через несколько минут. Добавляйте продукты, когда будете готовы — без миграции, без новых логинов.
Бесплатно навсегда — не требуется кредитная карта