Enterprise edisi
Rilis
Sekilas
Bagian berjudul “Sekilas”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.
Ketersediaan & lisensi
Bagian berjudul “Ketersediaan & lisensi”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.
Pemasangan
Bagian berjudul “Pemasangan”composer require nextpdf/enterprise:^3Ikhtisar konseptual
Bagian berjudul “Ikhtisar konseptual”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.
Mengapa ia bekerja seperti ini
Bagian berjudul “Mengapa ia bekerja seperti ini”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.
Permukaan API
Bagian berjudul “Permukaan API”| Kelas | Tanggung jawab |
|---|---|
ReleaseManifest | Dokumen release tingkat atas yang imutabel. |
ArtifactManifest | Metadata dan kolom verifikasi per-artefak. |
BuildProfile | Sebuah konfigurasi build untuk dipublikasikan. |
DistributionChannel | Enum channel origin vs consumption-layer. |
AccessBoundary | Enum akses Paid / Evaluation / Internal. |
EncodingTechnology | Enum alat encoding (mis. encoded / none). |
PublishingPlan / PublishingTarget | Rencana turunan dan perutean per-target. |
Contoh kode — Mulai cepat
Bagian berjudul “Contoh kode — Mulai cepat”use NextPDF\Enterprise\Release\PublishingPlan;
$plan = PublishingPlan::fromProfiles($profiles, '3.1.0');Contoh kode — Produksi
Bagian berjudul “Contoh kode — Produksi”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, ]);}Kasus tepi & jebakan
Bagian berjudul “Kasus tepi & jebakan”- 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 requireteruraikan. - 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.
Performa
Bagian berjudul “Performa”Penurunan rencana bersifat linear dalam jumlah profil build dan menghasilkan sejumlah kecil target per profil. Value object bersifat imutabel dan murah untuk dikonstruksi.
Catatan keamanan
Bagian berjudul “Catatan keamanan”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.
Residensi data & mitigasi PII
Bagian berjudul “Residensi data & mitigasi PII”Release manifest memuat metadata build dan artefak, bukan data pribadi. Terapkan kontrol normal Anda pada penyimpanan artefak.
Telemetri aman & pembersihan log
Bagian berjudul “Telemetri aman & pembersihan log”Log release sebaiknya mencatat versi dan channel, bukan materi kunci penandatanganan atau jalur penyimpanan internal.
Konformansi
Bagian berjudul “Konformansi”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.
Perilaku FIPS-mode
Bagian berjudul “Perilaku FIPS-mode”Modul ini tidak melakukan operasi kriptografis apa pun. Penandatanganan GPG dan pembuatan checksum dilakukan oleh perkakas release eksternal dan hanya dirujuk di sini.
Model ancaman
Bagian berjudul “Model ancaman”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.
Kontrak perilaku
Bagian berjudul “Kontrak perilaku”ReleaseManifestadalah dokumen tingkat atas yang imutabel untuk sebuah versi; versi skemanya mengikuti minor-untuk-aditif, major-untuk-breaking.DistributionChannelmenjaga origin artefak dan lapisan konsumsi paket sebagai kepentingan yang berbeda; menyatukannya adalah kesalahan pemodelan yang dieksplisitkan tipe ini.AccessBoundarymembedakan Paid / Evaluation / Internal, dan setiap boundary mensyaratkan autentikasi; sebuah artefak Internal tidak pernah menghadap pelanggan.PublishingPlanditurunkan dari profil build dan release manifest; ia menjelaskan target yang dituju dan bukan otoritatif untuk transport.
Batas publikasi
Bagian berjudul “Batas publikasi”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.
Fallback Core
Bagian berjudul “Fallback Core”NextPDF Core tidak memiliki lapisan pemodelan release. Konsumen Core-saja yang membutuhkan release manifest, profil build, atau rencana publikasi harus memodelkannya sendiri.
Fallback Pro
Bagian berjudul “Fallback Pro”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.
Catatan batas Enterprise
Bagian berjudul “Catatan batas 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.
Batas penerapan
Bagian berjudul “Batas penerapan”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.
Batas legal-kepatuhan
Bagian berjudul “Batas legal-kepatuhan”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.