Enterprise edição
Licenciamento
Em resumo
Seção intitulada “Em resumo”O NextPDF Enterprise resolve sua licença em um direito de uso de runtime: um nível de edição, um conjunto de capacidades e uma decisão de branding. Uma licença paga que tenha expirado continua em execução sob uma garantia de fallback perpétuo; apenas as atualizações e o suporte param. Esta página descreve o comportamento observável externamente da superfície de licenciamento, as restrições de capacidade e de recurso, e o contrato opcional de ativação online.
Disponibilidade e licenciamento
Seção intitulada “Disponibilidade e licenciamento”Esta capacidade é entregue no NextPDF Enterprise (nextpdf/enterprise) e é ativada com um envelope de licença de nível Enterprise. Uma implantação sem esse direito de uso não carrega as classes da capacidade. Compare as edições e obtenha uma licença.
O licenciamento é a superfície base do Enterprise: ele resolve todas as outras capacidades, então está sempre presente assim que o pacote Enterprise é instalado. Os recursos individuais a jusante são restringidos por códigos de capacidade — capacidades de nível de edição e pacotes complementares com expiração independente. A restrição relata a edição ativa, a validade, o estado do período de carência e o conjunto de pacotes ativos.
Visão conceitual
Seção intitulada “Visão conceitual”A superfície de licenciamento tem uma única tarefa: transformar uma licença em uma decisão sobre a qual uma aplicação host pode agir. Ela produz um resultado de direito de uso imutável com cinco campos que importam em tempo de execução — o nível de edição, o canal (pago ou de avaliação), o modo de branding, se a versão instalada pode ser executada e se as atualizações e o suporte estão incluídos.
As edições formam uma hierarquia estrita: o Enterprise inclui o Pro, o Pro inclui o Core. Uma verificação de capacidade, portanto, tem sucesso quando a edição licenciada está no nível mínimo da capacidade ou acima dele. Algumas capacidades não estão ligadas a uma edição de forma alguma — elas pertencem a pacotes complementares que têm sua própria expiração, independente do prazo da licença base.
A decisão de direito de uso distingue cinco estados discretos. Uma licença ativa tem acesso completo. Uma licença paga após o seu prazo, mas dentro da janela de carência, mantém o acesso completo e exibe um aviso de renovação iminente. Uma licença paga após a janela de carência entra em fallback perpétuo: a versão instalada continua em execução indefinidamente, mas as atualizações e o suporte deixam de estar incluídos. Uma licença de avaliação se comporta de forma diferente — quando expira, o runtime é restringido, porque a avaliação tem prazo limitado por design. Quando nenhuma licença está presente, o host resolve para um estado fail-closed e qualquer saída é marcada visualmente, de modo que uma implantação não licenciada nunca seja confundida com uma paga.
Uma contagem contratual de assentos não é imposta em tempo de execução. Não há telemetria nem phone-home obrigatório para a operação comum. O cliente online opcional existe apenas para ativação explícita, verificações de renovação e heartbeats de melhor esforço, e um host que nunca o invoca ainda recebe uma decisão de direito de uso completa a partir de uma licença fornecida localmente.
O modo de avaliação (trial) é uma política separada e mais restrita. Quando uma licença é marcada como trial, ela limita o throughput de processamento e aplica uma marca d’água de avaliação à saída gerada, de modo que o trabalho de produção em massa exija uma licença paga. A expiração do trial é imposta estritamente, sem período de carência.
Por que funciona assim
Seção intitulada “Por que funciona assim”A decisão de sustentação é que uma licença paga nunca desabilita o runtime instalado. Quando um prazo pago termina, o direito de uso passa para EntitlementStatus::PerpetualFallback — a versão instalada continua em execução, e apenas as atualizações futuras e o suporte são revogados. Essa garantia se mantém porque o direito de uso é uma decisão pura em memória sobre uma licença fornecida localmente, então nenhum phone-home e nenhuma interrupção de rede podem tirar um runtime pago de baixo de um cliente. O contrapeso são os padrões fail-closed: uma licença ausente ou uma avaliação expirada resolve para o nível Core e define brandingMode como uma marca d’água de avaliação. Assim, uma implantação não licenciada nunca é silenciosamente confundida com uma paga. Fallback perpétuo para o que você comprou, fail-closed para o que você não comprou — esse par é o que mantém o licenciamento amigável ao uso offline sem virar um sistema baseado na confiança.
Contexto de design: Open core, sem lock-in.
Superfície pública de API
Seção intitulada “Superfície pública de API”composer require nextpdf/enterprise:^3Os pontos de integração suportados são o avaliador de direito de uso (de licença para resultado de direito de uso), a restrição de recursos em tempo de execução (isFeatureEnabled, requireFeature, hasCapability, requireCapability, isInGracePeriod, currentEdition, getActivePacks, trialPolicy), o registro de capacidades (resolução de rota para capacidade e o conjunto de capacidades disponíveis) e o cliente de licença opcional (activate, checkRenewal, heartbeat). Trate o avaliador de direito de uso como a única autoridade para decisões derivadas da licença; não tome decisões com base diretamente em campos brutos da licença.
Exemplo de código — início rápido
Seção intitulada “Exemplo de código — início rápido”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();Exemplo de código — produção
Seção intitulada “Exemplo de código — produção”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(); }}Casos extremos e pegadinhas
Seção intitulada “Casos extremos e pegadinhas”- O fallback perpétuo não é um período de carência. A carência mantém as atualizações e o suporte ativos; o fallback mantém apenas o runtime ativo. Ambos mantêm a versão instalada em execução para licenças pagas.
- A expiração da avaliação restringe o runtime. Diferentemente de uma licença paga, uma licença de avaliação expirada interrompe o runtime e mantém a marca d’água de avaliação.
- A ausência de licença falha de forma fechada. Sem nenhuma licença configurada, o direito de uso é “sem licença”, o runtime é desabilitado para os caminhos do Enterprise e a saída emitida recebe marca d’água, de modo que o estado fique visível em logs e artefatos.
- A expiração de um pacote é independente. Um pacote complementar pode expirar enquanto a licença base ainda está ativa; a capacidade que ele concedia então falha com um resultado distinto de “pacote expirado”, separado de “não licenciado”.
- A recusa de capacidade é estruturada. Uma capacidade recusada carrega a capacidade exigida, o pacote exigido (se houver), os pacotes atuais e uma URL de informações de upgrade — apresente esses dados ao usuário em vez de um erro simples.
Desempenho
Seção intitulada “Desempenho”A avaliação de direito de uso e as verificações de capacidade são operações de tempo constante, em memória, contra uma licença analisada — sem I/O no caminho da requisição. O cliente online opcional realiza chamadas de rede apenas na ativação explícita, em verificações de renovação e em heartbeats; falhas de heartbeat não são fatais e nunca bloqueiam o processamento.
Notas de segurança
Seção intitulada “Notas de segurança”Esta página descreve intencionalmente apenas o comportamento observável. A verificação do envelope de licença, a checagem de assinatura, a lógica antiabuso e a localização do código de imposição estão fora do escopo e não são documentadas na superfície pública. Os operadores interagem com o contrato público do pacote e com o contrato de comportamento documentado. O contrato de ativação online usa um envelope de resposta assinado e um nonce fornecido pelo cliente, de modo que um host possa detectar uma resposta de ativação reproduzida (replay) ou adulterada; o procedimento exato de verificação não faz parte do contrato público.
Conformidade
Seção intitulada “Conformidade”- A resposta de ativação online é transportada em um envelope assinado no estilo JWS — uma tripla de cabeçalho protegido / payload / assinatura no formato compacto e seguro para URL descrito pela RFC 7515 (JSON Web Signature), §3.1.
- O material de assinatura é base64url, decodificado conforme a RFC 7515 §5.2.
- O JSON canônico para a integridade do envelope segue o JSON Canonicalization Scheme, RFC 8785, §3.
- A assinatura de ativação é uma assinatura Ed25519 verificada em relação a uma chave pública de 32 bytes, conforme a RFC 8032 (EdDSA), §5.1.
- Os tokens de serviço de curta duração usados entre componentes carregam as claims registradas
iss,aud,sub,expejti, e respeitam a regra not-after deexpda RFC 7519 (JWT), §4.1.4.
Contrato de comportamento
Seção intitulada “Contrato de comportamento”- A avaliação de direito de uso produz um resultado imutável com um conjunto fixo de campos relevantes em tempo de execução (nível de edição, canal, modo de branding, runtime permitido, atualização/suporte incluídos).
- Uma licença paga nunca desabilita o runtime instalado: a expiração o move pela carência e, em seguida, pelo fallback perpétuo, revogando apenas as atualizações e o suporte.
- Uma licença de avaliação expirada restringe o runtime e mantém a marca d’água de avaliação; a expiração do trial é imposta estritamente, sem período de carência.
- O estado “sem licença” é fail-closed para os caminhos do Enterprise, e a saída emitida recebe marca d’água, de modo que uma implantação não licenciada nunca seja confundida com uma paga.
- A recusa de capacidade é estruturada: ela carrega a capacidade exigida, o pacote exigido (se houver), os pacotes ativos e uma URL de informações de upgrade.
- As verificações de direito de uso e de capacidade são operações de tempo constante em memória, sem I/O no caminho da requisição.
Limite de publicação
Seção intitulada “Limite de publicação”Esta página documenta apenas o comportamento observável externamente e a superfície pública de API suportada. Caminhos de namespace internos, classes auxiliares, tabelas de mecanismos, nomes de arquivos de runbook e prefixos de tickets estão fora do escopo.
Fallback no Core
Seção intitulada “Fallback no Core”O NextPDF Core (Apache-2.0) não tem superfície de direito de uso de edição ou de capacidade — sem restrição de recursos, sem avaliador de direito de uso, sem cliente de licença. Um host que precisa do comportamento Apache-2.0 não licenciado usa o motor Core diretamente, em vez do pipeline do Enterprise. O Core não restringe, não aplica marca d’água para fins de licenciamento e não avalia direito de uso.
Fallback no Pro
Seção intitulada “Fallback no Pro”O NextPDF Pro também não tem superfície de direito de uso — nenhuma; essa capacidade não tem equivalente no nível Pro. O licenciamento, o registro de capacidades, a restrição de recursos e o contrato de ativação são entregues apenas no pacote nextpdf/enterprise.
Nota sobre o limite do Enterprise
Seção intitulada “Nota sobre o limite do Enterprise”O procedimento de verificação do envelope de licença, a implementação da checagem de assinatura, a lógica antiabuso e a localização do código de imposição são descritos apenas no nível de comportamento e não são reproduzidos na superfície pública. O contrato de ativação online é documentado como um envelope de resposta assinado com um nonce fornecido pelo cliente; o procedimento exato de verificação não faz parte do contrato público.
Limite de implantação
Seção intitulada “Limite de implantação”O NextPDF Enterprise resolve o direito de uso a partir de uma licença fornecida localmente, sem phone-home obrigatório para a operação comum. O cliente online opcional realiza chamadas de rede apenas na ativação explícita, em verificações de renovação e em heartbeats de melhor esforço; falhas de heartbeat não são fatais e nunca bloqueiam o processamento. O operador é dono do provisionamento da licença, da configuração de ativação/renovação e da política de transporte do cliente online opcional. O NextPDF Enterprise não impõe uma contagem contratual de assentos em tempo de execução.
Limite legal e de conformidade
Seção intitulada “Limite legal e de conformidade”Os termos de capacidade e de assentos são regidos pelo seu contrato de licença, não pela imposição em tempo de execução. Esta documentação não é uma opinião jurídica; consulte seus próprios assessores de conformidade e jurídicos sobre suas obrigações contratuais e regulatórias.