Licenze
La gestione delle licenze Mildport è offline. Il motore verifica ogni chiave in locale rispetto a una chiave pubblica che distribuisci con esso, così gli import continuano che tu possa raggiungerci o no — in un air-gap, durante la nostra manutenzione, una domenica sera.
La stessa licenza vale ovunque. Non c’è una «chiave cloud» e una «chiave self-hosted» separate: una chiave, verificata allo stesso modo nel nostro cloud e nella tua VPC.
Come funziona
Sezione intitolata “Come funziona”- Ottieni una chiave di licenza dalla pagina Licenze del tuo account Mildport.
- Il motore detiene la chiave pubblica rispetto a cui verifica —
IMPORT_LICENSE_PUBLIC_KEY, nella pagina Self-hosting dello stesso account. - Ogni richiesta si verifica in locale. Nessuna chiamata di rete, mai.
Una chiave porta tenant, piano, limiti e scadenza, così un deployment può servire molti tenant con diritti diversi — il motore legge tutto dalla chiave stessa.
Le chiavi cloud si rinnovano da sole
Sezione intitolata “Le chiavi cloud si rinnovano da sole”Le chiavi usate contro il nostro cloud gestito sono volutamente di breve vita (settimane, non anni) e si rinnovano senza supervisione: insieme alla chiave di licenza ricevi un segreto di refresh (mostrato anch’esso una sola volta). Il tuo server chiama con esso l’endpoint di refresh in cron — stesso piano, stesse origini, chiave e scadenza nuove — e sostituisce la chiave dove la incorpori. Una chiave cloud trapelata muore da sola in pochi giorni, senza infrastruttura di revoca e senza che la verifica chiami a casa.
I deployment self-hosted e air-gap sono esenti per progettazione: le loro chiavi mantengono la lunga durata del piano e non devono mai raggiungerci — niente nel motore conosce l’endpoint di refresh. Rigenerare una chiave a mano ruota anche il segreto di refresh.
Ottenere una chiave
Sezione intitolata “Ottenere una chiave”Accedi, apri Licenze e crea un tenant. La chiave appare una volta, subito dopo l’emissione.
La chiave va nell’host che incorpora, come attributo license-key del widget (vedi
Configurazione). È una credenziale bearer: trattala come una chiave
API e tienila fuori dai repository pubblici.
Rinnovo e scadenza
Sezione intitolata “Rinnovo e scadenza”Le chiavi sono a tempo, e la scadenza è l’unica cosa che ne termina la vita — non c’è un interruttore remoto, perché non c’è niente di remoto.
- Ti scriviamo 30 giorni prima della scadenza, all’indirizzo che l’ha creata.
- Rinnovare è un clic: rigenera sulla pagina Licenze. Ottieni una chiave nuova, quella attuale resta fino alla sua data — puoi rinnovare presto e sostituire senza downtime.
- Dopo la scadenza, gli import con quella chiave si fermano. La soluzione è lo stesso clic.
Il pannello mostra un conto alla rovescia su ogni licenza nei suoi ultimi 30 giorni, così lo stato è visibile senza aspettare la mail.
Blocco per origine
Sezione intitolata “Blocco per origine”Una chiave usata da un embed nel browser può essere fissata ai siti consentiti. Lascia la lista vuota e la chiave vale da ovunque; aggiungi origini e le richieste browser da altrove vengono rifiutate. Le chiamate lato server non sono toccate — questo protegge le chiavi incorporate, visibili a chiunque guardi il sorgente della pagina.
Imposta la lista alla creazione o alla rigenerazione. I sottodomini wildcard vanno come
https://*.example.com, e le porte contano.
Revocare una chiave in anticipo
Sezione intitolata “Revocare una chiave in anticipo”Poiché la verifica è offline, una chiave compromessa non può essere richiamata da remoto. Due leve:
- Lista di revoca — aggiungi l’id di licenza a
IMPORT_LICENSE_REVOKED_IDSsul motore (separati da virgola). Ha effetto al prossimo deploy e non serve una nuova chiave pubblica. - Rigenerare — emetti una chiave nuova dal pannello e smetti di distribuire la vecchia. Resta valida fino alla scadenza — per questo esiste la lista per il caso urgente.
Verificare la configurazione
Sezione intitolata “Verificare la configurazione”Il preflight ti dice se il motore può validare le chiavi, prima che arrivi il traffico:
pnpm import:self-host-checkDa un’immagine invece che da un checkout sorgente? Lo stesso controllo è incluso:
docker run --rm --env-file .env ghcr.io/capitality-io/mildport-aio \ bun dist/cli/self-host-check.jsSu Kubernetes, helm test mildport lo esegue nel cluster.
Avanti: Riferimento di configurazione · Accesso alle immagini