Подписка и лицензирование
Система лицензирования Rediacc состоит из трёх взаимосвязанных компонентов:
accountподписывает права и отслеживает использованиеrdcвыполняет аутентификацию, запрашивает лицензии, доставляет их на машины и применяет во время выполненияrenet(среда выполнения на машине) проверяет установленные лицензии локально без обращения к серверу аккаунта
На этой странице объясняется, как эти части взаимодействуют при локальных развертываниях.
Что делает лицензирование
Лицензирование контролирует две разные вещи:
- Учет доступа к машинам через плавающие лицензии
- Авторизацию среды выполнения репозитория через лицензии репозитория
Они связаны, но являются разными артефактами.
Как работает лицензирование
account является источником истины для планов, переопределений контрактов, состояния активации машин и ежемесячных выдач лицензий репозиториев.
rdc работает на вашей рабочей станции. Он авторизует вас на сервере аккаунта, запрашивает необходимые лицензии и устанавливает их на удаленные машины через SSH. При выполнении команды репозитория rdc убеждается, что необходимые лицензии на месте, и проверяет их на машине во время выполнения.
Обычный поток выглядит так:
- Вы проходите аутентификацию с помощью
rdc subscription login - Вы выполняете команду репозитория, например
rdc repo create,rdc repo upилиrdc repo down - Если необходимая лицензия отсутствует или истекла,
rdcзапрашивает её уaccount rdcзаписывает подписанную лицензию на машину- Лицензия проверяется локально на машине, и операция продолжается
См. rdc vs renet для понимания разделения рабочая станция/сервер, и Репозитории для жизненного цикла репозитория.
Для автоматизации и ИИ-агентов используйте токен подписки с ограниченной областью вместо входа через браузер:
rdc subscription login --token "$REDIACC_SUBSCRIPTION_TOKEN"
Вы также можете передать токен напрямую через переменные окружения, чтобы CLI мог выдавать и обновлять лицензии репозитория без интерактивного входа:
export REDIACC_SUBSCRIPTION_TOKEN="rdt_..."
export REDIACC_ACCOUNT_SERVER="https://www.rediacc.com/account"
Лицензии машин и лицензии репозиториев
Активация машины
Активация машины выполняет двойную роль:
- На стороне сервера: учет плавающих слотов машин, проверки активации на уровне машины, связывание поддерживаемой аккаунтом выдачи репозитория с конкретной машиной
- На диске:
rdcзаписывает подписанный блоб подписки в/var/lib/rediacc/license/machine.jsonво время активации. Этот блоб проверяется локально для операций подготовки (rdc repo create,rdc repo fork). Лицензия машины действительна в течение 1 часа с момента последней активации.
Лицензия репозитория
Лицензия репозитория — это подписанная лицензия для одного репозитория на одной машине.
Она используется для:
rdc repo resizeиrdc repo expand— полная проверка, включая срок действияrdc repo up,rdc repo down,rdc repo delete— проверка с пропуском срока действияrdc repo push,rdc repo pull,rdc repo sync— проверка с пропуском срока действия- автозапуск репозитория при перезапуске машины — проверка с пропуском срока действия
Лицензии репозитория привязаны к машине и целевому репозиторию. Rediacc усиливает эту привязку метаданными идентичности репозитория. Для зашифрованных репозиториев это включает LUKS-идентичность основного тома.
На практике:
- активация машины отвечает на вопрос: «может ли эта машина подготавливать новые репозитории?»
- лицензия репозитория отвечает на вопрос: «может ли этот конкретный репозиторий работать на этой конкретной машине?»
Ограничения по умолчанию
Размер репозитория зависит от уровня прав:
- Community: до
10 GB - платные планы: лимит плана или контракта
Ограничения по умолчанию для платных планов:
| План | Плавающие лицензии | Размер репозитория | Ежемесячные выдачи лицензий репозитория | Срок действия сертификата делегирования (по умолч./макс.) |
|---|---|---|---|---|
| Community | 2 | 10 GB | 500 | 15d / 30d |
| Professional | 5 | 100 GB | 5 000 | 60d / 120d |
| Business | 20 | 500 GB | 20 000 | 90d / 180d |
| Enterprise | 50 | 2048 GB | 100 000 | 120d / 365d |
Специфические для контракта лимиты могут повышать или понижать эти значения для конкретного клиента. Срок действия сертификата делегирования также жестко ограничен значением subscription.expiresAt + 3 дня льготного периода, поэтому для ежемесячных подписок сертификаты естественным образом выравниваются по платежному циклу. Полные правила см. Цепочка лицензий и делегирование - Политика сроков действия.
Пользователи канала Edge получают удвоенные лимиты Community без дополнительной оплаты (репозитории 20 GB, 1 000 выдач/месяц, 4 машины). Платные планы доступны только на канале Stable. Подробнее см. Каналы выпуска.
Что происходит при создании, запуске, остановке и перезапуске репозитория
Создание и клонирование репозитория
При создании или клонировании репозитория:
rdcубеждается, что ваш токен подписки доступен (при необходимости запускает аутентификацию по коду устройства)rdcактивирует машину и записывает подписанный блоб подписки на удаленную машину- Лицензия машины проверяется локально (она должна быть выдана не более 1 часа назад). Лицензия машины также применяет ограничение размера репозитория для плана, блокируя создание, если запрошенный размер превышает лимит.
- После успешного создания
rdcвыдает лицензию репозитория для нового репозитория
Эта поддерживаемая аккаунтом выдача учитывается в вашем ежемесячном использовании выдач лицензий репозитория. Каждая лицензия содержит email и название компании владельца аккаунта, которые записываются в лог при проверке лицензии renet-ом.
Запуск, остановка и удаление репозитория
rdc проверяет установленную лицензию репозитория на машине, но пропускает проверку срока действия. Подпись, идентификатор машины, GUID репозитория и идентичность всё равно проверяются. Пользователи никогда не теряют доступ к управлению своими репозиториями, даже с истёкшей подпиской.
Изменение размера и расширение репозитория
rdc выполняет полную проверку лицензии репозитория, включая срок действия и ограничения размера.
Перезапуск машины и автозапуск
Автозапуск использует те же правила, что и rdc repo up — срок действия пропускается, поэтому репозитории всегда перезапускаются свободно.
Лицензии репозитория используют модель длительного срока действия:
refreshRecommendedAt— мягкая точка обновленияhardExpiresAt— блокирующая точка
Если лицензия репозитория устарела, но ещё не достигла жесткого истечения срока, среда выполнения может продолжать работу. Как только достигается жёсткое истечение срока, rdc должен обновить её для операций resize/expand.
Другие операции с репозиторием
Операции просмотра списка репозиториев, получения информации о репозитории и монтирования не требуют проверки лицензии.
Проверка статуса и обновление лицензий
Вход пользователя:
rdc subscription login
Вход для автоматизации или ИИ-агента:
rdc subscription login --token "$REDIACC_SUBSCRIPTION_TOKEN"
Для неинтерактивных сред установка REDIACC_SUBSCRIPTION_TOKEN является наиболее простым вариантом. Область действия токена должна быть ограничена только операциями подписки и лицензии репозитория, которые нужны агенту.
Показать статус подписки, поддерживаемой аккаунтом:
rdc subscription status
Показать детали активации машины для одной машины:
rdc subscription activation status -m hostinger
Показать установленные детали лицензии репозитория на одной машине:
rdc subscription repo status -m hostinger
Обновить активацию машины и пакетно обновить лицензии репозитория:
rdc subscription refresh -m hostinger
Репозитории, обнаруженные на машине, но отсутствующие в локальной конфигурации rdc, отклоняются при пакетном обновлении. Они сообщаются как ошибки и не классифицируются автоматически.
Принудительно обновить лицензию репозитория для существующего репозитория:
rdc subscription refresh repo --name my-app -m hostinger
При первом использовании лицензированная операция с репозиторием или резервным копированием, которая не находит пригодной лицензии репозитория, может автоматически инициировать передачу авторизации аккаунта. CLI печатает URL авторизации, пытается открыть браузер в интерактивных терминалах и повторяет операцию один раз после успешной авторизации и выдачи.
В неинтерактивных средах CLI не ожидает подтверждения браузера. Вместо этого он предлагает передать токен с ограниченной областью через rdc subscription login --token ... или REDIACC_SUBSCRIPTION_TOKEN.
Для первоначальной настройки машины см. Настройка машины.
Поведение в офлайн-режиме и истечение срока действия
Проверка лицензии происходит локально на машине и не требует активного подключения к серверу аккаунта.
Это означает:
- работающей среде не нужно активное подключение к аккаунту при каждой команде
- все репозитории всегда могут запускаться, останавливаться и удаляться даже с истёкшими лицензиями — пользователи никогда не теряют доступ к управлению своими репозиториями
- операции подготовки (
create,fork) требуют действующей лицензии машины, а операции роста (resize,expand) требуют действующей лицензии репозитория - действительно истёкшие лицензии репозитория должны быть обновлены через
rdcперед resize/expand - подписи лицензий проверяются по встроенному публичному ключу; отключить проверку подписи невозможно
Активация машины и лицензии среды выполнения репозитория — это отдельные поверхности. Машина может быть неактивна в состоянии аккаунта, тогда как некоторые репозитории всё ещё имеют действующие установленные лицензии. В таком случае проверяйте обе поверхности отдельно, не предполагая, что они означают одно и то же.
Поведение при восстановлении
Автоматическое восстановление намеренно ограничено:
missing:rdcможет авторизовать доступ к аккаунту при необходимости, пакетно обновить лицензии репозитория и повторить один разexpired:rdcможет пакетно обновить лицензии репозитория и повторить один разmachine_mismatch: немедленный сбой с предложением повторно выдать лицензию из текущего контекста машиныrepository_mismatch: немедленный сбой с предложением явно обновить лицензии репозиторияsequence_regression: немедленный сбой как проблема целостности/состояния лицензии репозиторияinvalid_signature: немедленный сбой как проблема целостности/состояния лицензии репозиторияidentity_mismatch: немедленный сбой — идентичность репозитория не совпадает с установленной лицензией
Эти случаи немедленного сбоя не расходуют автоматически поддерживаемые аккаунтом вызовы обновления или выдачи.
Сертификаты делегирования для on-premise
Для on-premise и изолированных (air-gapped) развертываний вышестоящий сервер аккаунта выдает сертификат делегирования, авторизующий вашу on-premise установку подписывать лицензии собственным ключом Ed25519. Сертификат ограничивает on-premise лимитами плана и создает цепочку с защитой от подделки.
Ключевые моменты для владельцев подписки:
- Один активный сертификат на подписку. Каждая on-premise установка применяет ежемесячные и на-машину квоты по собственному локальному реестру, поэтому наличие нескольких установок умножало бы эффективную квоту без возможности сверки. Клиентам, которым нужны production + staging + DR, необходимо приобрести по одной подписке на каждую установку.
- Срок действия по умолчанию на основе уровня (15d / 60d / 90d / 120d) и максимальные значения (30d / 120d / 180d / 365d) — см. таблицу лимитов выше.
- Самообслуживание через клиентский портал. Владельцы и администраторы организации могут создавать, обновлять и отзывать сертификаты делегирования по адресу
/account/delegation-certs. Страница видна всем клиентам независимо от уровня плана — различаются только лимиты. - Автообновление поддерживается через однократную настройку, которая выпускает API-токен с областью
delegation:renewдля использования on-premise при вызовах обновления к upstream. - Обновление в изолированной среде поддерживается через подписанный манифест запроса обновления, который администратор on-premise скачивает, передает offline на upstream, а upstream обрабатывает для выдачи нового сертификата.
Оперативную настройку см. On-Premise установка - Лицензирование для изолированных развертываний, а криптографическую схему см. Цепочка лицензий и делегирование.
Ежемесячные выдачи лицензий репозитория
Эта метрика подсчитывает успешную активность выдачи лицензий репозитория, поддерживаемой аккаунтом, в текущем UTC-календарном месяце.
Включает:
- первичную выдачу лицензии репозитория
- успешное обновление лицензии репозитория, возвращающее вновь подписанную лицензию
Не включает:
- неизменённые пакетные записи
- неудавшиеся попытки выдачи
- неотслеживаемые репозитории, отклонённые до выдачи
Если вам нужен клиентский просмотр использования и истории выдачи лицензий репозитория, используйте портал аккаунта. Если вам нужна инспекция на стороне машины, используйте rdc subscription activation status -m и rdc subscription repo status -m.