Ir al contenido
Empezar

Licencias

La gestión de licencias de Mildport es sin conexión. Tu motor verifica cada clave localmente contra una clave pública que despliegas con él, así que los importes siguen funcionando tanto si puedes alcanzarnos como si no — en un air-gap, durante nuestro mantenimiento, un domingo por la noche.

La misma licencia vale en todas partes. No hay una «clave cloud» y una «clave self-hosted» separadas: una clave, verificada igual en nuestra nube y en tu VPC.

  1. Obtienes una clave de licencia en la página Licencias de tu cuenta Mildport.
  2. Tu motor guarda la clave pública contra la que verifica — IMPORT_LICENSE_PUBLIC_KEY, en la página Self-hosting de la misma cuenta.
  3. Cada petición se verifica en local. Ninguna llamada de red, nunca.

Una clave lleva su inquilino, plan, límites y caducidad, de modo que un despliegue puede servir a muchos inquilinos con derechos distintos — el motor lo lee todo de la propia clave.

Las claves usadas contra nuestra nube gestionada son deliberadamente de corta vida (semanas, no años) y se renuevan sin supervisión: junto a la clave de licencia recibes un secreto de refresco (también mostrado exactamente una vez). Tu servidor llama al endpoint de refresco con él en un cron — mismo plan, mismos orígenes, clave y caducidad nuevas — y sustituye la clave donde la incrustes. Una clave cloud filtrada muere sola en unos días, sin infraestructura de revocación y sin que la verificación llame a casa.

Los despliegues self-hosted y air-gapped están exentos a propósito: sus claves conservan la vida larga del plan y nunca necesitan alcanzarnos — nada en el motor conoce el endpoint de refresco. Regenerar una clave a mano también rota el secreto de refresco.

Entra en tu cuenta, abre Licencias y crea un inquilino. La clave aparece una vez, justo después de emitirla.

La clave va en el anfitrión que incrusta, como atributo license-key del widget (véase Configuración). Es una credencial bearer: trátala como una clave de API y no la dejes en repositorios públicos.

Las claves tienen fecha, y la caducidad es lo único que termina su vida — no hay un interruptor remoto, porque no hay nada remoto.

  • Te enviamos un correo 30 días antes de que caduque, a la dirección que la creó.
  • Renovar es un clic: regenera en Licencias. Recibes una clave nueva, y la actual sigue hasta su fecha — puedes renovar pronto y cambiar sin downtime.
  • Después de caducar, los importes con esa clave se detienen. La solución es el mismo clic.

El panel muestra una cuenta atrás en cualquier licencia dentro de sus últimos 30 días, así que el estado es visible sin esperar al correo.

Una clave usada en un embed de navegador puede fijarse a los sitios autorizados. Deja la lista vacía y vale desde cualquier sitio; añade orígenes y las peticiones de navegador desde otro sitio se rechazan. Las llamadas de servidor no se ven afectadas — esto protege las claves incrustadas, visibles para quien mire el código de la página.

Pon la lista al crear o regenerar. Los subdominios comodín van como https://*.example.com, y los puertos cuentan.

Como la verificación es offline, una clave comprometida no se puede retirar a distancia. Dos palancas:

  • Lista de revocación — añade el id de licencia a IMPORT_LICENSE_REVOKED_IDS en tu motor (separados por comas). Surte efecto en el siguiente deploy y no necesita una clave pública nueva.
  • Regenerar — emite una clave nueva desde el panel y deja de distribuir la antigua. Sigue valiendo hasta caducar — por eso existe la lista para el caso urgente.

El preflight te dice si el motor puede validar claves, antes de que llegue tráfico:

Terminal window
pnpm import:self-host-check

¿Desde una imagen en lugar de un checkout de código? La misma comprobación viene de fábrica:

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

En Kubernetes, helm test mildport la ejecuta dentro del clúster.

Siguiente: Referencia de configuración · Acceso a imágenes