Lewati ke konten
getnextpdf.com

Enterprise edisi

Pelisensian

NextPDF Enterprise me-resolve lisensi Anda menjadi hak akses runtime: tingkat edisi, sekumpulan kapabilitas, dan keputusan branding. Lisensi berbayar yang telah berakhir tetap berjalan di bawah jaminan perpetual-fallback; hanya pembaruan dan dukungan yang berhenti. Halaman ini mendeskripsikan perilaku yang dapat diamati dari luar pada permukaan pelisensian, gerbang kapabilitas dan fitur, serta kontrak aktivasi daring opsional.

Kapabilitas ini dikirimkan dalam NextPDF Enterprise (nextpdf/enterprise) dan diaktifkan dengan amplop lisensi tingkat-Enterprise. Penerapan tanpa hak akses tersebut tidak memuat kelas-kelas kapabilitas ini. Bandingkan edisi dan dapatkan lisensi.

Pelisensian adalah permukaan dasar Enterprise: ia me-resolve setiap kapabilitas lain, sehingga selalu hadir begitu paket Enterprise dipasang. Fitur hilir individual digerbang oleh kode kapabilitas — kapabilitas tingkat-edisi dan paket add-on yang kedaluwarsa secara independen. Gerbang melaporkan edisi yang aktif, validitas, status masa tenggang, dan himpunan paket yang aktif.

Permukaan pelisensian memiliki satu tugas: mengubah lisensi menjadi keputusan yang dapat ditindaklanjuti oleh aplikasi host. Ia menghasilkan hasil hak akses yang tidak dapat diubah dengan lima bidang yang penting saat runtime — tingkat edisi, kanal (berbayar atau evaluasi), mode branding, apakah versi yang terpasang boleh berjalan, dan apakah pembaruan serta dukungan menjadi hak.

Edisi membentuk hierarki ketat: Enterprise mencakup Pro, Pro mencakup Core. Oleh karena itu, pemeriksaan kapabilitas berhasil ketika edisi berlisensi berada pada atau di atas tingkat minimum kapabilitas tersebut. Sebagian kapabilitas sama sekali tidak terikat pada edisi — kapabilitas tersebut termasuk paket add-on yang membawa kedaluwarsa sendiri, terlepas dari masa lisensi dasar.

Keputusan hak akses membedakan lima keadaan diskret. Lisensi aktif memiliki akses penuh. Lisensi berbayar yang telah melewati masanya tetapi masih dalam jendela tenggangnya tetap memiliki akses penuh dan menampilkan peringatan perpanjangan segera. Lisensi berbayar yang telah melewati jendela tenggangnya memasuki perpetual fallback: versi yang terpasang terus berjalan tanpa batas, tetapi pembaruan dan dukungan tidak lagi menjadi hak. Lisensi evaluasi berperilaku berbeda — ketika kedaluwarsa, runtime dibatasi, karena evaluasi memang dibatasi waktu secara desain. Ketika tidak ada lisensi, host me-resolve ke keadaan gagal-tertutup dan keluaran apa pun ditandai secara visual sehingga penerapan tanpa lisensi tidak pernah disalahartikan sebagai penerapan berbayar.

Jumlah seat kontraktual tidak ditegakkan saat runtime. Tidak ada telemetri dan tidak ada phone-home wajib untuk operasi biasa. Klien daring opsional ada hanya untuk aktivasi eksplisit, pemeriksaan perpanjangan, dan heartbeat best-effort, dan host yang tidak pernah memanggilnya tetap menerima keputusan hak akses yang lengkap dari lisensi yang disediakan secara lokal.

Mode uji coba adalah kebijakan terpisah yang lebih sempit. Ketika sebuah lisensi ditandai sebagai uji coba, mode tersebut membatasi throughput pemrosesan dan menerapkan tanda air evaluasi pada keluaran yang dihasilkan, sehingga pekerjaan produksi massal memerlukan lisensi berbayar. Kedaluwarsa uji coba ditegakkan secara ketat, tanpa masa tenggang.

Keputusan yang menjadi tumpuan adalah bahwa lisensi berbayar tidak pernah menonaktifkan runtime yang terpasang. Ketika masa berbayar berakhir, hak akses berpindah ke EntitlementStatus::PerpetualFallback — versi yang terpasang terus berjalan, dan hanya pembaruan lanjutan serta dukungan yang dicabut. Jaminan itu berlaku karena hak akses adalah keputusan murni dalam memori atas lisensi yang disediakan secara lokal, sehingga tidak ada phone-home maupun gangguan jaringan yang dapat menarik runtime berbayar dari bawah kaki pelanggan. Penyeimbangnya adalah default gagal-tertutup: lisensi yang tidak ada atau evaluasi yang kedaluwarsa me-resolve ke tingkat Core dan menyetel brandingMode ke tanda air evaluasi. Jadi penerapan tanpa lisensi tidak pernah secara diam-diam disalahartikan sebagai penerapan berbayar. Perpetual fallback untuk apa yang Anda beli, gagal-tertutup untuk apa yang tidak — pasangan itulah yang menjaga pelisensian tetap ramah-luring tanpa menjadi sistem berbasis kehormatan.

Latar belakang desain: Open core, tanpa lock-in.

Terminal window
composer require nextpdf/enterprise:^3

Titik integrasi yang didukung adalah evaluator hak akses (lisensi ke hasil hak akses), gerbang fitur runtime (isFeatureEnabled, requireFeature, hasCapability, requireCapability, isInGracePeriod, currentEdition, getActivePacks, trialPolicy), registri kapabilitas (resolusi route-ke-kapabilitas dan himpunan kapabilitas yang tersedia), dan klien lisensi opsional (activate, checkRenewal, heartbeat). Perlakukan evaluator hak akses sebagai satu-satunya otoritas untuk keputusan yang berasal dari lisensi; jangan bercabang langsung pada bidang lisensi mentah.

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();
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();
}
}
  • Perpetual fallback bukan masa tenggang. Masa tenggang menjaga pembaruan dan dukungan tetap aktif; fallback hanya menjaga runtime tetap aktif. Keduanya menjaga versi yang terpasang tetap berjalan untuk lisensi berbayar.
  • Kedaluwarsa evaluasi membatasi runtime. Tidak seperti lisensi berbayar, lisensi evaluasi yang kedaluwarsa menghentikan runtime dan mempertahankan tanda air evaluasi.
  • Tanpa lisensi, gagal-tertutup. Tanpa lisensi yang dikonfigurasi, hak aksesnya adalah “tanpa lisensi”, runtime dinonaktifkan untuk jalur Enterprise, dan keluaran yang dipancarkan diberi tanda air sehingga keadaan tersebut terlihat dalam log dan artefak.
  • Kedaluwarsa paket bersifat independen. Sebuah paket add-on dapat kedaluwarsa selagi lisensi dasar masih aktif; kapabilitas yang diberikannya kemudian gagal dengan hasil “paket kedaluwarsa” yang berbeda dari “tidak berlisensi”.
  • Penolakan kapabilitas bersifat terstruktur. Kapabilitas yang ditolak membawa kapabilitas yang diperlukan, paket yang diperlukan (jika ada), paket saat ini, dan URL info-peningkatan — tampilkan informasi ini kepada pengguna alih-alih error telanjang.

Evaluasi hak akses dan pemeriksaan kapabilitas adalah operasi waktu-konstan dalam memori terhadap lisensi yang sudah diurai — tanpa I/O pada jalur permintaan. Klien daring opsional melakukan panggilan jaringan hanya pada aktivasi eksplisit, pemeriksaan perpanjangan, dan heartbeat; kegagalan heartbeat tidak fatal dan tidak pernah memblokir pemrosesan.

Halaman ini sengaja hanya mendeskripsikan perilaku yang dapat diamati. Verifikasi amplop lisensi, pemeriksaan tanda tangan, logika anti-penyalahgunaan, dan lokasi kode penegakan berada di luar cakupan dan tidak didokumentasikan pada permukaan publik. Operator berinteraksi dengan kontrak paket publik dan kontrak perilaku yang terdokumentasi. Kontrak aktivasi daring menggunakan amplop respons-bertanda tangan dan nonce yang disediakan klien sehingga host dapat mendeteksi respons aktivasi yang diputar ulang atau dirusak; prosedur verifikasi yang tepat bukan bagian dari kontrak publik.

  • Respons aktivasi daring dibawa dalam amplop bertanda tangan bergaya JWS — triple protected-header / payload / signature dalam bentuk compact, URL-safe yang dideskripsikan oleh RFC 7515 (JSON Web Signature), §3.1.
  • Material tanda tangan adalah base64url, didekode menurut RFC 7515 §5.2.
  • JSON kanonis untuk integritas amplop mengikuti JSON Canonicalization Scheme, RFC 8785, §3.
  • Tanda tangan aktivasi adalah tanda tangan Ed25519 yang diverifikasi terhadap kunci publik 32-byte, menurut RFC 8032 (EdDSA), §5.1.
  • Token layanan berumur-pendek yang digunakan antarkomponen membawa klaim terdaftar iss, aud, sub, exp, dan jti, serta menghormati aturan not-after exp dari RFC 7519 (JWT), §4.1.4.
  • Evaluasi hak akses menghasilkan hasil yang tidak dapat diubah dengan sekumpulan bidang relevan-runtime yang tetap (tingkat edisi, kanal, mode branding, runtime-allowed, update/support entitled).
  • Lisensi berbayar tidak pernah menonaktifkan runtime yang terpasang: kedaluwarsa memindahkannya melalui masa tenggang lalu perpetual fallback, mencabut hanya pembaruan dan dukungan.
  • Lisensi evaluasi yang kedaluwarsa membatasi runtime dan mempertahankan tanda air evaluasi; kedaluwarsa uji coba ditegakkan secara ketat tanpa masa tenggang.
  • Keadaan “tanpa lisensi” bersifat gagal-tertutup untuk jalur Enterprise, dan keluaran yang dipancarkan diberi tanda air sehingga penerapan tanpa lisensi tidak pernah disalahartikan sebagai penerapan berbayar.
  • Penolakan kapabilitas bersifat terstruktur: ia membawa kapabilitas yang diperlukan, paket yang diperlukan (jika ada), paket yang aktif, dan URL info-peningkatan.
  • Pemeriksaan hak akses dan kapabilitas adalah operasi waktu-konstan dalam memori tanpa I/O pada jalur permintaan.

Halaman ini hanya mendokumentasikan perilaku yang dapat diamati dari luar dan permukaan API publik yang didukung. Jalur namespace internal, kelas pembantu, tabel mekanisme, nama berkas runbook, dan prefiks tiket berada di luar cakupan.

NextPDF Core (Apache-2.0) tidak memiliki permukaan hak akses edisi atau kapabilitas — tidak ada gerbang fitur, tidak ada evaluator hak akses, tidak ada klien lisensi. Host yang membutuhkan perilaku Apache-2.0 tanpa lisensi menggunakan mesin Core secara langsung alih-alih pipeline Enterprise. Core tidak menggerbang, tidak memberi tanda air untuk pelisensian, dan tidak mengevaluasi hak akses.

NextPDF Pro juga tidak memiliki permukaan hak akses — tidak ada sama sekali; kapabilitas ini tidak memiliki padanan tingkat-Pro. Pelisensian, registri kapabilitas, gerbang fitur, dan kontrak aktivasi hanya tersedia dalam paket nextpdf/enterprise.

Prosedur verifikasi amplop lisensi, implementasi pemeriksaan tanda tangan, logika anti-penyalahgunaan, dan lokasi kode penegakan dideskripsikan hanya pada tingkat perilaku dan tidak direproduksi pada permukaan publik. Kontrak aktivasi daring didokumentasikan sebagai amplop respons-bertanda tangan dengan nonce yang disediakan klien; prosedur verifikasi yang tepat bukan bagian dari kontrak publik.

NextPDF Enterprise me-resolve hak akses dari lisensi yang disediakan secara lokal tanpa phone-home wajib untuk operasi biasa. Klien daring opsional melakukan panggilan jaringan hanya pada aktivasi eksplisit, pemeriksaan perpanjangan, dan heartbeat best-effort; kegagalan heartbeat tidak fatal dan tidak pernah memblokir pemrosesan. Operator memiliki penyediaan lisensi, konfigurasi aktivasi/perpanjangan, dan kebijakan transport untuk klien daring opsional. NextPDF Enterprise tidak menegakkan jumlah seat kontraktual saat runtime.

Ketentuan kapasitas dan seat diatur oleh perjanjian lisensi Anda, bukan oleh penegakan runtime. Dokumentasi ini bukan opini hukum; konsultasikan dengan penasihat kepatuhan dan hukum Anda sendiri untuk kewajiban kontraktual dan regulasi Anda.