Настройки: «Кабинет клиента» (наш модуль) и «ЕСИА Финанс» (внешняя платформа) — отдельные разделы

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
This commit is contained in:
zuevav
2026-09-18 14:46:20 +03:00
parent 4f4f70c530
commit bdaef4dc39
6 changed files with 26 additions and 18 deletions
+5 -5
View File
@@ -102,7 +102,7 @@ func lkDistFiles(s Settings, coreURL string) ([]struct {
BJ_MODE=%s
# Адрес ядра bj, к которому обращается кабинет (только для режима direct):
%s
# Ключ доступа модуля — из настроек ядра, раздел «Личный кабинет». Оставьте пустым,
# Ключ доступа модуля — из настроек ядра, раздел «Кабинет клиента». Оставьте пустым,
# чтобы ввести его в установщике; заполните — если ставите без браузера.
BJ_KEY=
# Адрес и порт, на которых кабинет слушает (за ним обычно стоит nginx с TLS):
@@ -186,7 +186,7 @@ echo "Проверка службы: curl -s http://127.0.0.1:8099/health"
спросит способ связи с ядром и ключ доступа, проверит связь и предложит
завести администратора кабинета. Настройки он сохранит в файл lk.json
(каталог LK_DATA, права 0600). Ключа в этом архиве нет — берите его из
настроек ядра, раздел «Личный кабинет».
настроек ядра, раздел «Кабинет клиента».
4. Проверка службы: curl -s http://127.0.0.1:8099/health — "ok":true.
Установка без браузера: заполните BJ_KEY (и BJ_URL для режима direct) в lk.env и
@@ -194,7 +194,7 @@ echo "Проверка службы: curl -s http://127.0.0.1:8099/health"
Настройки (файл /etc/bj-lk/lk.env):
BJ_URL — адрес ядра bj: %s
BJ_KEY — ключ доступа модуля, он же в настройках ядра, раздел «Личный кабинет»
BJ_KEY — ключ доступа модуля, он же в настройках ядра, раздел «Кабинет клиента»
LISTEN — адрес и порт кабинета (по умолчанию 127.0.0.1:8099)
LK_TITLE — заголовок кабинета: %s
После изменения файла: sudo systemctl restart bj-lk
@@ -220,7 +220,7 @@ echo "Проверка службы: curl -s http://127.0.0.1:8099/health"
ждёт, пока ядро само подключится к нему по имени %s, заберёт запросы
клиентов и вернёт ответы. Наружу из сети депозитария идёт только
исходящее соединение, порты открывать не нужно. В настройках ядра
(«Личный кабинет» → связь) выберите «Ядро подключается к кабинету» и
(«Кабинет клиента» → связь) выберите «Ядро подключается к кабинету» и
укажите адрес этого сервера.
Сеть и безопасность:
@@ -236,7 +236,7 @@ echo "Проверка службы: curl -s http://127.0.0.1:8099/health"
страница не запрашивает;
Обновления. Кабинет обновляется отдельно от ядра: новую версию скачивайте на
странице настроек ядра, раздел «Личный кабинет», и ставьте тем же install.sh —
странице настроек ядра, раздел «Кабинет клиента», и ставьте тем же install.sh —
настройки при этом сохраняются. Версии кабинета и ядра должны быть совместимы;
если ядро старше, кабинет покажет предупреждение администратору.
@@ -14,7 +14,7 @@
<p>В обоих случаях ключа в архиве нет — его вводят в установщике, открыв адрес кабинета в браузере. Способы связи с ядром (кабинет → ядро или ядро → кабинет) одинаковы для всех вариантов.</p>
<h3>Шаг 1. Ключ и архив</h3>
<p>Настройки → «Личный кабинет» → «Кабинет клиента на своём сервере»: создайте ключ доступа (он показан на странице целиком — его нужно ввести в установщике) и скачайте архив. В архиве — исполняемый файл, служба systemd, файл настроек службы, установщик и README. Ключа в архиве нет.</p>
<p>Настройки → «Кабинет клиента» → «Кабинет клиента на своём сервере»: создайте ключ доступа (он показан на странице целиком — его нужно ввести в установщике) и скачайте архив. В архиве — исполняемый файл, служба systemd, файл настроек службы, установщик и README. Ключа в архиве нет.</p>
<h3>Шаг 2а. PHP-хостинг: файлы в каталог сайта</h3>
<p>Создайте в панели хостинга домен (например, <code>lk.депозитарий.ru</code>) с сертификатом, скопируйте <code>index.php</code> и <code>.htaccess</code> в его каталог и откройте адрес в браузере — запустится установщик (шаг 3). Настройки ретранслятор положит в каталог <code>bj-lk-data</code> рядом с сайтом, если хостинг разрешает туда писать, иначе — в <code>data</code> внутри сайта, закрытый правилами <code>.htaccess</code>. Если у хостинга nginx без <code>.htaccess</code> — правила из README архива.</p>
@@ -12,7 +12,8 @@
<button data-sec="users"><span class="nico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="8" r="3.5"/><path d="M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6"/><circle cx="17" cy="9" r="2.5"/><path d="M15.5 14.5c2.8.3 5.5 2.5 5.5 5.5"/></svg></span>Пользователи<span class="ind {{if .Users.Open}}warn{{else}}ok{{end}}"></span></button>
<button data-sec="crypto"><span class="nico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="11" width="14" height="9" rx="2"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/></svg></span>Криптография<span class="ind {{if .Settings.Crypto.Profile}}ok{{else}}warn{{end}}"></span></button>
<button data-sec="nsd"><span class="nico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21h18M4 21V10M20 21V10M3 10l9-6 9 6M8 21v-7M12 21v-7M16 21v-7"/></svg></span>НРД<span class="ind {{if .Settings.NSD.IGWBaseURL}}ok{{else}}warn{{end}}"></span></button>
<button data-sec="lk"><span class="nico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="5" width="18" height="14" rx="2"/><circle cx="9" cy="11" r="2"/><path d="M6 16c.4-1.4 1.6-2.2 3-2.2s2.6.8 3 2.2"/><path d="M15 10h4M15 13h3"/></svg></span>Личный кабинет <span class="muted" style="font-size:10px;font-weight:500">ЕСИА Финанс</span><span class="ind {{if .Settings.LK.PublicURL}}ok{{else}}warn{{end}}"></span></button>
<button data-sec="cabinet"><span class="nico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="9" r="3.2"/><path d="M6 19c.6-3 3-4.6 6-4.6s5.4 1.6 6 4.6"/><rect x="3" y="4" width="18" height="16" rx="2"/></svg></span>Кабинет клиента<span class="ind {{if .Settings.LK.APIKey}}ok{{else}}warn{{end}}"></span></button>
<button data-sec="lk"><span class="nico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="5" width="18" height="14" rx="2"/><circle cx="9" cy="11" r="2"/><path d="M6 16c.4-1.4 1.6-2.2 3-2.2s2.6.8 3 2.2"/><path d="M15 10h4M15 13h3"/></svg></span>ЕСИА Финанс<span class="ind {{if .Settings.LK.PublicURL}}ok{{else}}warn{{end}}"></span></button>
<button data-sec="tests"><span class="nico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M9 3h6M10 3v6l-5 8.5A2 2 0 0 0 6.7 21h10.6a2 2 0 0 0 1.7-3.5L14 9V3"/><path d="M8 15h8"/></svg></span>Диагностика</button>
<button data-sec="alerts"><span class="nico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.7 21a2 2 0 0 1-3.4 0"/></svg></span>Оповещения<span class="ind {{if or .Settings.Alerts.SMTP.Enabled .Settings.Alerts.Zabbix.Enabled}}ok{{end}}"></span></button>
<button data-sec="update"><span class="nico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20V8M6 12l6-6 6 6"/><path d="M5 4h14"/></svg></span>Обновления{{if .Settings.Update.Available}}<span class="ind warn"></span>{{end}}</button>
@@ -614,9 +615,10 @@ function hbBind(inp,box,list,onPick){
</section>
{{/* ============ ЛИЧНЫЙ КАБИНЕТ ============ */}}
<section class="settings-section" id="sec-lk">
<h1>Личный кабинет <span class="muted" style="font-size:16px;font-weight:500">· ЕСИА Финанс</span></h1>
<p class="muted" style="margin:-8px 0 16px">Интеграция с платформой ЛК <strong>ЕСИА Финанс</strong>: адрес для клиента, приём заявок M2M, возврат статуса и подключение к API (тест/бой). НРД настраивается отдельно — в разделе «НРД».</p>
{{/* ============ КАБИНЕТ КЛИЕНТА (наш модуль bj-lk) ============ */}}
<section class="settings-section" id="sec-cabinet">
<h1>Кабинет клиента</h1>
<p class="muted" style="margin:-8px 0 16px">Наш личный кабинет для клиентов депозитария: модуль <code>bj-lk</code> на своём сервере или PHP-хостинге, связь с ядром, учётные записи клиентов и сотрудников. Интеграция с платформой ЕСИА Финанс — отдельный раздел.</p>
{{template "verline" (.Versions.Get "bj-lk")}}
<div class="card" id="sec-lk-dist">
@@ -728,6 +730,12 @@ function hbBind(inp,box,list,onPick){
</div>
</div>
</section>
{{/* ============ ЕСИА ФИНАНС (внешняя платформа ЛК) ============ */}}
<section class="settings-section" id="sec-lk">
<h1>ЕСИА Финанс</h1>
<p class="muted" style="margin:-8px 0 16px">Интеграция с внешней платформой личного кабинета <strong>ЕСИА Финанс</strong>: адрес для клиента, приём заявок M2M, возврат статуса и подключение к API (тест/бой). Наш собственный кабинет настраивается в разделе «Кабинет клиента».</p>
<div class="card">
<h2><span class="dot {{if .Settings.LK.PublicURL}}ok{{else}}warn{{end}}"></span>Личный кабинет — интеграция</h2>
<p class="muted">Адрес ЛК (стенд/бой), куда клиент подаёт заявку M2M. Заявка приходит к нам по контракту <code>POST /api/v1/back_office/claims/</code>, а мы возвращаем статус через <strong>Callback URL</strong>.</p>