Rotation de licence
Appliquez un bundle de licence renouvelé sans interruption de service.
Lorsque votre licence approche de son expiration, votre équipe Scrydon vous enverra un bundle renouvelé ({ "jwt": "…", "publicKey": "-----BEGIN PUBLIC KEY-----…" }). Ce runbook explique comment l'appliquer.
Aucun redémarrage de pod requis. La licence vit dans la ligne
platform_configde la base de donnéesauth, pas dans un Secret Kubernetes ni dans un conteneur init. La rotation s'effectue depuis l'interface de la plateforme et prend effet immédiatement — le plugin de licence Better-Auth d'api-platformlit la ligne à chaque requête.
Avant de commencer
- Vous disposez du bundle renouvelé (un fichier JSON de la forme
{ "jwt": "…", "publicKey": "-----BEGIN PUBLIC KEY-----…" }). - Un compte administrateur sur la plateforme opérationnelle.
Appliquer le bundle renouvelé
- Connectez-vous à la plateforme en tant qu'administrateur et ouvrez Paramètres → Licence.
- Cliquez sur Mettre à jour la licence.
- Déposez le JSON du bundle renouvelé sur la zone de téléversement, ou collez son contenu dans la zone de texte.
- Confirmez les données affichées (niveau, CPU / RAM / VRAM, expiration). La plateforme vérifie la signature JWT par rapport à la clé publique du bundle avant de le persister.
- Cliquez sur Enregistrer.
La nouvelle licence prend effet immédiatement à la prochaine requête — pas de redémarrage de pod, pas de modification Helm. Le bundle précédent est écrasé dans platform_config.
Conseil : vous souhaitez inspecter le bundle avant de l'appliquer ? Utilisez le Vérificateur de licence intégré au navigateur — il décode le JWT dans votre navigateur et affiche le même résumé de données que l'étape de l'interface.
Vérifier que la nouvelle licence est en vigueur
Après l'enregistrement, la page Paramètres → Licence devrait se rafraîchir avec les nouvelles données. Depuis le CLI, vous pouvez également appeler l'endpoint de licence authentifié sur api-platform :
# Depuis l'intérieur du cluster — utilise votre cookie de session de plateforme existant :
curl -fsS https://app.yourdomain.com/api/auth/license/status \
-H "Cookie: $SCRYDON_SESSION" | jq '{tier, exp, cpu, ram, vram}'Le champ exp doit correspondre à l'expiration du bundle renouvelé.
Que se passe-t-il si un renouvellement est tardif
Le modèle d'application de la licence est chargé à chaud depuis la base de données, donc le mode de défaillance diffère de l'ancien modèle avec conteneur init :
- La licence bénéficie d'une période de grâce intégrée (30 jours par défaut après
exp) pendant laquelle Scrydon continue de fonctionner normalement et affiche une bannière de renouvellement dans l'interface. - Après la période de grâce, les fonctionnalités soumises à licence (selon votre contrat) commencent à retourner une réponse de style 402 avec un message « Renouvelez votre licence ». L'accès en lecture reste généralement disponible ; les chemins d'écriture sont bloqués.
- Aucun pod n'est jamais bloqué au démarrage par une licence manquante ou expirée — l'application de la licence se fait en cours de traitement au moment de la requête, pas au démarrage.
Implication pratique : un renouvellement tardif dégrade la plateforme progressivement après la période de grâce, mais ne bloque pas les opérateurs hors de kubectl ni de la rotation du bundle une fois reçu.
Pré-injecter la licence à l'installation
Pour les nouvelles installations, le même bundle est inséré à la première étape de l'assistant /setup. Vous pouvez également le pré-injecter via les valeurs Helm pour ignorer entièrement l'étape Licence :
# values.customer.yaml
auth:
secrets:
LICENSE: |
eyJhbGciOiJSUzI1NiIs... # bundle.jwt
LICENSE_PUBLIC_KEY: |
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFA... # bundle.publicKey
-----END PUBLIC KEY-----Ces valeurs sont lues une seule fois lors de la première installation pour initialiser la ligne platform_config ; après cela, la base de données est la source de vérité et les entrées de valeurs peuvent être supprimées au prochain helm upgrade sans affecter la plateforme.
Décoder une licence
Si vous devez confirmer le contenu d'un bundle avant de l'appliquer, utilisez le Vérificateur de licence intégré au navigateur. Il s'exécute localement — sans appels réseau — et affiche le niveau, les CPU / RAM / VRAM, l'identifiant client et l'horodatage exp.
Pour décoder le JWT manuellement :
JWT=$(jq -r .jwt license.bundle.json)
SEG=$(echo "$JWT" | cut -d. -f2 | tr '-_' '+/')
PAD=$(( (4 - ${#SEG} % 4) % 4 ))
PAYLOAD=$(printf '%s' "$SEG$(printf '=%.0s' $(seq 1 $PAD 2>/dev/null))" | openssl base64 -d -A)
echo "$PAYLOAD" | jq .Vérifiez :
exp— l'horodatage d'expiration.sub— votre identifiant client.scrydon.entitlements— vos limites de ressources contractuelles.
Voir aussi
- Licences — le modèle de licence complet.
- Journal d'audit — événements
LICENSE_*.