Журнал изменений
Что нового.
Каждое усовершенствование платформы, как только она появится.
· SecurityService
Стюард рынков капитала прочитал прокси для командного центра
Добавьте прокси-сервер с именем MLOS, который позволяет использовать внутренний капитал и риск Командный центр добирается до MLOSCapitalMarketsService, не разоблачая внутренние Сеть или секрет для браузера: - MlosBaseController: автономные помощники OTK-сессии (org + оператор/бог) ворота). Не расширяет базу LOS с твердыми деньгами и не вводит LOS-название MLOS — это отдельная система. - MlosCapitalMarketsController @****************** разрешает оператор Орг от сеанса, ворота на операторе (бого-режим), впрыскивает Собственная организация оператора Id in the org-scoped MLOS reads (никогда клиент) Значение), а также отказ закрывает композитный идентификатор считывания против перекрестного доступа. - MlosCapitalMarketsClient: RestTemplate to kamomloscapitalmarkets-service with общий секрет X-Internal-Auth (организация Id прошла как парам запросов). - configmap: mlos.capital-markets.url (env-overridable). Повторное использование уже проводного Внутренний.auth.secret. Получено с помощью ретранслятора APIService /api/security/**.
· kamo-internal
Консоль управления MLOS Capital & Risk Command Center
Добавить консоль ипотечного управляющего под /commerce (рынок MORTGAGE) вкладка), заменяющая подзадачи с намерениями/обязательствами заполнителя MortgageStewardSection + внутренние вкладки на экране стюарда. Первый экран: Столица & Risk Command Center on the shiped MLOSCapitalMarketsService reads (задерживается по ссылке) status/scenario + pipeline-funding P(fund) p5/p50/p95) За типизированным клиентом (однофайловый своп на прямой путь чтения). Многоразовый полноразмерный комплект консоли: ConsoleShell, SectionCard, KpiTile, StatusPill + обертки движения (CountUp, Stagger, Crossfade) — пониженное движение Знать, белый ярлык через цвет первичный. - Вентилятор вероятности финансирования подписи (p5/median/p95), фильтруемый блокирующий трубопровод с обратным отсчетом тонов истечения срока действия, выдвижным ящиком (сроки жизненного цикла + AI) обоснование решения), разбивка сегмента, честная полоса «скоро». Клавиатура/ARIA на всех интерактивных строках, контраст WCAG-AA, Next-intl на всем протяжении.
· kamo-internal
Система Широкое переключение + редактор кредитного баланса + каскадный фильтр; фильтр / ссылки / страницы участника истории; инъекционный значок + Нерешительность подтверждает
- /leads/credits: right-aligned 'System Wide: Активное/отложенное падение; Кредитный баланс использует InfinityCell с поддержкой ∞ (снижение инвалидов, листья ∞ как есть); фильтр продукта каскады от Продавца (отключено/перезагружено, когда Продавец = Все). - /leads/history: Manager-only Member filter (VIEW LEADS holders, алфавитный), Lead ID + Контактное имя ссылки на ведущий, полный сервер-стороны пагинации. - /leads/available: Inject Test Lead теперь является кнопкой только для значков. - ConfirmationDialog: дополнительный вызов Word prop (Inject использует «INJECT») Держите случайное слово неизменным.
· SecurityService
Общесистемный переключатель, ведущие зрители, редактирование кредитного баланса, история
- /credits/systemwide GET+PATCH (org credit-suspend), /credits/lead-viewers (VIEW LEADS) Держатели, в том числе грант-все) для фильтра участника истории. - Редактирование кредитного баланса на PATCH/allotments/{id}: число понижается через инвалидизацию, нуль = ∞. - /leads/history now paginated (page/size/total) + Returns lead contactName. - availableSummary + available() gate credit acceptance on the org System Wide switch.
· kamo-shared-library
Приостановление общесистемного кредита, признание кредитного баланса недействительным, начало истории
- OrgLeadConfig (новая таблица ORG LEAD CONFIG): переключатель "System Wide", который приостанавливает CREDIT-BASED ведущее автоназначение (FFA не затронута); закрыто в acceptNextLead (новый) Результат SYSTEM SUSPENDED. ********************** + repo признать недействительным CreditsByIds: уменьшить Доступный баланс участника к цели путем признания недействительным избытка самого старого. CreditAssignmentHistoryService: серверная пагинация (getHistoryPage/PagedHistory) + per-entry lead contactName (только для видимой страницы).
· kamo-internal
Разделите лид-кредиты на доступные / История / Управление кредитами
Переупорядочивает /ведущие действия вправо: Добавить новый свинец, Лиды доступны (→/ведущие/доступны, Иконка Bolt + индикатор доступности в реальном времени, показанный с помощью Spend/Receive, History (→/leads/history, Иконка истории), Управление кредитами (→/leads/credits, иконка кредитной карты, только менеджеры). Заменяет собой Кнопка «Lead Credits», указывающая на перенаправление /leads/allotments.
· kamo-internal
Инъекционный тест Ведущее действие / Веды / Доступно (только менеджеры)
Добавляет кнопку «Inject Test Lead» рядом с акцептом для каждого поставщика / продукта, показанным только для Исполнитель: MANAGE CREDITS Открывает диалог подтверждения, затем POSTs для новой инъекции. конечная точка; синтетический свинец приземляется в бассейне, и сетка освежается.
· SecurityService
Inject test lead + fix Manage-Credits list для администраторов
- Новый POST **************** (MANAGE CREDITS): синтетический «Void > Test Lead» (John Doe / 555-555-5555 / noreply@<org base domain>) Требуется назначение = истинно в данный рынок / поставщик / продукт пул автоназначения так Акцепт-поток может осуществляться сквозно; публикует доступность для живых обновлений. - Список членов, имеющих право на получение мандатов, теперь включает всех членов профсоюзов (владельцев/администраторов, чьи *** заполнено всеми правами с явным запросом прав, поэтому грант-все администратор, который проводит сессию SPEND RECEIVE, но не имеет явной строки Теперь он появляется в списке. Извлечено все обнаружение гранта сессии в GrantAllRoleResolver и повторно использовано в PostAuth***Service (без изменений в поведении) и LeadCreditController.
· kamo-shared-library
Загрузить оригинальный ключ файла на LeadImport
Добавляет столбцы SOURCE FILE KEY + SOURCE FILE CONTENT TYPE, чтобы запускать ссылки на Оригинальный файл, архивированный в MinIO (KamoInitializer добавляет столбцы в следующий запуск).
· kamo-internal
Archive & download Оригинальный импортированный файл
На начальном импорте загружается необработанный файл (наилучшие усилия), и его ключ передается на импорт. POST; Past Imports показывает кнопку загрузки для запуска с архивированным файлом. +2 Прокси маршруты (source-file upload + download), клавиши +2 i18n.
· SecurityService
Архив исходного файла для MinIO + скачать конечную точку
Injects MinIOStorageService; POST /source-file сохраняет необработанную загрузку в частном порядке внутреннее ведро; GET /{id}/source-file передает его обратно (org-checked); ключ резьбовый посредством импорта POST и персистентностиImportRun; история GET теперь возвращается к исходному файлу.
· kamo-internal
Шаблоны импорта + подзадачи прошлых импортов, автоматическое обнаружение, реимпорт
- Сабтаб-бар в LeadManualImportManager: Импортные лиды | Импортные шаблоны | Прошлый импорт - LeadImportTemplateManager: список шаблонов/создать/редактировать/удалить + загрузить-против шаблона (import-as-is или регулировка отображения); повторное использование интерфейса FieldMapping в файлово-агностическом режиме - LeadImportHistoryManager: список выполнения с импортным / общим + значком ошибки, отчет об ошибке Неудачные строки реимпорта (необязательная корректировка карт) - Авто-детектирование: на анализе файлов, заголовки POST для /детектирования; выбрать соответствующий шаблон или сделать новый; Экономия в качестве шаблона в конце нового импорта - FieldMappingInterface: parsedData optional + headers prop для режима редактирования шаблонов - Следующие прокси-маршруты для импорта свинца/* и ****************
· SecurityService
Persist run/records, шаблон CRUD, заголовок auto-detect & re-import
- LeadImportPersistenceService: заголовок нормализует +SHA3 отпечаток пальца (упорядочен/неупорядочен), картографирование/вывод JSON туда-обратно, персистирующий запуск + неуспешные записи, обнаружение шаблонов (Jaccard) - LeadImportTemplateConroller: **************** CRUD +/detect (орг-скап) - LeadImportController: реальная страница истории GET; POST продолжает бег + неуспешные строки и возвращает реальный ImportId (fileName/templateId через парам запросов); +GET/{id}/records и POST/{id}/reimport-failed; processImport refactored to emit per-row RowOutcomes (глобальный) Индекс строк, созданныйLeadUid) при сохранении фиксированных корректировок фазы-0
· kamo-internal
Индикатор доступности в реальном времени на кнопке Lead Credits
Зеркало индикатора NavPri Leads на /leads «Lead Credits» действие: зеленая / красная точка статуса (зеленый = свинец теперь приемлем через FFA или кредит, красный) = нет) и зеленый импульс/свечение, когда приемлемый кредитный лид ждет. Обнаженный Сигнал SPEND RECEIVE LEAD CREDIT (leadAlert.active). Зеленый фиксируется здесь (это действие титров), в отличие от тематико-агностической белой NavPri моргает.
· kamo-internal
Live NavPri свинцовое предупреждение — зеленая / красная точка, мигание, пожарное всплывающее окно, отделка края
- LeadAlertProvider (глобальный, установленный на уровне NavPri): WS-управляемый /доступный-резюме; управляет всем состоянием - значок NavPri Leads: зеленая точка (может принимать) / красная (не может); заметное моргание, когда кредитный лид приемлемо. Полностью на SPEND RECEIVE LEAD CREDIT — без индикатора/всплывающего окна. - NewLeadPopup: центрально-экранное всплывающее пламя (пламя + анимированные пламя), Accept Lead / Not Now (оба) отключенные 1s), автозакрытия с 1s выцветают, если бассейн дренируется, без заднего плана. Пожары только на новом приемлемом кредитном лиде, когда статус nav-top доступен. LiveEdgeTrim: kamo-маркетинг LIVE сверкает вокруг всех 4 краев экрана, пока всплывающее окно всплывает. Все в прямом эфире через NATS->STOMP.
· SecurityService
GET/leads/available-summary for the live NavPri lead alert
Совокупность приемлемости абонента на всех активных рынках (комментарии + кредит / FFA /) Правила ежедневных расходов. Возврат: Приемлемый / Приемлемый Кредит / заблокированные Комментарии / TopCredit. Возвращает все ложные для участников без SPEND RECEIVE LEAD CREDIT.
· kamo-shared-library
Настойчивый позвоночник для шаблонов импорта, Runs & per-row записей
Заменяет пустые заглушки с реальными классами @Entity (смоделированными на Прецедент LeadIntake*: UUID id, gen random uuid, временные метки DB-default, statusId + @Transient enum) plus repositories, so manual-import templates, past-import История и несостоявшийся импорт могут сохраняться: - LeadImportTemplate (+ headerHashOrdered/Unordered fingerprint, useCount, soft-delete) - Ведущий ИмпортТемпллэппинг **************************** ДЖОН - LeadImport (заголовок заголовка: подсчеты, моментальный снимок отображения, шаблон / родословная источника) - LeadImportRecords (за неуспешный ряд: rawRowJson, status, errorMessage) - LeadImportRecordStatus enum + 4 хранилища Таблицы создаются KamoInitializer (ddl-auto) в следующем запуске; услуги остаются ddl-auto:none.
· kamo-internal
/account-style header+tabs, /leads Card containers, правое торможение
- LeadsCreditLayout: заголовок героя градиента + вкладки подчеркивания (матчи / счет); фильтры + сетка в закругленной карте в стиле свинца; Доступная вкладка закрыта SPEND RECEIVE LEAD CREDIT - Управлять кредитной сеткой, заполненной членами, владеющими SPEND RECEIVE (матрица продукта Member x, create-on-edit; /leads-style filter container - /leads/available guards on the right; /leads/allotments redirect is right-aware - Ведущая точка зрения: действие Mark-as-Requires-Reassignment (право MARK) + переназначение назначения ПОСЛЕДОВАНИЕ ЛИДЫ МАНУАЛЬНО RoleRightType.ts: 3 новых права
· SecurityService
Маркировка с правом MARK; Manage-Credits возвращает участников с правом Spend/Receive
LeadAcceptController: переназначение маркировки требует MARK LEADS REQUIRES ASSIGNMENT. LeadCreditController.manage: возвращает правообладателей (SPEND RECEIVE LEAD CREDIT).
· kamo-shared-library
3 Права CRM + Члены-с правом запроса
Ролевой тип: SPEND RECEIVE LEAD CREDIT(147), **************** REASSIGN LEADS MANUALLY(149) в разделе CRM. **************************** для перечисления членов, обладающих правом. Самоисцеление на загрузке SecurityService; никаких изменений схемы.
· InitializerService
Codify §4.2 Requirement-writer Single-live Partic-Unique backstop (недоступная ссылка)
Максимальное требование ONE LIVE per (loan file uid, img doc type id, party) Ячейка обязательств. **************** Идемпотенция прикладного уровня не может уловить одновременное двойное обоснование (оба считывают нулевой срок жизни; состояние +) Требование INSERT к различным таблицам → отсутствие конфликта CRDB. Это частично уникальное делает одножизненную структуру. Зеркала **************************** DocumentRequirementStatus — @Enumerated (STRING). Идемпотент создает, если не существует.
· kamo-shared-library
**************************** (Принятая сегодня колонка)
Counts ведет участника, принятого через кредит / FFA для продукта поставщика с момента UTC (для локального старта дня). Используется компанией LeadAcceptController/leads/available.
· kamo-internal
Кредитный интерфейс назначения лидов (доступен / история / кредиты)
- /leads/available: сетка поставщиков/продуктов в режиме реального времени, атомный приемник (маршруты к лидеру), Комментарий-ворот заблокирован состоянием, строки оживляют момент, когда лидер может претендовать - /leads/history: live credit + временной график назначения с фильтром типа события - /leads/credits: MANAGE CREDITS-gated grouped grid; ∞-capable Daily Allotment / Max Баланс / Max Daily Spend / Кредитный баланс, Активный / Отложенный переключатель, распределение, живое моргание - Shared LeadsCreditLayout (nav вкладки + рыночные подзадачи + состояния «CRM не настроен» + быстрые советы) - STOMP hook (useCreditAssignmentWebSocket) over MediaService; - 10 прокси маршрутов; **************************** /leads/allotments перенаправляется tsc — noEmit: 0 ошибок в новых файлах.
· kamo-shared-library
Добавить ******************* для решения реестра половину
doc 11 §5.3 Шаг 4 / §10 Полнота аудита — каждый реестр mint / receipt /supersede выдает спаренный WORM AiDecision + LoanIdentifierEvent. Это добавляет AiFunction **************** Колонна была зарезервирована. Аддитивная константа только числа (нет удара версии, нет DDL: ai функция не имеет значения) Whitelist CHECK — применяется универсальная подметка enum-CHECK.
· DaemonService
Ежедневное распределение работы по аудиту (ежечасно, в часовом поясе на члена)
Записи FORFEITED строки для участников с капельными наделами, которые не вошли в их Завершился местный день. Идемпотент, уступает Грантным рядам. Компиляции чистые (mvn).
· MediaService
Передача кредитов/назначение NATS в STOMP
Подписывайтесь на security.leads.> и security.credits.>, отражая каждый в /topic/... CRM front-end обновляет сеть Leads-Available, поля Manage-Credits и историю в прямом эфире. Компиляции чистые (mvn).
· SecurityService
Кредитный лид-назначение API ****************
- LeadAcceptController: GET/leads/available, POST/leads/accept (атомный, с комментариями, FFA + credit), GET/leads/uncommented, POST/leads/{id}/mark-reassignment, GET/leads/history - LeadCreditController (MANAGE CREDITS): GET/credits/manage grid, POST/credits/distribute, POST/PATCH/credits/allotments, POST/credits/daily-grant - CreditAssignmentPublisher: события NATS в орг-споте **************************** - PostAuth***Service: предоставление ежедневного ассигнования на первый вход в местный день участника Компиляции чистые (mvn).
· kamo-shared-library
Услуги по организации кредитования (shared-lib)
- LeadAllotment.isInfiniteBalance (∞ кредитный баланс → mint-on-the-fly at accept) - CreditLeadAssignmentService: Atomic Accept-Lead (select→lock→recheck→claim, multi-instance) безопасный), обход FFA, ворота комментариев, маркировка для переназначения (история MARKED FOR REASSIGNMENT) - DailyAllotmentService: суточный грант (идемпотент) на единицу времени + аудит на убыток - CreditAssignmentHistoryService: унифицированное назначение + график жизненного цикла кредита ********************** (общая кредитная история) Содержит существующий Lead*Service; никакая логика не дублируется. Компиляции чистые (mvn).
· kamo-shared-library
Помощники по совместному использованию кредитов
********************** — «Должен комментировать» принятие другого ведущего врата (комментарий = неснятый MediaObj участника в свинцовом потоке) **************** — кредит на продукт продавца Расходы на кредитный поток Accept Lead Компиляции чистые (mvn). Аддитивный; потребляется службой приема-оркестрации (следующий).
· kamo-shared-library
Модель данных о кредитном лид-назначении (shared-lib)
- Свинец: требуется флаг назначения + помеченный ForReassignmentAt/By (недействительный; нулевой актер = продавец/импорт API) ********************** + eventTypeForKey маршрутизация + дескриптор реестра ********************** (общая история через общий конструктор предикатов) RoleRightType.MANAGE CREDITS (146, CRM group) — самоисцеление на загрузке SecurityService - Ежедневное распределение Субъект гранта + репозиторий (один раз в день грант, идемпотент) ********************** дневная граница - LeadRepository: присваиваемое количество пула/привлекательность + пессимистично-замкнутая претензия (безопасный многофакторный) - LeadCreditRepository: баланс продукта на одного поставщика + ежедневные расходы Только аддитивная схема (новые нулевые/дефолтные столбцы + новая таблица). Повторное использование существующих **************************** Компиляции чистые (mvn).

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