Aller au contenu
Commencer

Licences

La gestion des licences Mildport est hors ligne. Votre moteur vérifie chaque clé localement contre une clé publique que vous déployez avec lui, donc les imports continuent que vous puissiez nous joindre ou non — dans un air-gap, pendant notre maintenance, un dimanche soir.

La même licence vaut partout. Il n’y a pas de « clé cloud » et de « clé self-hébergée » séparées : une clé, vérifiée de la même façon dans notre cloud et dans votre VPC.

  1. Vous obtenez une clé de licence depuis la page Licences de votre compte Mildport.
  2. Votre moteur détient la clé publique contre laquelle il vérifie — IMPORT_LICENSE_PUBLIC_KEY, sur la page Self-hosting du même compte.
  3. Chaque requête se vérifie en local. Aucun appel réseau, jamais.

Une clé porte son locataire, son plan, ses limites et son expiration, de sorte qu’un déploiement peut servir de nombreux locataires avec des droits différents — le moteur lit tout cela dans la clé elle-même.

Les clés utilisées contre notre cloud géré sont volontairement de courte durée (semaines, pas des années) et se renouvellent sans surveillance : avec la clé de licence vous recevez un secret de rafraîchissement (affiché lui aussi une seule fois). Votre serveur l’appelle sur le endpoint de rafraîchissement en cron — même plan, mêmes origines, clé et expiration neuves — et remplace la clé là où vous l’embarquez. Une clé cloud fuitée meurt donc d’elle-même en quelques jours, sans infrastructure de révocation et sans que la vérification n’appelle à la maison.

Les déploiements self-hébergés et air-gap sont exemptés par conception : leurs clés gardent la longue durée du plan et n’ont jamais besoin de nous joindre — rien dans le moteur ne connaît le endpoint de rafraîchissement. Régénérer une clé à la main fait aussi tourner le secret de rafraîchissement.

Connectez-vous, ouvrez Licences, et créez un locataire. La clé apparaît une fois, juste après l’émission.

La clé va dans l’hôte d’intégration, comme attribut license-key du widget (voir Configuration). C’est une credentielle bearer : traitez-la comme une clé d’API et gardez-la hors des dépôts publics.

Les clés sont limitées dans le temps, et l’expiration est la seule chose qui termine leur vie — il n’y a pas d’interrupteur distant, parce qu’il n’y a rien de distant.

  • Nous vous écrivons 30 jours avant l’expiration, à l’adresse qui l’a créée.
  • Renouveler est un clic : régénérez sur la page Licences. Vous obtenez une clé neuve, l’actuelle reste jusqu’à sa date — vous pouvez renouveler tôt et échanger sans interruption.
  • Après expiration, les imports avec cette clé s’arrêtent. La solution est le même clic.

Le panneau affiche un compte à rebours sur toute licence dans ses 30 derniers jours, donc l’état est visible sans attendre le mail.

Une clé utilisée par un embed navigateur peut être épinglée aux sites autorisés. Laissez la liste vide et la clé marche de n’importe où ; ajoutez des origines et les requêtes navigateur d’ailleurs sont refusées. Les appels côté serveur ne sont pas concernés — cela protège les clés embarquées, visibles de quiconque consulte le source de la page.

Réglez la liste à la création ou à la régénération. Les sous-domaines joker vont comme https://*.example.com, et les ports comptent.

Parce que la vérification est hors ligne, une clé compromise ne peut pas être rappelée à distance. Deux leviers :

  • Liste de révocation — ajoutez l’id de licence à IMPORT_LICENSE_REVOKED_IDS sur votre moteur (séparés par des virgules). Ça prend effet au prochain déploiement, sans nouvelle clé publique.
  • Régénérer — émettez une clé neuve depuis le panneau et cessez de distribuer l’ancienne. Elle reste valable jusqu’à expiration — d’où la liste pour le cas urgent.

Le preflight vous dit si le moteur peut valider des clés, avant que le trafic n’arrive :

Terminal window
pnpm import:self-host-check

Depuis une image plutôt qu’un checkout source ? Le même contrôle est intégré :

Terminal window
docker run --rm --env-file .env ghcr.io/capitality-io/mildport-aio \
bun dist/cli/self-host-check.js

Sur Kubernetes, helm test mildport l’exécute dans le cluster.

Suite : Référence de configuration · Accès aux images