Что вошло в 0.7.0
Что появилось в самой 0.7.0
Изменения 27–30 октября 2026 года.Безопасность
- Вопрос входа советует отклонить чужой запрос. Поставляемый текст заканчивается фразой
If it was not you, decline the request.Её можно заменить вместе с остальным текстом, см. Veriqa:MessageTemplates. Текст серверного подтверждения задаёте вы, поэтому добавьте фразу в него сами. - В образе сервера с поставляемыми настройками токен бота и токен hop-ссылки больше не попадают в экспортируемые спаны и логи. Для своего хоста см. Наблюдаемость и Безопасность и обработка данных.
- В событии
TransactionCompletedEventна шине RabbitMQ нетSubject, аprompt=noneполучаетlogin_required. Оба изменения описаны ниже, в разделе о проверке при обновлении.
Каналы
- Повторно доставленное входящее событие отбрасывается, если пришло на тот же экземпляр в течение
500 мс. Длину окна задаёт
Veriqa:Channels:InboundDeduplication:Window. - Имя любого канала, кроме Email, переводится и переопределяется строкой
<имя> | channel. - Подсказка канала на окне входа стала видом сообщения
hop-channel-hint. - Вид квитанции зависит только от
ChannelCapabilities.RendersEmoji: списка каналов в ядре больше нет.
Окно входа
Кнопка с длинным именем канала больше не выходит за экран телефона, а кнопки формы добора на узком экране встают в столбец.Документация
Новая страница Мессенджеры, почта и сервисы аккаунтов. На странице 1С-Битрикс первым описан модуль Veriqa из Маркетплейса.Что проверить при обновлении с 0.6.1
Хранилища
- Новые миграции EF Core хранилища транзакций и журнала аудита: примените их при обновлении, см. Хранилища.
- Собственное хранилище перестанет компилироваться: у
ITransactionStoreсемь новых членов без реализации по умолчанию, см. Обновление собственного хранилища. - Собственное хранилище сообщений с вопросом тоже перестанет компилироваться: у
IChannelPromptMessageStoreтри новых члена без реализации по умолчанию:FindAsync,TakeForChannelAsyncиSetPhoneRequestMessageAsync.
Пользователи и входы
subпользователей WhatsApp меняется. Былоwhatsapp:+номер, сталоwhatsapp:{BSUID}— идентификатор, который Meta* выдаёт бизнес-портфелю. Номер больше не служит идентификатором: он остаётся вphone_number, пока его присылает WhatsApp, а вpreferred_usernameлежит имя пользователя WhatsApp. Миграции нет: у существующих пользователей WhatsApp в вашем приложении появится новыйsub.- Параллельные входы одного пользователя: когда пользователь начинает новый вход и приходит в канал с тем же аккаунтом, незавершённые входы этого аккаунта в то же приложение закрываются. Если ваш сценарий держит два входа открытыми одновременно, проверьте его.
prompt=noneполучаетlogin_required. Сессию входа Veriqa не хранит, поэтому такой запрос больше не открывает окно входа: ошибка возвращается на вашredirect_uri. Если клиент продлевает токены тихо, в скрытом iframe, переведите его на refresh token (scopeoffline_access), см. страницу Поддержка OIDC и OAuth 2.0.- Email при
LoginConfirmation.Mode = OnWebPage: письмо входа больше не завершает вход, а только привязывает ящик; вход решает окно входа, «Нет» на нём даётdeclined_by_user.
Каналы и события
- Свой адаптер на C# перестанет компилироваться:
GetDeepLinkAsyncтеперь принимаетDeepLinkRequestвместо идентификатора транзакции. Ядро вызывает его при каждом показе канала и при каждом открытии hop-ссылки, поэтому вызов должен быть идемпотентным и без побочных эффектов, см.GetDeepLinkAsync. ReportOutcomeAsyncполучает ещё иawaiting_claims, а это не итоговое состояние. Перед показом итога проверяйтеTransactionOutcomeNotice.IsTerminal.- Адаптер, зарегистрированный как
telegram,whatsappилиmax, без заданногоRendersEmojiтеперь получает квитанцию без эмодзи. Чтобы сохранить эмодзи, задайтеRendersEmoji = true. - Публичные типы
Veriqa.Core.ChannelAdapter.Pipelineизменились. Если ваш код вызывает их напрямую, обновите вызовы: например,ChannelWebhookPipeline.ProcessInboundResultAsyncтеперьChannelInboundProcessor.ProcessAsync. - Номер телефона — только в формате E.164. Свой или HTTP-адаптер, который отдаёт номер в другом
виде, больше его не передаст. Правило описано в публичном
E164PhoneNumberпакетаVeriqa.Core.Contracts. TransactionCompletedEventна шине RabbitMQ — безSubject. В этом поле лежалsubпользователя в открытом виде, по умолчанию{channel_type}:{channel_user_id}. По сообщению шины пользователя больше не определить: вContext.MaskedChannelUserIdоткрыты только два последних символа, ключом это значение не служит. Если нуженsub, читайте его вITransactionEventHandlerв вашем хосте: тамSubjectпо-прежнему есть. См. Хранилища.- Адрес MAX Bot API по умолчанию теперь
https://platform-api2.max.ru. Если исходящий трафик ограничен списком адресов, добавьте его, см. MAX. - В вопросе входа новая фраза. Своя формулировка
confirmation-promptне получаетIf it was not you, decline the request.сама: добавьте её, если она нужна. Перевод в locale-файле перенесите на новые ключи, в которых есть эта фраза и слот{requested_at}.
Окно входа
ShowQrCodeпо умолчанию —DesktopOnlyвместоAlways: на телефоне вместо QR-кода показаны кнопки каналов. Чтобы сохранить прежний вид, задайте"ShowQrCode": "Always".- Кнопка «Отмена» появится на всех окнах входа. Если вы делали свою через
CustomJsPath, уберите её или выключите встроенную. Title,Instructionи подсказка канала, уже заданные обычным текстом, могут изменить вид: эти тексты теперь читаются как HTML.Terms & Conditionsтеперь показывает «Terms & Conditions», а одиночный<или>проверку не проходит: значение выводится как есть, а в лог уходит предупреждение. Просмотрите свои значения на&,<и>.- Часть встроенных текстов переформулирована. Если вы их переопределяли, сверьте их с Настройкой и кастомизацией.
Формулировки окна входа
Своя формулировка встроенного текста из таблицы ниже, заданная в locale-файле, больше не применяется: прежних ключей нет. Перенесите её на новый ключ:
У подтверждения те же ключи, где
to sign in with {0} заменено на to confirm in {0}, а to sign in
на to confirm. Замена текста одного канала обязана нести слот {0}: туда страница подставляет значок
и имя канала. Полная таблица редакций приведена в разделе
Инструкция следует обеим настройкам.
* Компания Meta признана в России экстремистской организацией; её деятельность в стране запрещена. Instagram и Messenger — её продукты.
0.7.1
Veriqa 0.7.1 опубликована 2 ноября 2026 года. Она меняет текст предзаполненного сообщения при подтверждении и добавляет клиентские приложения в репозитории quickstart.Предзаполненное сообщение подтверждения
Сообщение или письмо, которое пользователь отправляет сам, больше не говорит о входе, когда транзакция — подтверждение. Сообщение теперь звучит, например, какSend this message to continue., а у письма тема
Confirm in {app}: {token} или, без названия приложения, Confirm: {token}. Письмо в один тап больше
не называет Veriqa ни в теме, ни в тексте; приложение названо только в теме.
IChannelMessageTemplates.ResolveAsync, сообщения post-login-* и письма Email теперь читают ещё и
ByType и ByAction, так что формулировка, заданная для типа или действия, доходит и до них.
Примеры
В репозиториях quickstart рядом с ASP.NET Core появились клиентские приложения на Python, Node.js, Go и PHP; каждое использует готовую библиотеку OpenID Connect. См. Вход на сайте через мессенджер.Docker-образ
Docker-образ этой версии работает наlinux/amd64 и linux/arm64. Образы предыдущих версий — только
linux/amd64.
Публичный репозиторий
Папкаdocs/ публичного репозитория теперь называется gallery-and-docs/. README пакета, вышедшего до
0.7.0 включительно, по-прежнему ведёт на старый путь, поэтому на странице этой версии на nuget.org не
открываются картинки и ссылка на галерею.
Что проверить при обновлении с 0.7.0
- Своя формулировка
deeplink-prefill. ВVeriqa:MessageTemplatesформулировка на уровне вида или для одного канала теперь действует только на вход. Для подтверждения объявите её ещё и вByType:confirmation:BySurface:in-channel:ByChannel:{канал}. Своему каналу, в шаблоне которого есть{code}, этот адрес обязателен: без него подтверждение получит поставляемый текст, а кода в нём нет. См.Veriqa:MessageTemplates. - Свои locale-файлы. Ключ вступления письма в один тап теперь
This mail confirms sign-in. Do not change the subject or the body of the mail., а у подтверждения появились свои ключи — см. Текст предзаполненного сообщения. Без перевода они показываются по-английски.