Commit Graph

179 Commits

Author SHA1 Message Date
zuevav e043e7c371 Мастер, шаг 3 DEPO: подключение → трансферные таблицы → обработка (job); по умолчанию джобу SQL Agent создаёт bj разовым логином администратора
- редакция SQL Server определяется (Express/PostgreSQL — обработку запускает bj);
- создание джобы и таблиц — логином администратора, который не сохраняется;
- настройки обмена с DEPO открыты без пароля перспективных модулей, если QUIK МНП в лицензии.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 22:11:42 +03:00
zuevav 775b4214b6 Обновление с индикатором хода (этапы, скачанные МБ, перезапуск ядра); в мастере ключ продукта не просится повторно
- /admin/setup/update/progress: этап, байты, целевая версия ядра; ApplyUpdate/ApplyBundle отчитываются;
- окно в layout: формы установки обновлений отправляются скриптом, окно ждёт перезапуска ядра и сверяет версию;
- шаг 1 мастера: «Ключ продукта введён», смена ключа — под ссылкой.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 22:04:08 +03:00
zuevav b9ca30bef1 Образ: подтверждение стирания — выбор пункта в меню загрузки (меню ждёт без таймера), вместо вопроса yes/no в журнале установщика
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 21:27:27 +03:00
zuevav a6c3511349 Образ: установка без вопросов (DHCP, весь диск) с одним подтверждением стирания; приветствие на консоли не перерисовывается без нужды
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 20:14:10 +03:00
zuevav d7d7e2105f Образ Ubuntu: слой обновлений (full-upgrade + ядро) и пакеты bj на диске — установка почти не качает из сети
- deploy/iso/build-ubuntu-updates-layer.sh: слой ubuntu-server-minimal.ubuntu-server.bj.squashfs поверх
  «Ubuntu Server» (оригинальные слои и среда установщика не меняются) + debs/ для bj-installer;
- build-iso-ubuntu.sh LAYER=<каталог>: слой — источник установки по умолчанию, старые ядро HWE и прошивки
  из репозитория образа убираются;
- bj-installer: пакеты из /var/lib/bj/debs ставятся с диска, иначе — из репозитория.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 19:46:04 +03:00
zuevav 76c11b7247 Установщик: без ключа не перечислять модули, которых может не быть в лицензии
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 18:10:56 +03:00
zuevav ce98ca137f Мастер по порядку без пропусков; шаг 5 — ключ организации и автообновление сертификатов НРД; в образ кладутся все файлы ядра
- мастер запоминает пройденный шаг и продолжает со следующего, выполненные шаги показываются с пояснением;
- шаг 5: мастер установки ключа + описание автоматического ведения сертификатов НРД (контуры не смешиваются);
- образ: bj-installer и crypto-service.jar в комплекте; установщик пропускает недостающие файлы, кроме ядра.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 18:10:10 +03:00
zuevav 9ed5b037a8 release.Plan: версию ядра подставлять только для bj-server — установщик с образа обновляется
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 18:06:03 +03:00
zuevav dccd414643 Обновления: криптосервис ставится сам при любой лицензии; модули вне лицензии в списке не показываются
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 18:04:20 +03:00
zuevav 350c673764 release.IsNewer: сравнивать все части версии — номер сборки за день значим
Раньше 2026.09.24.11 и 2026.09.24.5 считались одной версией, и обновление в пределах
одного дня не предлагалось. Исправление выпускается как 2026.09.25.1, чтобы его увидели
установки со старым сравнением.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 18:01:00 +03:00
zuevav fdd70c06dd Обновления несут установщик: bj-installer — компонент ядра, refresh-system переписывает службы и скрипты; мастер предлагает обновиться сразу после ввода ключа
Правки установки приезжают обновлением с сервера лицензий, образ ISO пересобирать не нужно.
Прежний установщик обновлений bj-installer не знает — он откладывается и ставится после
перезапуска bj-server (ensureSplitModules).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 17:44:28 +03:00
zuevav 222699168d Мастер: при установленной Валидате провайдер выбирается сам
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 17:27:26 +03:00
zuevav 27bf8f6414 Мастер: пояснение к уже выполненным шагам, Валидата определяется сама без пути PKCS#11
Шаг «База bj» показывает, что базу создал установщик; шаг DEPO — почему пропущен.
Поле libvdpkcs11.so убрано (в Валидате 6.0 такого модуля нет, работа через bj-crypto).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 17:26:41 +03:00
zuevav 9ee2641431 Первая загрузка: без повтора адреса после итога установщика
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 17:21:17 +03:00
zuevav 0ceabbeed8 Первая загрузка: вопросы после cloud-init, консоль без сообщений загрузки, подсказки по шагам
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 17:20:25 +03:00
zuevav e75de4f27d Образ Ubuntu: вариант раскладки для каждой из двух (us,ru) — иначе автоустановка падала с InconsistentMultiLayoutError; md5sum.txt пересчитывается
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 16:41:55 +03:00
zuevav 7ecfee524d Образ Ubuntu: без ядра HWE и его пункта меню (2,08 → 1,78 ГБ)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 15:50:00 +03:00
zuevav d9451dcc48 bj-installer: поддерживаемые ОС — Ubuntu 22.04 LTS и Astra Linux SE (Debian 13 не поддерживает СКЗИ «Валидата Клиент L»)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 15:41:47 +03:00
zuevav 9b963eb0b9 Образ на Ubuntu 22.04 LTS (автоустановка) со встроенной СКЗИ «Валидата Клиент L»: сборщик build-iso-ubuntu.sh, шаг установщика «СКЗИ Валидата» (из комплекта образа, с совместимой libldap 2.4), установщик принимает Ubuntu 22.04
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 15:29:42 +03:00
zuevav dac8038ce8 Мастер: видимые вторичные кнопки (текст на белом фоне), номера шагов в кнопках навигации
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 14:24:27 +03:00
zuevav ea87958f43 Мастер настройки: после создания администратора — сразу в мастер; 7 шагов (лицензия, база bj, учёт DEPO, Валидата, сертификаты, шлюз НРД, проверка) с пояснениями что/зачем/где взять, каждый можно пропустить; исправлено имя поля URL ИШ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-09-24 14:23:12 +03:00
zuevav 2350fdf5aa firstboot: генерация пароля без обрыва канала (tr: ошибка записи)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 14:12:24 +03:00
zuevav f37f02c35e Корень сайта / → рабочая страница (/admin/, /first-run до настройки) вместо 404
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 14:10:18 +03:00
zuevav 1616b11eb5 Вход AD: причина отказа по подкоду контроллера домена (блокировка, истёкший пароль, смена пароля, отключена…)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 14:06:46 +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 54404a8f6d Тест DEPO: сверка шлюза с DEPO как в бою (иностранные ISIN, остаток, счёт…): зачисление — отказ с кодом, списание — перевод не отправляется; режим «без проверки» для отладки джобы; статус «остановлен»
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 13:42:30 +03:00
zuevav 8dbd97238a Образ: учётные записи ОС root_bj (sudo) и user_bj задаются автоматически, пароли генерируются при первой загрузке (можно ввести свои) и показываются один раз на итоговом экране; firstboot на bash (read -t/-p)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 13:15:49 +03:00
zuevav c88b0bb428 Установка: bj-server сам создаёт /run/bj (без bj-crypto служба падала с 226/NAMESPACE); шаг лицензии не показывается при установке с образа; причина при сбое запуска; Debian — один администратор с sudo, логин задаётся явно; логин на экране приветствия
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 12:35:40 +03:00
zuevav 854f93205b Тест DEPO — только в режиме разработки (страница и пункт меню)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 12:21:03 +03:00
zuevav cd51722e91 Прогон в DEPO: у копии перевода свои REFERENCE (раньше повторялись исходные — в DEPO задваивались строки M2M-поручений)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 12:20:02 +03:00
zuevav d964bdb005 Тест DEPO: строки бумаг — список из кода (slice в шаблоне ломал форму)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 12:10:28 +03:00
zuevav 627f52cf5d Тест DEPO: SEC_CODE = код бумаги в НРД (кодировщик НДЦ), как в настоящем пакете; предупреждение, если кода нет
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 12:05:29 +03:00
zuevav f4f11dd583 Тестирование DEPO: сценарии перевода (клиент и бумаги из DEPO, исход по каждой бумаге) с имитацией ответов НРД, пошаговая запись в FTV_M2M* и показ результата джобы; без отправки куда-либо, кроме базы DEPO; оповещения по тестовым GUID не рассылаются
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 12:01:33 +03:00
zuevav b2f8652381 Расширение Fancy DEPO для M2M (процедуры Фонтвьель, снято 23.09): тексты, зависимости, параметры для установки у другого клиента
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-23 16:48:25 +03:00
zuevav cb67875f7b bj-installer: создавать /etc/bj перед записью update.pub (песочница/установка с образа)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-23 16:31:04 +03:00
zuevav 14303b2522 build-iso: имена файлов ядра — из подписанного манифеста (payload), ошибка при отсутствии
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-23 16:28:37 +03:00
zuevav d7a1aec0f0 bj-welcome: создавать /etc/issue.d
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-23 09:01:17 +03:00
zuevav 492e226e54 Установка: приветственный экран консоли (bj-welcome: адрес веб-входа и состояние, всегда), ядро с образа без ключа продукта (--bundle), ключ продукта на первой веб-странице, повтор вопроса при каждой загрузке
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-23 08:53:13 +03:00
zuevav 925c516e1e Первичная настройка: реквизиты депозитария (счёт/код/раздел в НРД, организация) определяются из базы DEPO (Fancy) и подставляются в пустые поля карточек «ИШ НРД»/«Организация» и мастера — человек проверяет и сохраняет
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-23 08:43:57 +03:00
zuevav 199a0f5cc9 DEPO: LINK_NUMBER строк = депозитарный счёт НРД; BJ_SERVICE_ERROR и BJ_QUIK_* по строкам (REFERENCE); убраны события на весь GUID — по замечаниям Fancy 22.09
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-23 00:44:29 +03:00
zuevav bb89a56a0c Прогоны в DEPO доступны администратору вне режима разработки (проверка обработки трансферных таблиц)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-22 21:39:08 +03:00
zuevav 3cb956c37b gofmt 2026-09-22 21:33:38 +03:00
zuevav 79d0d6b76c DEPO: тестовый прогон исходящего (копия сделки на реального клиента, имитация решения контрагента, формы 16 и MS010) + список сделок для прогона
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-22 21:33:14 +03:00
zuevav fc9f00a229 DEPO: BJ_RECEIVED и BJ_SENT по строкам (REFERENCE) — джоба bj2depo ищет строку по GUID+REFERENCE для любого события
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-22 21:27:29 +03:00
zuevav 3a4ec0cab8 ISO preseed: таймаут DHCP 60 с (медленные DHCP-серверы), IPv6 10 с
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-22 17:27:05 +03:00
zuevav 375203a78f Документация: реальный boot-тест ISO 2026.09.22.2 (BIOS/UEFI/SecureBoot) и правки меню
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-22 17:17:30 +03:00
zuevav 6e8f7ad37f ISO: латинские подписи меню, свой текст отсчёта, hotkey b, chmod перед записью
По результатам первого реального boot-теста образа (QEMU/OVMF, BIOS + UEFI +
UEFI Secure Boot — все три доходят до меню, наш пункт по умолчанию):
- подписи пунктов латиницей: vesamenu (BIOS) кириллицу не отображает — были
  кракозябры; в grub тот же риск со шрифтом темы;
- подсказка обратного отсчёта своя («Bridge&Join install starts in # seconds»)
  и пишется в конец isolinux.cfg ПОСЛЕ include menu.cfg — внутри menu.cfg
  подменю Advanced повторно включает stdmenu.cfg и перебивало autoboot из txt.cfg;
- горячая клавиша b (i занята родным «Install» в grub);
- без «(Debian 13)» в подписи — обрезалось краем бокса темы UEFI, и так в заголовке;
- chmod u+w перед >> в isolinux.cfg: файлы, извлечённые xorriso из ISO, 0444.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-22 17:16:22 +03:00
zuevav b997d60d12 Документация: образ ISO 2026.09.22 с каналом stable (в 16.09 внутри был beta)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-22 16:58:52 +03:00
zuevav 3bb5e79272 Безопасность: остаток аудита — L2b, L3, L6, L7, L8, L10, L11, M4
- L2b: CSRF для изменяющих запросов админки — проверка Origin (иначе Referer)
  против Host на всех не-GET под /admin (sameOriginRequest в authMiddleware);
  за loopback-прокси учитывается X-Forwarded-Host. Второй слой поверх
  SameSite=Lax, без правки десятков форм настроек.
- L3: /back-to-admin меняет состояние — только POST + csrfOK (форма уже с токеном,
  проверки в обработчике не было).
- L6: EXEC процедуры DEPO по имени из настроек — через execProc с проверкой
  идентификатора (sqlident.go, см. коммит строчных событий).
- L7: сессия просмотра (impersonate) снимает IsAdmin цели — сотрудник не действует
  от имени другого администратора; свои действия — из своей сессии.
- L8: bootstrap администратора кабинета под замком lkBootstrapMu — два
  параллельных запроса не заведут двух админов (TOCTOU).
- L10: allowlist перезапуска служб не пропускает пустое имя.
- L11: ретранслятор — лимит тела проверяется по Content-Length до чтения и
  чтение ограничено RELAY_MAX_BODY+1.
- M4: .htaccess дополнительно запрещает *.lock (код установки), если данные
  оказались в веб-корне; nginx-запрет /data уже в README.

L4 (привязка сессии к сети по умолчанию выкл.) и L9 (косметическая cookie
bj_lk_admin, арбитр — ядро) оставлены как есть, отмечены в отчёте.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-22 16:28:14 +03:00
zuevav 0c081a7857 DEPO: строчные события по депо-поручениям (частичное исполнение пакета)
По ответам программиста Fancy (В. Кокин, 21.09.2026) на 8 вопросов из
docs/fancy-events-partial-m2m.md. Одно депо-поручение (MF010) = одна бумага
пакета, поэтому подача и исход теперь пишутся в DEPO ПО СТРОКАМ с REFERENCE и
сразу по MS010 этой строки, не дожидаясь остальных: пакет может исполниться
частично (Сбер — да, Т-Технологии — отказ). События на весь GUID (пустой
REFERENCE) больше не пишем — переход одновременно с bj2depo.

- BJ_ORDER_SENT / BJ_ORDER_ACCEPTED / BJ_EXECUTED / BJ_ORDER_REJECTED /
  BJ_ORDER_LATE / BJ_CANCELLED — по строке (depoOnOrderLineSent/Result);
  contr_d_id кладём в COMMENT (джобе связка не нужна — по REFERENCE найдёт).
- OrderWatch.Lines — состояние по строкам (contr_d_id → REFERENCE/ISIN/MS010/
  отказ/истечение); объект закрыт, когда MS010 по всем строкам; 30 дней —
  BJ_CANCELLED по каждой незакрытой строке, QUIK-блок снимается по её ISIN.
- Входящий 16/1 хранит ВСЕ contr_d_id (OrderLines) — раньше только первый
  (дефект «входящие отслеживают только первый contr_d_id»). Исходящий 16:
  REFERENCE по ISIN из бумаг M2MTR (outgoingLineRefs, кэш по GUID; svc в deps).
- Карточка: «исполнено частично: N из M» (StatusRu), бейдж warn — как статус
  «частично» в DEPO. Backfill и эмуляция — тоже по строкам.
- Попутно: EXEC процедуры обработчика DEPO — через execProc с проверкой имени
  (sqlident.go), чтобы значение из настроек не стало произвольным T-SQL.

Тесты: TestOrderWatchLinesPartial, TestIncomingOrderLines,
TestOutgoingLineRefsNoRepo; весь пакет зелёный.

РАЗВЁРТЫВАНИЕ — только одновременно с bj2depo (п. 8 ответов Fancy).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-22 16:27:52 +03:00