Commit Graph

15 Commits

Author SHA1 Message Date
fontvielle 21d5f33394 1С: проверка поручений МНП перед отправкой в НРД
Часть модуля onec-back, по умолчанию выключена, включается в настройках
(«Проверка поручений в 1С»). Исходящий перевод после блокировки бумаг в
МНП ждёт решения 1С и в НРД не уходит, пока 1С не подтвердит каждое
поручение; при отказе bj снимает поручения в QUIK с причиной из 1С и
отклоняет перевод в журнале и кабинете клиента.

- onec.instr / onec.instr_queue / onec.set_decision в базе bj: 1С читает
  очередь и пишет решение под логином onec_bj (только эти права); чтение
  очереди отмечает связь с 1С.
- bj-onec-admin (root, через bj-keymedia): логин onec_bj, вход только с
  IP 1С по TLS (pg_hba.conf), listen_addresses, ufw; revoke закрывает вход.
- onecLoop: отправка подтверждённых, отказы, снятие клиентом в QUIK,
  поручения из терминала, сроки решения и потеря связи — оповещения.
- Карточка заявки: блок «Проверка 1С», решение оператора вместо 1С.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-22 20:13:59 +03:00
fontvielle 76e6f82369 HTTPS: адрес без номера порта — 443 и 80
«Сервер: HTTPS» → «Адрес без номера порта»: bj слушает 443 (тот же HTTPS) и
80 (переход на https://имя/), переходы и адреса — без «:8443». Право на
порты <1024 — drop-in systemd AmbientCapabilities=CAP_NET_BIND_SERVICE
через root-помощника (bj-system-admin ports on|off, bj перезапускается).
Нет права/порт занят — bj работает по 8443, в настройках видна причина.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-22 13:33:42 +03:00
fontvielle 219ed656a2 Время сервера: часы, пояс и «Синхронизировать сейчас» в начале раздела «Сервер»
- живые часы сервера (сверка раз в 30 с), пояс, синхронизация, источник времени
  и расхождение с ним, сверка с часами компьютера администратора
- выбор часового пояса прямо на странице (раньше — только в мастере)
- «Синхронизировать сейчас»: bj-system-admin sync — разовая коррекция часов
  (chrony makestep, ntpd -gq, systemd-timesyncd); серверов нет или не отвечают,
  а свои не заданы — bj подбирает ВНИИФТРИ
- мастер, шаг 12: кнопка «Синхронизировать» — та же синхронизация

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 23:17:44 +03:00
fontvielle 41d33fefad ИШ 110.0.997 в обновлении + полный бэкап и откат ИШ
- Одобрен дистрибутив ИШ 110.0.997 (deploy/release/igate-approved): клиенты
  получают его компонентом igate-dist, bj-server обновляет ИШ сам (igateAutoUpgrade)
  после применения обновления. Проверено на 28: установка 107.0.930 → 110.0.997
  штатным bj-igate-admin, каналы сохранены, круг #M2MHR → #M2MTH с НРД TEST3 и
  приём ответа поллером bj — работают.
- Бэкап перед установкой/обновлением ИШ стал полным: кроме /opt/nsd/igate и дампа
  базы — данные /var/lib/igate (без флешки с ключом и кэша), юнит, обёртка запуска,
  версия. Раньше откатиться было нечем: igate-dist.zip перезаписывается новой версией.
- bj-igate-admin rollback / rollback-now: возврат программы, данных и базы ИШ из
  последнего бэкапа (pg_restore от postgres — с мандатными метками Astra). После
  отката пришедшая версия не ставится автоматически (/var/lib/bj/igate-autoupgrade-skip),
  следующая — снова да. Проверено на 28: 110.0.997 → 107.0.930 за 40 с, обмен с НРД работает.
- «Шлюз НРД»: кнопка «Откатить ИШ к <версия>», когда есть полная резервная копия.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 19:59:19 +03:00
zuevav afc5776347 Индикатор «Шлюз НРД», проверка ключа ИШ, папки шлюза по сети, сотрудники из домена, переключатель QUIK в настройках
- журнал ИШ: номер процесса выравнивается пробелами — опросы НРД не распознавались (серый индикатор)
- «Проверить СКЗИ и ключ»: Валидата, датчик случайных чисел, подпись профилем ИШ (а не старый bj-crypto);
  индикатор «Криптографии» — по готовности ключа; карточка автозагрузки УЦ — только для разработки
- шаг «Шлюз НРД»: папки обмена по сети (Samba): логин/пароль, ручная настройка не трогается
- «Учётные записи»: необязательно — подключить домен, проверить связь, найти сотрудника и добавить с ролью;
  роль из bj действует, пока группы домена с ролями не сопоставлены
- настройка QUIK МНП: «Только чтение / Чтение и запись», тонкая настройка цикла свёрнута
- индикатор «Обновления» — только когда есть что обновить; «Мастер настройки» в меню и в настройках

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-10-07 00:24:19 +03:00
zuevav cf1da4a0a9 Ключ: датчик случайных чисел Валидаты инициализируется из мастера — человек водит мышью в браузере
На сервере без экрана окно Валидаты «Пожалуйста, двигайте мышью» никто не видел, ключ в тихом режиме
падал с 0x80090022 (ИШ: «Не найден ключ ЭП (E0700009)»), пересборка справочника — тоже.
bj-validata-rng: тихая проверка датчика (testcsp -silent -random), сеанс на виртуальном экране,
движения из поля мастера повторяются в окне Валидаты (XTEST), прогресс — по полосе её окна.
Установщик ключа проверяет датчик до записи на флешку. zpki.ini: Count = числу профилей, блоки подряд.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-10-06 19:53:18 +03:00
zuevav f0dec0c238 Мастер настройки — 4 главы (Сервер, Учёт и организация, НРД, Запуск) вместо 10 шагов: в пути только нужное этой установке — без лицензии учёта DEPO, QUIK и модулей их шагов нет, сделанное установщиком (база, Валидата) показано строкой; общая навигация «Назад/Далее»; раздел «Время и сеть» с часовым поясом; модули по лицензии (кабинет, ЕСИА Финанс, экспорт QUIK, НПР) с переходом в раздел и возвратом в мастер; «Проверить всю цепочку» (DEPO, QUIK, пробная блокировка по желанию, подпись, НРД); готовые письма в НРД, ARQA и администратору DEPO; ИШ с образа без интернета
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-10-05 18:04:29 +03:00
zuevav 765d7b5994 Первичная настройка, часть 4: HTTPS веб-интерфейса (:8443, самоподписанный сертификат на имя и адреса сервера, свой сертификат, перенаправление браузера с HTTP); сервер времени из настроек (ntpd/chrony/timesyncd — bj-system-admin); постоянный адрес — bj-network (netplan try с откатом), вопрос при первой загрузке с образа; раздел «Сервер: HTTPS, время, сеть»; HTTPS в итоговой проверке; адреса https:// на экране установщика и консоли
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-10-05 16:43:23 +03:00
zuevav 4332e3309b Первичная настройка, часть 3: установка ИШ из bj (скачать с nsd.ru или из файла; без графики: keyring, xvfb, dbus; база, служба) — проверено чистой установкой на Ubuntu 22.04; два контура НРД: каналы TEST3 и боевой в ИШ (адреса и отпечатки УЦ из документа НРД об ИШ 107), свои ключи (мастер ключа — выбор контура, профиль только к каналу контура), переключение bj между контурами с базой DEPO контура и подтверждением для боевого; папка входящих и слежение за связью — по активному контуру; пакеты ИШ в установщике и образе
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-10-05 16:35:53 +03:00
zuevav 6aecac1cc8 Резервное копирование bj на SMB: настройки (хранилище, расписание, хранение), копия сейчас, список и проверка копий; восстановление из копии на шаге 1 мастера; таймер bj-backup, smbclient в установщике
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-10-05 14:55:38 +03:00
zuevav 2edc83e614 Модуль, снятый с лицензии, отключается один раз: служба остановлена (bj-keymedia unit-disable), одно оповещение, в списках не показывается; вернули в лицензию — служба включается
Также: версия файла, совпадающего с выпуском, записывается (нет ложного «новее»); признак неудачной проверки отдельно от результатов установки; окно обновления само перезагружает страницу.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 22:43:34 +03:00
zuevav 405061ef8d Сторож ИШ НРД: проверка каждые 30 с, оповещение через 2 мин недоступности, автоперезапуск igate (до 3 попыток, раз в 20 мин), оповещения «не помог»/«восстановлен», красный индикатор в шапке; igate в списке служб root-демона
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 13:56:37 +03:00
zuevav 414227796b Настройка: состояние служб ядра и модулей с перезапуском из админки
Модули работают отдельными службами (bj-npr, bj-quikexport, bj-lk), и когда
служба лежит, раздел модуля отвечает ошибкой связи, а администратору
предлагалось идти в консоль за systemctl status. Теперь в разделе «Обновления»
карточка «Службы»: состояние каждой службы, с какого времени, причина отказа
и кнопка «Перезапустить».

Состояние читаем обычным systemctl show — прав не требует. Перезапуск делает
root-демон bj-keymedia (тот же канал, что у установки обновлений) по закрытому
списку служб: чужую службу и сам демон отсюда не тронуть.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-18 19:28:58 +03:00
zuevav 2908697363 feat(update): независимые обновления компонентов bj
- internal/release/components.go: список компонентов (ядро bj-server, криптосервис, bj-lk,
  bj-npr, bj-quikexport) с путём и службой, установленные версии в components.json,
  расчёт обновлений по версии каждого файла и sha256 (без отката, модули — только если
  уже установлены на сервере)
- cmd/bj-component-install: root-установщик — сам перепроверяет подпись манифеста ключом
  /etc/bj/update.pub и sha256, копия прежнего файла, перезапуск только затронутых служб
- updater: bj-server (без прав root) скачивает в update-staging и передаёт установку
  root-воркеру (действие component-install); установка в фоне
- настройки: таблица компонентов с версиями, «Обновить» и «Обновить всё»
- bj-release: версия файла из <файл>.version; bj-keymedia-worker: component-install

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 20:16:36 +03:00
zuevav 59fc774f08 chore(deploy): обновление ИШ v107, keymedia, экспортёр QUIK, fail2ban для bj
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 19:41:11 +03:00