Режим разработки: служебные разделы, робот НРД и имитации — только по признаку из ключа лицензии

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
zuevav
2026-09-17 18:15:18 +03:00
parent 698956092b
commit 627dbca6af
22 changed files with 157 additions and 38 deletions
+8
View File
@@ -53,8 +53,16 @@ type License struct {
// пока действует договор (ContractUntil). У офлайн-ключей оба поля пустые.
InstallID string `json:"install_id,omitempty"`
ContractUntil time.Time `json:"contract_until,omitempty"`
// DevUntil — режим разработки до указанного момента: сервер лицензий временно включает его
// установке, чтобы разработчики bj подключились к серверу клиента (тестовые разделы и
// инструменты). Указатель — чтобы у ключей без режима разработки подписанный JSON не менялся.
DevUntil *time.Time `json:"dev_until,omitempty"`
}
// DevMode — действует ли режим разработки на момент now.
func (l *License) DevMode(now time.Time) bool { return l.DevUntil != nil && now.Before(*l.DevUntil) }
// Token — лицензия + подпись. Именно это вводит клиент (одна base64-строка
// или JSON-файл). Формат: base64url(payload).base64url(sig) — компактно.
type Token struct {