Enterprise edizione
Licenze
In sintesi
Sezione intitolata “In sintesi”NextPDF Enterprise risolve la licenza in un diritto d’uso in fase di esecuzione: un tier di edizione, un insieme di funzionalità e una decisione di branding. Una licenza a pagamento scaduta continua a funzionare in base a una garanzia di fallback perpetuo; si interrompono soltanto gli aggiornamenti e il supporto. Questa pagina descrive il comportamento osservabile dall’esterno della superficie di licenza, i gate di funzionalità e di capability e il contratto facoltativo di attivazione online.
Disponibilità e licenza
Sezione intitolata “Disponibilità e licenza”Questa funzionalità è inclusa in NextPDF Enterprise (nextpdf/enterprise) e si attiva con un envelope di licenza di tier Enterprise. Una distribuzione priva di tale diritto d’uso non carica le classi della funzionalità. Confronta le edizioni e ottieni una licenza.
Il licensing è la superficie Enterprise di base: risolve ogni altra funzionalità, perciò è sempre presente una volta installato il pacchetto Enterprise. Le singole funzionalità a valle sono gestite da codici di capability — capability di tier di edizione e pacchetti aggiuntivi che scadono in modo indipendente. Il gate riporta l’edizione attiva, la validità, lo stato del periodo di tolleranza e l’insieme dei pacchetti attivi.
Panoramica concettuale
Sezione intitolata “Panoramica concettuale”La superficie di licenza ha un solo compito: trasformare una licenza in una decisione su cui un’applicazione host può agire. Produce un risultato di diritto d’uso immutabile con cinque campi che contano in fase di esecuzione — il tier di edizione, il canale (a pagamento o di valutazione), la modalità di branding, se la versione installata può essere eseguita e se si ha diritto ad aggiornamenti e supporto.
Le edizioni formano una gerarchia rigida: Enterprise include Pro, Pro include Core. Un controllo di capability ha quindi esito positivo quando l’edizione concessa è pari o superiore al tier minimo della capability. Alcune capability non sono affatto legate a un’edizione — appartengono a pacchetti aggiuntivi che portano la propria scadenza, indipendente dal termine della licenza di base.
La decisione di diritto d’uso distingue cinque stati distinti. Una licenza attiva ha accesso completo. Una licenza a pagamento oltre il proprio termine ma all’interno della finestra di tolleranza mantiene l’accesso completo e mostra un avviso di rinnovo imminente. Una licenza a pagamento oltre la finestra di tolleranza entra nel fallback perpetuo: la versione installata continua a funzionare a tempo indeterminato, ma non si ha più diritto ad aggiornamenti e supporto. Una licenza di valutazione si comporta diversamente — quando scade, il runtime viene limitato, perché la valutazione è limitata nel tempo per progettazione. Quando non è presente alcuna licenza, l’host si risolve in uno stato fail-closed e qualsiasi output è contrassegnato visivamente in modo che una distribuzione priva di licenza non venga mai scambiata per una a pagamento.
Un conteggio contrattuale di postazioni non viene applicato in fase di esecuzione. Non esiste alcuna telemetria né alcun phone-home obbligatorio per il funzionamento ordinario. Il client online facoltativo esiste soltanto per l’attivazione esplicita, i controlli di rinnovo e gli heartbeat best-effort, e un host che non lo invoca mai riceve comunque una decisione di diritto d’uso completa da una licenza fornita localmente.
La modalità trial è una politica separata e più ristretta. Quando una licenza è contrassegnata come trial, limita il throughput di elaborazione e applica una filigrana di valutazione all’output generato, in modo che il lavoro di produzione in massa richieda una licenza a pagamento. La scadenza del trial è applicata in modo rigido, senza periodo di tolleranza.
Perché funziona così
Sezione intitolata “Perché funziona così”La decisione portante è che una licenza a pagamento non disabilita mai il runtime installato. Quando un termine a pagamento finisce, il diritto d’uso passa a EntitlementStatus::PerpetualFallback — la versione installata continua a funzionare, e vengono revocati soltanto gli aggiornamenti futuri e il supporto. Quella garanzia regge perché il diritto d’uso è una pura decisione in memoria su una licenza fornita localmente, quindi nessun phone-home e nessuna interruzione di rete possono sfilare un runtime a pagamento da sotto i piedi di un cliente. Il contrappeso sono i valori predefiniti fail-closed: una licenza assente o una valutazione scaduta si risolvono nel tier Core e impostano brandingMode su una filigrana di valutazione. Così una distribuzione priva di licenza non viene mai silenziosamente scambiata per una a pagamento. Fallback perpetuo per ciò che si è acquistato, fail-closed per ciò che non si è acquistato — è questo abbinamento a mantenere il licensing offline-friendly senza trasformarlo in un sistema basato sull’onore.
Contesto di progettazione: Open core, nessun lock-in.
Superficie API pubblica
Sezione intitolata “Superficie API pubblica”composer require nextpdf/enterprise:^3I punti di integrazione supportati sono il valutatore di diritto d’uso (da licenza a risultato di diritto d’uso), il gate di funzionalità in fase di esecuzione (isFeatureEnabled, requireFeature, hasCapability, requireCapability, isInGracePeriod, currentEdition, getActivePacks, trialPolicy), il registry delle capability (risoluzione da rotta a capability e l’insieme delle capability disponibili) e il client di licenza facoltativo (activate, checkRenewal, heartbeat). Trattare il valutatore di diritto d’uso come l’unica autorità per le decisioni derivate dalla licenza; non basare le ramificazioni direttamente sui campi grezzi della licenza.
Esempio di codice — Avvio rapido
Sezione intitolata “Esempio di codice — Avvio rapido”use NextPDF\Enterprise\Licensing\EntitlementEvaluator;
$result = (new EntitlementEvaluator())->evaluate($license);
if (! $result->runtimeAllowed) { // No license, or an expired evaluation license. throw new RuntimeException($result->warningMessage ?? 'Enterprise runtime disabled.');}
// Perpetual fallback: still allowed to run; updates/support may be off.$canUpdate = $result->updateEntitled;$watermark = $result->shouldApplyEvaluationBranding();Esempio di codice — Produzione
Sezione intitolata “Esempio di codice — Produzione”use NextPDF\Enterprise\Licensing\CapabilityCode;use NextPDF\Enterprise\Licensing\FeatureGate;
final class ReportController{ public function __construct(private readonly FeatureGate $gate) {}
public function generate(): Response { // Throws a structured 403-style exception carrying the required // capability, the required pack, the current packs, and an // upgrade-info URL — usable as an upsell touchpoint. $this->gate->requireCapability(CapabilityCode::EnterpriseComplianceEvidence);
if ($this->gate->isInGracePeriod()) { $this->logger->notice('Enterprise license in grace period — renewal due.'); }
return $this->renderReport(); }}Casi limite e insidie
Sezione intitolata “Casi limite e insidie”- Il fallback perpetuo non è un periodo di tolleranza. La tolleranza mantiene attivi aggiornamenti e supporto; il fallback mantiene attivo soltanto il runtime. Entrambi mantengono in esecuzione la versione installata per le licenze a pagamento.
- La scadenza della valutazione limita il runtime. A differenza di una licenza a pagamento, una licenza di valutazione scaduta arresta il runtime e mantiene la filigrana di valutazione.
- Nessuna licenza fallisce in modo chiuso. Senza alcuna licenza configurata, il diritto d’uso è “nessuna licenza”, il runtime è disabilitato per i percorsi Enterprise e l’output emesso è contrassegnato da filigrana in modo che lo stato sia visibile nei log e negli artefatti.
- La scadenza dei pacchetti è indipendente. Un pacchetto aggiuntivo può scadere mentre la licenza di base è ancora attiva; la capability che concedeva fallisce quindi con un esito distinto “pacchetto scaduto”, separato da “non concesso in licenza”.
- Il diniego di capability è strutturato. Una capability negata porta la capability richiesta, il pacchetto richiesto (se presente), i pacchetti attuali e un URL di informazioni sull’aggiornamento — mostrare questi all’utente anziché un errore generico.
Prestazioni
Sezione intitolata “Prestazioni”La valutazione del diritto d’uso e i controlli di capability sono operazioni a tempo costante, in memoria, su una licenza già analizzata — nessun I/O sul percorso della richiesta. Il client online facoltativo effettua chiamate di rete soltanto in caso di attivazione esplicita, controlli di rinnovo e heartbeat; i fallimenti degli heartbeat non sono fatali e non bloccano mai l’elaborazione.
Note di sicurezza
Sezione intitolata “Note di sicurezza”Questa pagina descrive intenzionalmente soltanto il comportamento osservabile. La verifica dell’envelope di licenza, il controllo della firma, la logica anti-abuso e la posizione del codice di applicazione sono fuori ambito e non sono documentati sulla superficie pubblica. Gli operatori interagiscono con il contratto pubblico del pacchetto e con il contratto di comportamento documentato. Il contratto di attivazione online usa un envelope con risposta firmata e un nonce fornito dal client, in modo che un host possa rilevare una risposta di attivazione riprodotta o manomessa; la precisa procedura di verifica non fa parte del contratto pubblico.
Conformità
Sezione intitolata “Conformità”- La risposta di attivazione online è trasportata in un envelope firmato in stile JWS — una tripla intestazione-protetta / payload / firma nella forma compatta e URL-safe descritta dalla RFC 7515 (JSON Web Signature), §3.1.
- Il materiale della firma è base64url, decodificato secondo la RFC 7515 §5.2.
- Il JSON canonico per l’integrità dell’envelope segue il JSON Canonicalization Scheme, RFC 8785, §3.
- La firma di attivazione è una firma Ed25519 verificata rispetto a una chiave pubblica di 32 byte, secondo la RFC 8032 (EdDSA), §5.1.
- I token di servizio a breve durata usati tra i componenti portano i claim registrati
iss,aud,sub,expejtie rispettano la regola not-after diexpdella RFC 7519 (JWT), §4.1.4.
Contratto di comportamento
Sezione intitolata “Contratto di comportamento”- La valutazione del diritto d’uso produce un risultato immutabile con un insieme fisso di campi rilevanti in fase di esecuzione (tier di edizione, canale, modalità di branding, runtime-allowed, diritto ad aggiornamento/supporto).
- Una licenza a pagamento non disabilita mai il runtime installato: la scadenza la fa passare attraverso la tolleranza e poi il fallback perpetuo, revocando soltanto aggiornamenti e supporto.
- Una licenza di valutazione scaduta limita il runtime e mantiene la filigrana di valutazione; la scadenza del trial è applicata in modo rigido senza periodo di tolleranza.
- Lo stato “nessuna licenza” è fail-closed per i percorsi Enterprise e l’output emesso è contrassegnato da filigrana in modo che una distribuzione priva di licenza non venga mai scambiata per una a pagamento.
- Il diniego di capability è strutturato: porta la capability richiesta, il pacchetto richiesto (se presente), i pacchetti attivi e un URL di informazioni sull’aggiornamento.
- I controlli di diritto d’uso e di capability sono operazioni a tempo costante in memoria, senza I/O sul percorso della richiesta.
Confine di pubblicazione
Sezione intitolata “Confine di pubblicazione”Questa pagina documenta soltanto il comportamento osservabile dall’esterno e la superficie API pubblica supportata. I percorsi di namespace interni, le classi helper, le tabelle dei meccanismi, i nomi di file dei runbook e i prefissi di ticket sono fuori ambito.
Fallback di Core
Sezione intitolata “Fallback di Core”NextPDF Core (Apache-2.0) non dispone di alcuna superficie di diritto d’uso di edizione o capability — nessun gate di funzionalità, nessun valutatore di diritto d’uso, nessun client di licenza. Un host che ha bisogno del comportamento Apache-2.0 privo di licenza usa direttamente il motore Core anziché la pipeline Enterprise. Core non gestisce gate, non applica filigrane per il licensing e non valuta il diritto d’uso.
Fallback di Pro
Sezione intitolata “Fallback di Pro”Anche NextPDF Pro non dispone di alcuna superficie di diritto d’uso — nessuna; questa funzionalità non ha un equivalente di livello Pro. Il licensing, il registry delle capability, il gate di funzionalità e il contratto di attivazione sono inclusi esclusivamente nel pacchetto nextpdf/enterprise.
Nota sul confine Enterprise
Sezione intitolata “Nota sul confine Enterprise”La procedura di verifica dell’envelope di licenza, l’implementazione del controllo della firma, la logica anti-abuso e la posizione del codice di applicazione sono descritte solo a livello di comportamento e non sono riprodotte sulla superficie pubblica. Il contratto di attivazione online è documentato come un envelope con risposta firmata e un nonce fornito dal client; la precisa procedura di verifica non fa parte del contratto pubblico.
Confine di distribuzione
Sezione intitolata “Confine di distribuzione”NextPDF Enterprise risolve il diritto d’uso da una licenza fornita localmente, senza alcun phone-home obbligatorio per il funzionamento ordinario. Il client online facoltativo effettua chiamate di rete soltanto in caso di attivazione esplicita, controlli di rinnovo e heartbeat best-effort; i fallimenti degli heartbeat non sono fatali e non bloccano mai l’elaborazione. L’operatore possiede il provisioning della licenza, la configurazione di attivazione/rinnovo e la politica di trasporto per il client online facoltativo. NextPDF Enterprise non applica un conteggio contrattuale di postazioni in fase di esecuzione.
Confine di conformità legale
Sezione intitolata “Confine di conformità legale”I termini di capacità e di postazioni sono regolati dal contratto di licenza, non dall’applicazione in fase di esecuzione. Questa documentazione non è un parere legale; consultare i propri consulenti di conformità e legali per i propri obblighi contrattuali e normativi.