{{define "content"}} {{if .NSDLink.Configured}}

Связь с НРД {{if eq .NSDLink.State "ok"}}работает{{else if eq .NSDLink.State "err"}}сбой{{else if eq .NSDLink.State "warn"}}с перебоями{{else}}нет данных{{end}} {{if can "operate"}}
{{end}}

{{if .Probe}}

Запрос проверки отправлен — ответ НРД обычно приходит за 20–60 с. Страница обновится сама.

{{end}}

Зелёный — только при свежем подтверждении от НРД, а не при отсутствии ошибок. {{if .NSDLink.Ago}}Последний ответ НРД — {{.NSDLink.Ago}}.{{end}}

{{range .NSDLink.Segs}}{{end}}
УчастокСостояниеЧем проверяем
{{.Title}} {{.Text}}{{with .Detail}}
{{.}}{{end}}
{{if eq .Key "igw"}}bj обращается к шлюзу каждые 30 с{{else if eq .Key "nsd"}}журнал шлюза: ответы НРД на опросы входящих{{else if eq .Key "m2m"}}раз в час (и по кнопке «Проверить связь сейчас») запрос справочника участников M2M и ответ на него — весь путь до сервиса M2M и обратно{{else}}подтверждение доставки каждого отправленного пакета{{end}}

За последние сутки с {{.StripFrom}}, отрезок — 10 минут

{{range .Strip}}
{{.Title}}{{range .Cells}}{{end}}{{.Bad}}
{{end}}
работает перебои сбой нет данных
{{if .Fails}}

Не доставлены в НРД

{{range .Fails}}{{end}}
ПереводПричинаПервая попыткаПопыток
{{slice .GUID 0 8}} {{.Text}} {{.FirstAt.Format "02.01 15:04"}} {{.Attempts}} {{if .GaveUp}}автоповтор остановлен (прошли сутки){{else}}отправится сам, когда НРД ответит{{end}}{{if can "operate"}}
{{end}}
{{end}}
{{end}}

Статус системы — детально

{{range .Checks}} {{end}}
ПодсистемаСостояниеСообщениеДетали
{{.Name}} {{if .OK}}OK{{else}}FAIL{{end}} {{.Message}} {{.Detail}}

Проверка выполнена в {{.CheckedAt.Format "15:04:05 02.01.2006"}}.

{{/* Диагностика: службы, здоровье фоновых компонентов, справочник, тестовые прогоны (раньше — Настройка → Диагностика) */}}

Службы

Ядро и модули работают отдельными службами: если служба модуля не запущена, его раздел в bj отвечает ошибкой связи. Здесь видно состояние и можно перезапустить службу, не заходя на сервер.

{{if devOn}}{{end}}{{range .Units}} {{if devOn}}{{end}} {{end}}
СлужбаЧто делаетСостояниеС
{{.Unit}}{{.Title}} {{if .OK}}работает{{else}}не работает{{if devOn}}: {{.State}}{{with .Sub}} / {{.}}{{end}}{{with .Result}} ({{.}}){{end}}{{end}}{{end}} {{if .Since}}{{.Since}}{{else}}—{{end}}

Здоровье сервиса

Фоновые компоненты под самоконтролем: при сбое перезапускаются автоматически, при зависании — перезапуск всего сервиса и запись в «Новости». Ниже — живой статус.

{{if .Health}}
{{range .Health}} {{end}}
КомпонентСостояниеПоследняя отметкаПоследняя ошибка
{{healthLabel .Name}} {{if .Healthy}}работает{{else}}не отвечает{{end}} {{dur .Age}} назад {{if .LastErr}}{{.LastErr}}{{else}}—{{end}}
{{else}}

Компоненты ещё не зарегистрированы (сервис только запущен).

{{end}}

Справочник участников M2M

Справочник участников M2M из НРД: по нему bj узнаёт код участника по ИНН контрагента. bj запрашивает его сам; кнопка — запросить сейчас.

Ответ НРД приходит через 30–60 секунд.

{{if devOn}}

Тестовый пакет роботу НРД

Робот MC0012500000 эмулирует вторую сторону перевода. Выберите сценарий — bj-server отправит эталонный запрос через шлюз НРД, ответ придёт во входящие. Требуется настроенный шлюз НРД и ключ подписи.

Ответ робота — асинхронно (~30-60 сек) во входящие шлюза НРД.

Сквозной тестовый прогон (mock/реальный)

Заявка с предзаполненными данными через всю цепочку до финального статуса.

{{if .LastTest}}
Последний прогон
Статус{{if .LastTest.OK}}✓ успешно{{else}}✗ не прошёл{{end}}
FSM-статус{{.LastTest.FinalStatus}}
ClaimID{{.LastTest.ClaimID}} {{if .LastTest.ClaimID}}→ карточка{{end}}
Сообщение{{.LastTest.Message}}
{{end}}
{{end}}

DEPO: что нужно bj

Снимок объектов bj в базе DEPO: трансферные таблицы и процедуры FTV_M2M* (даты изменения), зависимости поставки Fancy, права логина bj, счётчики по статусам. Данных клиентов в снимке нет. bj снимает его раз в сутки и хранит историю — по ней видно, что и когда меняли в DEPO.

Снять снимок сейчас (JSON)
{{if devOn}}{{/* дорожная карта разработки — только в режиме разработки */}}

Что подключается на следующих этапах

PostgreSQL (схема m2m_core)M2-шаг-3: pgx-репозиторий вместо MemoryRepository. Миграция готова — migrations/m2m-core/001__deals.sql.
crypto-service · Валидата PKCS#11M4: установить АПК «Валидата Клиент L» (zpki, zsdk), выставить BJ_CRYPTO_PROVIDER=validata и путь к libvdpkcs11.so. Проверка — Health PKCS#11 должна вернуть provider=validata, ok=true.
nsd-adapter · ИШ НРДM3: установить ИШ, выставить BJ_NSD_PROFILE=guest-gost или иной, BJ_NSD_IGW_URL=http://localhost:8080. Без этого сейчас используется nsdadapter/mock с эмуляцией ответов через 3 сек.
Реальный ЛК (ESIA Finance)M4: согласовать docs/lk-contract/v1/openapi.yaml с командой ЛК, выставить BJ_LK_CALLBACK_URL на реальный адрес. Сейчас callback идёт в встроенный lk-emulator.
{{end}} {{end}}