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
27 lines
915 B
Go
27 lines
915 B
Go
//go:build internaldocs
|
|
|
|
package lkgateway
|
|
|
|
// internaldocs_on.go — сборка ДЛЯ НАС (флаг internaldocs): технические страницы
|
|
// справки встроены. Собирать: go build -tags internaldocs.
|
|
|
|
import (
|
|
"embed"
|
|
"html/template"
|
|
)
|
|
|
|
//go:embed web/templates/internal/*.html
|
|
var internalDocsFS embed.FS
|
|
|
|
// internalDocsBuilt — технические страницы справки вшиты в этот бинарь.
|
|
const internalDocsBuilt = true
|
|
|
|
// parseInternalDoc — страница внедрения (layout из основного FS + сам документ).
|
|
func parseInternalDoc(name 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.ParseFS(internalDocsFS, "web/templates/internal/"+name)
|
|
}
|