> ## Documentation Index
> Fetch the complete documentation index at: https://veriqa.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Архитектура

> Строительные блоки коннектора Veriqa.

Veriqa — мост между тремя сторонами: вашим приложением, OpenIddict и доверенным мобильным
каналом пользователя. Он инициирует транзакцию входа или подтверждения, связывает её с
выбранным каналом, ждёт подтверждения пользователя и завершает аутентификацию в OpenIddict.

```mermaid theme={null}
flowchart LR
    App["Клиентское приложение<br/>(web / desktop)"]
    subgraph Veriqa["Veriqa (в вашем хосте)"]
        direction TB
        TE["Движок<br/>транзакций"]
        CA["Адаптеры<br/>каналов"]
        OI["Интеграция<br/>OpenIddict"]
    end
    Channel["Доверенное приложение<br/>MAX / Telegram / WhatsApp /<br/>другие мессенджеры / Email"]
    OIDC["OpenIddict"]

    App <--> TE
    TE --- CA
    TE --- OI
    CA <--> Channel
    OI --> OIDC
    OIDC -.->|результат auth| App
```

## Строительные блоки

<CardGroup cols={2}>
  <Card title="Оркестрация транзакций" icon="arrows-rotate">
    Каждый вход, регистрация или подтверждение — это транзакция со своим контекстом,
    correlation id, состоянием, временем жизни, выбранным каналом, внешней идентичностью,
    привязкой локального аккаунта и журналом аудита.
  </Card>

  <Card title="Адаптеры каналов" icon="comments">
    Каждый мессенджер или мобильный канал — отдельный адаптер / коннектор. Из коробки:
    MAX, Telegram, WhatsApp, другие мессенджеры и Email — спроектированы расширяемыми.
  </Card>

  <Card title="Интеграция OpenIddict" icon="cube">
    Завершает primary login, второй фактор, step-up подтверждение и linking канала — без
    замены OpenIddict.
  </Card>

  <Card title="Завершение" icon="circle-check">
    Приложение завершает поток через callback, live-обновление по SignalR или polling после
    подтверждения транзакции.
  </Card>

  <Card title="Связывание аккаунта и канала" icon="link">
    Соединяет идентичность пользователя в мессенджере с локальным аккаунтом, по желанию
    подключая канал уведомлений тем же действием.
  </Card>

  <Card title="Журнал аудита" icon="clipboard-list">
    Каждая транзакция несёт журнал аудита изменений состояния и подтверждений.
  </Card>
</CardGroup>

## QR-оркестрация

Veriqa генерирует короткоживущую точку входа для каждой транзакции. QR-код не несёт логику
аутентификации — он лишь открывает нужный bridge-flow для выбранного канала и связывает
пользователя с текущей транзакцией.

<Card title="Как эти блоки работают в потоке входа" icon="diagram-project" href="/docs/ru/concepts/auth-flow">
  От старта транзакции до выпуска токенов OpenIddict — по шагам.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.