fcded5fe17
Из клиентской сборки убрана проектная документация, читавшаяся прямым `strings`:
архитектура обмена с НРД, протокол событий bj↔bj2depo (FTV_M2M, 41 КБ), схема
базы, криптография, QUIK МНП. Это самая крупная и самая дешёвая утечка знаний —
её не нужно было даже декомпилировать.
Файлы перенесены в web/templates/internal/ (выпадают из общего embed-глоба) и
встраиваются только при `go build -tags internaldocs` (internaldocs_on.go).
По умолчанию (клиентский релиз, build-release.sh) страницы заменяются заглушкой
«доступно на портале» (internaldocs_off.go); ссылки на них в индексе справки
показываются под {{if internalDocs}}. Операторские страницы (ручной ввод, робот,
внешние системы, API ЛК) остаются — они нужны на месте.
Клиентская сборка: -27 тыс. символов внутренней документации, «Согласовано
10.09», «Для программиста Fancy», «как устроен обмен» → 0 совпадений.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
29 lines
2.0 KiB
Go
29 lines
2.0 KiB
Go
//go:build !internaldocs
|
|
|
|
package lkgateway
|
|
|
|
// internaldocs_off.go — КЛИЕНТСКАЯ сборка (по умолчанию, без флага internaldocs):
|
|
// технические страницы справки (архитектура обмена с НРД, протокол событий
|
|
// bj↔bj2depo, схема базы, криптография, QUIK МНП) в бинарь НЕ попадают. Это
|
|
// проектная документация, из которой видно, как устроен продукт; операторам
|
|
// депозитария она не нужна, а конкуренту дала бы готовую карту. Внедренцам
|
|
// эти страницы доступны в нашей сборке (go build -tags internaldocs) и на портале.
|
|
|
|
import "html/template"
|
|
|
|
// internalDocsBuilt — технических страниц справки в этом бинаре нет.
|
|
const internalDocsBuilt = false
|
|
|
|
const internalDocsStub = `<a href="/admin/help" class="muted">← все инструкции</a>
|
|
<h1>Техническая документация</h1>
|
|
<p class="muted" style="max-width:640px;line-height:1.6">Подробные технические материалы (архитектура обмена с НРД, протоколы интеграции, схема базы данных) не входят в рабочую сборку. Они доступны специалистам внедрения на портале <b>lic.zetit.ru</b> и в документации, переданной по договору.</p>`
|
|
|
|
// parseInternalDoc — заглушка: содержимого нет, показываем, куда обратиться.
|
|
func parseInternalDoc(_ string) (*template.Template, error) {
|
|
t := template.New("layout.html").Funcs(templateFuncs)
|
|
if _, err := t.ParseFS(templatesFS, "web/templates/layout.html"); err != nil {
|
|
return nil, err
|
|
}
|
|
return t.New("content").Parse(internalDocsStub)
|
|
}
|