Анкета участника M2M: отправка в НРД через ИШ пакетом #M2MPF
НРД открыл приём анкеты (M2MTransferParticipantForm) в пром-контуре. По формату НРД анкета — отдельный тип ЭД M2MPF: тег <package> = "#" + первые 5 символов имени типа ЭД → "#M2MPF", businessLine=MOST (как и остальные M2M-сообщения; на ИШ <107.0.0.904 businessLine опускается). Подпись — боевым ГОСТ-контейнером на стороне ИШ. - nsdadapter/router.go: тип PackageM2MParticipantForm "#M2MPF"; KindParticipantForm теперь маппится на него (был ошибочно Assets_investment). - lkgateway/participant_form.go: действие send_igw — упаковка анкеты через igw.PackXML(..., "#M2MPF") и отправка igwClient.SendPackage в канал профиля (в боевом контуре — prod-gost). Кнопка «Отправить через шлюз (боевой ИШ)»; письмо на M2MOST@nsd.ru оставлено запасным каналом. Статус готовности ИШ на странице. - lkgateway/server.go: проброс igwClient/igwChannel в registerParticipantForm. Образец — sendHandbookRequest (#M2MHR) через тот же ИШ. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XG3zNMMf2LMoDpXo22mwMX
This commit is contained in:
@@ -232,9 +232,9 @@ func NewServer(cfg ServerConfig) (*Server, error) {
|
||||
registerSetCallback(mux, svc, rc)
|
||||
registerSeedListing(mux, store)
|
||||
registerHandbookRequest(mux, igwClient, igwChannel)
|
||||
registerChainTest(mux, rc, igwClient != nil) // «Проверить всю цепочку» (мастер, глава «Запуск»)
|
||||
registerParticipantForm(mux, rc) // анкета участника M2M (регистрация в НРД, participant_form.go)
|
||||
registerClientProfile(mux, rc) // профиль клиента: выгрузка эталона и предзаполнение (client_profile.go)
|
||||
registerChainTest(mux, rc, igwClient != nil) // «Проверить всю цепочку» (мастер, глава «Запуск»)
|
||||
registerParticipantForm(mux, rc, igwClient, igwChannel) // анкета участника M2M (регистрация в НРД, participant_form.go)
|
||||
registerClientProfile(mux, rc) // профиль клиента: выгрузка эталона и предзаполнение (client_profile.go)
|
||||
|
||||
return &Server{
|
||||
cfg: cfg,
|
||||
@@ -305,10 +305,10 @@ func (s *Server) Run(ctx context.Context) error {
|
||||
// Все фоновые горутины — под supervise: паника ловится recover(), пишется
|
||||
// в лог и в ленту, горутина перезапускается. Один сбой не роняет сервис.
|
||||
go superviseLoop(ctx, "consume-decisions", s.rc, s.consumeDecisions)
|
||||
go superviseLoop(ctx, "igw-watch", s.rc, s.igwWatchLoop) // сторож ИШ НРД: оповещения и автоперезапуск
|
||||
go superviseLoop(ctx, "units-watch", s.rc, s.unitsWatchLoop) // службы модулей и ключей Валидаты: письмо администратору
|
||||
go superviseLoop(ctx, "igw-watch", s.rc, s.igwWatchLoop) // сторож ИШ НРД: оповещения и автоперезапуск
|
||||
go superviseLoop(ctx, "units-watch", s.rc, s.unitsWatchLoop) // службы модулей и ключей Валидаты: письмо администратору
|
||||
go superviseLoop(ctx, "igate-share", s.rc, s.igateShareSyncLoop) // папки шлюза «через домен»: список доступа = группы и сотрудники bj
|
||||
go handbookLoop(ctx, s.rc) // справочник участников M2M с сервера лицензий (для установок без шлюза НРД)
|
||||
go handbookLoop(ctx, s.rc) // справочник участников M2M с сервера лицензий (для установок без шлюза НРД)
|
||||
|
||||
// Поллер входящих от НРД (только в реальном режиме ИШ): забирает
|
||||
// ответы робота/контрагента и применяет их через ApplyDecision.
|
||||
|
||||
Reference in New Issue
Block a user