Lewati ke konten
getnextpdf.com

Enterprise edisi

Rilis

NextPDF Enterprise memodelkan sebuah release sebagai value object bertipe — sebuah release manifest, manifes per-artefak, profil build, channel distribusi, dan batas akses — dan menurunkan sebuah rencana publikasi yang merutekan setiap artefak ke channel dan batas akses yang benar.

Kapabilitas ini dikapalkan dalam NextPDF Enterprise (nextpdf/enterprise) dan aktif dengan sebuah envelope lisensi tier Enterprise. Sebuah penerapan tanpa entitlement tersebut tidak memuat kelas-kelas kapabilitas ini. Bandingkan edisi dan dapatkan lisensi.

Terminal window
composer require nextpdf/enterprise:^3

ReleaseManifest adalah dokumen tingkat atas yang imutabel untuk sebuah versi. Ia mencatat versi semantik, commit sumber, stempel waktu build, daftar manifes per-artefak, dan jalur bukti rantai pasok opsional (SBOM, tanda tangan GPG, checksum). Versi skemanya mengikuti minor-untuk-aditif, major-untuk-breaking.

ArtifactManifest mencatat satu artefak yang dibangun: nama berkas kanonisnya, versi, commit sumber, edisi target, mode pengiriman, teknologi encoding, channel distribusi, versi PHP target, digest SHA-256, masa berlaku encoding opsional, dan stempel waktu build. EncodingTechnology membedakan alat yang dipakai untuk meng-encode sebuah artefak dari apakah ia di-encode sama sekali; sebuah artefak cleartext selalu memiliki None.

DistributionChannel memisahkan dua kepentingan secara eksplisit: sebuah origin artefak (penyimpanan biner) dan sebuah lapisan konsumsi paket (registry yang dibaca oleh composer require). AccessBoundary menentukan siapa yang boleh mengakses sebuah artefak — pelanggan berbayar, evaluasi terbatas-waktu, atau CI/QA/staging internal yang tidak pernah menghadap pelanggan — dan setiap boundary mensyaratkan autentikasi.

PublishingPlan diturunkan dari profil build dan release manifest. Setiap profil teruraikan menjadi target publikasi: sebuah target artifact-origin dan sebuah target consumption-layer, dengan batas akses yang benar diterapkan sehingga artefak berbayar dan evaluasi dirutekan ke tempat yang tepat.

Keputusan yang menjadi tumpuan adalah memodelkan sebuah release sebagai value object bertipe yang imutabel, bukan konfigurasi lepas. Origin artefak dan lapisan konsumsi adalah kepentingan berbeda bertipe enum, dan batas akses bersifat eksplisit. Jadi sebuah artefak yang salah-rute — sebuah build internal yang ditempatkan pada channel pelanggan — muncul sebagai kesalahan pemodelan, bukan kesalahan produksi yang diam-diam. Rencana tetap bersifat turunan alih-alih otoritatif: ia menyebutkan target yang dituju sementara perkakas release Anda melakukan transportnya. Objek yang sama teruraikan melalui kontrak Core, sehingga sebuah konsumen yang meng-upgrade edisi tidak mengubah kode pemanggil apa pun. Kontinuitas itulah inti dari sebuah batas open-core — Anda membeli permukaan Enterprise, bukan sebuah penulisan-ulang. Latar belakang desain: Open core, tanpa lock-in.

KelasTanggung jawab
ReleaseManifestDokumen release tingkat atas yang imutabel.
ArtifactManifestMetadata dan kolom verifikasi per-artefak.
BuildProfileSebuah konfigurasi build untuk dipublikasikan.
DistributionChannelEnum channel origin vs consumption-layer.
AccessBoundaryEnum akses Paid / Evaluation / Internal.
EncodingTechnologyEnum alat encoding (mis. encoded / none).
PublishingPlan / PublishingTargetRencana turunan dan perutean per-target.
use NextPDF\Enterprise\Release\PublishingPlan;
$plan = PublishingPlan::fromProfiles($profiles, '3.1.0');
use NextPDF\Enterprise\Release\PublishingPlan;
use NextPDF\Enterprise\Release\PublishingEnvironment;
$plan = PublishingPlan::fromProfiles(
$profiles,
'3.1.0',
PublishingEnvironment::Production,
);
foreach ($plan->targets as $target) {
$logger->info('release.target', [
'version' => $plan->version,
'channel' => $target->channel->value,
]);
}
  • Origin artefak dan lapisan konsumsi adalah channel yang berbeda. Origin menyimpan biner; lapisan konsumsi menyajikan metadata yang menunjuk ke biner tersebut. Jangan menyatukannya saat menalar di mana sebuah composer require teruraikan.
  • Sebuah artefak cleartext selalu melaporkan EncodingTechnology::None; kolom encoding-technology menjawab “alat mana”, bukan “apakah ia terlindungi”.
  • Artefak batas akses Internal tidak pernah menghadap pelanggan; merutekannya ke channel pelanggan adalah kesalahan konfigurasi yang dirancang model ini untuk dieksplisitkan.
  • Rencana publikasi bersifat turunan, bukan otoritatif untuk transport — ia menjelaskan target yang dituju; unggahan sebenarnya dilakukan oleh perkakas release Anda.

Penurunan rencana bersifat linear dalam jumlah profil build dan menghasilkan sejumlah kecil target per profil. Value object bersifat imutabel dan murah untuk dikonstruksi.

Release manifest membawa jalur bukti rantai pasok (SBOM, tanda tangan GPG, checksum). Modul ini mencatat dan merutekan rujukan tersebut; ia tidak menghasilkan sendiri tanda tangan atau mengatestasi provenans. Perlakukan manifes sebagai metadata yang harus diverifikasi oleh pipeline release Anda, bukan sebagai bukti dengan sendirinya.

Release manifest memuat metadata build dan artefak, bukan data pribadi. Terapkan kontrol normal Anda pada penyimpanan artefak.

Log release sebaiknya mencatat versi dan channel, bukan materi kunci penandatanganan atau jalur penyimpanan internal.

Tidak ada klaim konformansi standar untuk modul ini; ia adalah lapisan pemodelan release. Bukti rantai pasok (SBOM, tanda tangan, checksum) dirujuk oleh manifes serta dihasilkan dan diverifikasi oleh perkakas release Anda.

Modul ini tidak melakukan operasi kriptografis apa pun. Penandatanganan GPG dan pembuatan checksum dilakukan oleh perkakas release eksternal dan hanya dirujuk di sini.

Input adalah profil build dan data manifes yang dipasok pemanggil. Model membuat pembedaan origin-vs-konsumsi dan batas-akses eksplisit sehingga salah-rute (misalnya mengekspos artefak internal) adalah kesalahan pemodelan yang terlihat alih-alih yang diam-diam.

  • ReleaseManifest adalah dokumen tingkat atas yang imutabel untuk sebuah versi; versi skemanya mengikuti minor-untuk-aditif, major-untuk-breaking.
  • DistributionChannel menjaga origin artefak dan lapisan konsumsi paket sebagai kepentingan yang berbeda; menyatukannya adalah kesalahan pemodelan yang dieksplisitkan tipe ini.
  • AccessBoundary membedakan Paid / Evaluation / Internal, dan setiap boundary mensyaratkan autentikasi; sebuah artefak Internal tidak pernah menghadap pelanggan.
  • PublishingPlan diturunkan dari profil build dan release manifest; ia menjelaskan target yang dituju dan bukan otoritatif untuk transport.

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

NextPDF Core tidak memiliki lapisan pemodelan release. Konsumen Core-saja yang membutuhkan release manifest, profil build, atau rencana publikasi harus memodelkannya sendiri.

NextPDF Pro tidak menyediakan release manifest bertipe, profil build, batas akses, atau rencana publikasi turunan; semua itu hanya dikapalkan dalam paket nextpdf/enterprise. Penerapan Pro-saja tidak memiliki komponen Enterprise untuk memenuhi sebuah request pemodelan-release. Lihat ikhtisar Enterprise untuk permukaan Enterprise.

Skema manifes, pembedaan origin-vs-konsumsi, dan perutean batas-akses dijelaskan hanya pada tingkat perilaku. Tabel resolusi-channel internal dan wiring publishing-target internal berada di luar cakupan permukaan publik dan tidak direproduksi di sini.

Rencana publikasi adalah metadata turunan, bukan transport: unggahan artefak sebenarnya dilakukan oleh perkakas release Anda. Bukti rantai pasok (SBOM, tanda tangan GPG, checksum) dirujuk oleh manifes serta dihasilkan dan diverifikasi oleh pipeline release Anda, bukan oleh modul ini. Perutean, kredensial, dan penyimpanan untuk setiap channel adalah tanggung jawab operator.

Halaman ini menjelaskan sebuah lapisan pemodelan release. Halaman ini mencatat dan merutekan rujukan bukti rantai pasok; halaman ini tidak menghasilkan sendiri tanda tangan, tidak mengatestasi provenans, tidak menyertifikasi sebuah release, dan tidak merupakan nasihat hukum. Memperlakukan manifes sebagai bukti dengan sendirinya adalah keliru; verifikasi dilakukan oleh pipeline release Anda. Menilai apakah sebuah release memenuhi kewajiban kontraktual atau regulatori Anda adalah tanggung jawab Anda.