Лицензирование
Лицензирование Mildport — офлайн. Движок проверяет каждый ключ локально по публичному ключу, который вы разворачиваете вместе с ним, поэтому импорты продолжают работать, можете вы нас достичь или нет — в air-gap, во время нашего обслуживания, в воскресный вечер.
Одна и та же лицензия действует везде. Нет отдельного «облачного ключа» и «self-host ключа»: один ключ, одна проверка в нашем облаке и в вашей VPC.
Как это работает
Заголовок раздела «Как это работает»- Вы получаете ключ лицензии на странице Лицензии своего аккаунта Mildport.
- Движок хранит публичный ключ, по которому проверяет —
IMPORT_LICENSE_PUBLIC_KEY, на странице Self-hosting того же аккаунта. - Каждый запрос проверяется локально. Никакого сетевого вызова, никогда.
Ключ несёт тенант, план, лимиты и срок действия, поэтому одно развёртывание может обслуживать много тенантов с разными правами — движок читает всё это из самого ключа.
Облачные ключи обновляются сами
Заголовок раздела «Облачные ключи обновляются сами»Ключи против нашего управляемого облака нарочно короткоживущие (недели, не годы) и обновляются без присмотра: вместе с ключом лицензии вы получаете секрет обновления (его тоже показывают ровно один раз). Ваш сервер вызывает им endpoint обновления по cron — тот же план, те же origin, свежий ключ и срок — и подставляет ключ туда, где вы его встраиваете. Утёкший облачный ключ поэтому умирает сам за дни, без инфраструктуры отзыва и без того, чтобы проверка звонила домой.
Self-host и air-gap развёртывания освобождены по замыслу: их ключи сохраняют длинный срок плана и никогда не должны нас достигать — в движке нет знания об endpoint обновления. Ручная перегенерация также ротирует секрет обновления.
Получить ключ
Заголовок раздела «Получить ключ»Войдите в аккаунт, откройте Лицензии и создайте тенант. Ключ появляется один раз, сразу после выпуска.
Ключ принадлежит встраивающему хосту, в атрибуте license-key виджета (см.
Настройка). Это bearer-учётные данные: обращайтесь с ним как с
API-ключом и не кладите в публичные репозитории.
Продление и истечение
Заголовок раздела «Продление и истечение»Ключи ограничены по времени, и истечение — единственное, что заканчивает жизнь ключа — удалённого выключателя нет, потому что удалённого ничего нет.
- Мы пишем за 30 дней до истечения, на адрес, который ключ создал.
- Продление — один клик: перегенерируйте на странице Лицензии. Вы получаете свежий ключ, текущий действует до своей даты — можно продлить заранее и подменить без простоя.
- После истечения импорты с этим ключом останавливаются. Решение — тот же клик.
Панель показывает обратный отсчёт на любой лицензии в последние 30 дней, так что состояние видно, не дожидаясь письма.
Блокировка по origin
Заголовок раздела «Блокировка по origin»Ключ для браузерного эмбеда можно привязать к разрешённым сайтам. Оставьте список пустым — ключ работает откуда угодно; добавьте origin — браузерные запросы с других мест отклоняются. Серверные вызовы не затрагиваются — это защищает встроенные ключи, которые видит любой, кто откроет исходник страницы.
Задайте список при создании или перегенерации. Поддомены с wildcard — как
https://*.example.com, порты имеют значение.
Отозвать ключ досрочно
Заголовок раздела «Отозвать ключ досрочно»Поскольку проверка офлайн, скомпрометированный ключ нельзя отозвать удалённо. Два рычага:
- Список отзыва — добавьте id лицензии в
IMPORT_LICENSE_REVOKED_IDSна движке (через запятую). Вступит в силу со следующим деплоем, новый публичный ключ не нужен. - Перегенерировать — выпустите свежий ключ из панели и перестаньте раздавать старый. Он действует до истечения — поэтому список есть для срочного случая.
Проверить настройку
Заголовок раздела «Проверить настройку»Preflight говорит, может ли движок вообще проверять ключи, до того как придёт трафик:
pnpm import:self-host-checkИз образа, а не из исходников? Та же проверка встроена:
docker run --rm --env-file .env ghcr.io/capitality-io/mildport-aio \ bun dist/cli/self-host-check.jsВ Kubernetes helm test mildport запускает её внутри кластера.
Дальше: Справочник конфигурации · Доступ к образам