Подписка и лицензирование
Система лицензирования 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"
Лицензии машин vs. Лицензии репозиториев
Активация машины
Активация машины выполняет двойную роль:
- На стороне сервера: учёт плавающих слотов машин, проверки активации на уровне машины, связывание поддерживаемой аккаунтом выдачи репозитория с конкретной машиной
- На диске:
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 ГБ - платные планы: лимит плана или контракта
Ограничения по умолчанию для платных планов:
| План | Плавающие лицензии | Размер репозитория | Ежемесячные выдачи лицензий репозитория |
|---|---|---|---|
| Community | 2 | 10 ГБ | 500 |
| Professional | 5 | 100 ГБ | 5 000 |
| Business | 20 | 500 ГБ | 20 000 |
| Enterprise | 50 | 2048 ГБ | 100 000 |
Специфические для контракта лимиты могут повышать или понижать эти значения для конкретного клиента.
Что происходит при создании, запуске, остановке и перезапуске репозитория
Создание и клонирование репозитория
При создании или клонировании репозитория:
rdcубеждается, что ваш токен подписки доступен (запускает аутентификацию по коду устройства при необходимости)rdcактивирует машину и записывает подписанный блоб подписки на удалённую машину- Лицензия машины проверяется локально (она должна быть в течение 1 часа после активации)
- После успешного создания
rdcвыдаёт лицензию репозитория для нового репозитория
Эта поддерживаемая аккаунтом выдача учитывается в вашем ежемесячном использовании выдач лицензий репозитория.
Запуск, остановка и удаление репозитория
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 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: немедленный сбой — идентичность репозитория не совпадает с установленной лицензией
Эти случаи немедленного сбоя не расходуют автоматически поддерживаемые аккаунтом вызовы обновления или выдачи.
Ежемесячные выдачи лицензий репозитория
Эта метрика подсчитывает успешную активность выдачи лицензий репозитория, поддерживаемой аккаунтом, в текущем UTC-календарном месяце.
Включает:
- первичную выдачу лицензии репозитория
- успешное обновление лицензии репозитория, возвращающее вновь подписанную лицензию
Не включает:
- неизменённые пакетные записи
- неудавшиеся попытки выдачи
- неотслеживаемые репозитории, отклонённые до выдачи
Если вам нужен клиентский просмотр использования и истории выдачи лицензий репозитория, используйте портал аккаунта. Если вам нужна инспекция на стороне машины, используйте rdc subscription activation status -m и rdc subscription repo status -m.