Enterprise รุ่น
การออกเวอร์ชัน
ภาพรวมโดยสังเขป
หัวข้อที่มีชื่อว่า “ภาพรวมโดยสังเขป”NextPDF Enterprise สร้างแบบจำลอง release เป็นออบเจกต์ค่าแบบมีชนิด — release manifest, manifest ต่ออาร์ทิแฟกต์, build profiles, ช่องทางการแจกจ่าย และขอบเขตการเข้าถึง — และได้มาซึ่งแผนการเผยแพร่ที่กำหนดเส้นทางแต่ละอาร์ทิแฟกต์ไปยังช่องทางและขอบเขตการเข้าถึงที่ถูกต้อง
ความพร้อมใช้งานและการให้สิทธิ์
หัวข้อที่มีชื่อว่า “ความพร้อมใช้งานและการให้สิทธิ์”ความสามารถนี้มาใน NextPDF Enterprise (nextpdf/enterprise) และเปิดใช้งานด้วย license envelope ระดับ Enterprise การปรับใช้ที่ไม่มีสิทธิ์ดังกล่าวจะไม่โหลดคลาสของความสามารถนี้ เปรียบเทียบรุ่นและขอรับสิทธิ์การใช้งาน
การติดตั้ง
หัวข้อที่มีชื่อว่า “การติดตั้ง”composer require nextpdf/enterprise:^3ภาพรวมเชิงแนวคิด
หัวข้อที่มีชื่อว่า “ภาพรวมเชิงแนวคิด”ReleaseManifest คือเอกสารระดับบนสุดที่ไม่เปลี่ยนแปลงสำหรับเวอร์ชันหนึ่ง มันบันทึก semantic version, source commit, build timestamp, รายการ manifest ต่ออาร์ทิแฟกต์ และเส้นทางหลักฐาน supply-chain ที่ไม่บังคับ (SBOM, GPG signature, checksums) เวอร์ชันสคีมาของมันเป็น minor-for-additive, major-for-breaking
ArtifactManifest บันทึกอาร์ทิแฟกต์ที่สร้างขึ้นหนึ่งรายการ ได้แก่ ชื่อไฟล์ตามรูปแบบมาตรฐาน เวอร์ชัน source commit รุ่นเป้าหมาย โหมดการส่งมอบ เทคโนโลยีการเข้ารหัส ช่องทางการแจกจ่าย เวอร์ชัน PHP เป้าหมาย ค่าย่อย SHA-256 วันหมดอายุการเข้ารหัสที่ไม่บังคับ และ build timestamp EncodingTechnology แยกแยะเครื่องมือที่ใช้เข้ารหัสอาร์ทิแฟกต์ออกจากการที่ได้มีการเข้ารหัสจริงหรือไม่ อาร์ทิแฟกต์แบบ cleartext มี None เสมอ
DistributionChannel แยกสองเรื่องอย่างชัดเจน คือ artifact origin (binary storage) และ package consumption layer (registry ที่ composer require อ่าน) AccessBoundary กำหนดว่าใครเข้าถึงอาร์ทิแฟกต์ได้ — ลูกค้าที่ชำระเงิน, การประเมินที่จำกัดเวลา หรือ CI/QA/staging ภายในที่ไม่เผยแพร่ต่อลูกค้าเลย — และทุกขอบเขตต้องมีการตรวจสอบสิทธิ์
PublishingPlan ได้มาจาก build profiles และ release manifest แต่ละโปรไฟล์ resolve ไปยังเป้าหมายการเผยแพร่ ได้แก่ เป้าหมาย artifact-origin และเป้าหมาย consumption-layer พร้อมขอบเขตการเข้าถึงที่ถูกต้อง เพื่อให้อาร์ทิแฟกต์ paid และ evaluation ถูกกำหนดเส้นทางไปยังที่ที่ถูกต้อง
เหตุใดจึงทำงานเช่นนี้
หัวข้อที่มีชื่อว่า “เหตุใดจึงทำงานเช่นนี้”การตัดสินใจที่สำคัญคือการสร้างแบบจำลอง release เป็นออบเจกต์ค่าแบบมีชนิดที่ไม่เปลี่ยนแปลง ไม่ใช่การกำหนดค่าแบบหลวม ๆ artifact origin และ consumption layer เป็นเรื่องแบบ enum ที่แยกจากกัน และขอบเขตการเข้าถึงถูกระบุอย่างชัดเจน ดังนั้นอาร์ทิแฟกต์ที่กำหนดเส้นทางผิด — build ภายในที่ถูกวางบนช่องทางลูกค้า — จึงปรากฏเป็นข้อผิดพลาดเชิงการสร้างแบบจำลอง ไม่ใช่ความผิดพลาดในการใช้งานจริงแบบเงียบ ๆ แผนยังคงเป็นสิ่งที่ได้มามากกว่าเป็นสิ่งที่กำหนดอย่างเป็นทางการ คือมันระบุชื่อเป้าหมายที่ตั้งใจไว้ในขณะที่เครื่องมือ release ของคุณดำเนินการขนส่ง ออบเจกต์เดียวกัน resolve ผ่านสัญญาของ Core ดังนั้นผู้บริโภคที่อัปเกรดรุ่นจะไม่เปลี่ยนโค้ดที่เรียกใช้ ความต่อเนื่องนั้นคือจุดประสงค์ของขอบเขต open-core — คุณซื้อพื้นผิว Enterprise ไม่ใช่การเขียนใหม่ เบื้องหลังการออกแบบ: Open core, no lock-in
พื้นผิว API
หัวข้อที่มีชื่อว่า “พื้นผิว API”| Class | ความรับผิดชอบ |
|---|---|
ReleaseManifest | เอกสาร release ระดับบนสุดที่ไม่เปลี่ยนแปลง |
ArtifactManifest | เมทาดาทาต่ออาร์ทิแฟกต์และฟิลด์สำหรับการตรวจสอบ |
BuildProfile | การกำหนดค่า build ที่จะเผยแพร่ |
DistributionChannel | enum ช่องทาง origin เทียบกับ consumption-layer |
AccessBoundary | enum การเข้าถึง Paid / Evaluation / Internal |
EncodingTechnology | enum เครื่องมือเข้ารหัส (เช่น encoded / none) |
PublishingPlan / PublishingTarget | แผนที่ได้มาและการกำหนดเส้นทางต่อเป้าหมาย |
ตัวอย่างโค้ด — เริ่มต้นอย่างรวดเร็ว
หัวข้อที่มีชื่อว่า “ตัวอย่างโค้ด — เริ่มต้นอย่างรวดเร็ว”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, ]);}กรณีขอบและข้อควรระวัง
หัวข้อที่มีชื่อว่า “กรณีขอบและข้อควรระวัง”- artifact origin และ consumption layer เป็นช่องทางที่แยกจากกัน origin เก็บไบนารี consumption layer ให้บริการเมทาดาทาที่ชี้ไปยังไบนารีนั้น อย่าทำให้ปนกันเมื่อพิจารณาว่า
composer requireresolve ที่ใด - อาร์ทิแฟกต์แบบ cleartext จะรายงานเป็น
EncodingTechnology::Noneเสมอ ฟิลด์ encoding-technology ตอบว่า “เครื่องมือใด” ไม่ใช่ “ได้รับการป้องกันหรือไม่” - อาร์ทิแฟกต์ขอบเขตการเข้าถึง Internal ไม่เผยแพร่ต่อลูกค้าเลย การกำหนดเส้นทางไปยังช่องทางลูกค้าเป็นข้อผิดพลาดในการกำหนดค่าที่แบบจำลองนี้ออกแบบมาให้ชัดเจน
- แผนการเผยแพร่เป็นสิ่งที่ได้มา ไม่ใช่สิ่งที่กำหนดการขนส่งอย่างเป็นทางการ — มันอธิบายเป้าหมายที่ตั้งใจไว้ การอัปโหลดจริงดำเนินการโดยเครื่องมือ release ของคุณ
ประสิทธิภาพ
หัวข้อที่มีชื่อว่า “ประสิทธิภาพ”การได้มาซึ่งแผนเป็นเชิงเส้นตามจำนวน build profiles และผลิตเป้าหมายจำนวนน้อยต่อโปรไฟล์ ออบเจกต์ค่าเป็นแบบไม่เปลี่ยนแปลงและสร้างขึ้นได้ในต้นทุนต่ำ
บันทึกด้านความปลอดภัย
หัวข้อที่มีชื่อว่า “บันทึกด้านความปลอดภัย”release manifest พาเส้นทางหลักฐาน supply-chain (SBOM, GPG signature, checksums) มาด้วย โมดูลนี้บันทึกและกำหนดเส้นทางการอ้างอิงเหล่านั้น มันไม่ได้สร้างลายเซ็นเองหรือรับรองที่มา ให้ถือว่า manifest เป็นเมทาดาทาที่ต้องตรวจสอบโดย release pipeline ของคุณ ไม่ใช่หลักฐานในตัวเอง
Data residency & การลดผลกระทบ PII
หัวข้อที่มีชื่อว่า “Data residency & การลดผลกระทบ PII”release manifest มีเมทาดาทาของ build และอาร์ทิแฟกต์ ไม่ใช่ข้อมูลส่วนบุคคล ให้ใช้มาตรการควบคุมตามปกติของคุณกับการจัดเก็บอาร์ทิแฟกต์
การวัดและส่งข้อมูลที่ปลอดภัยและการขัดล้างบันทึก
หัวข้อที่มีชื่อว่า “การวัดและส่งข้อมูลที่ปลอดภัยและการขัดล้างบันทึก”release log ควรบันทึกเวอร์ชันและช่องทาง ไม่ใช่วัสดุคีย์ลงนามหรือเส้นทางการจัดเก็บภายใน
ความสอดคล้อง
หัวข้อที่มีชื่อว่า “ความสอดคล้อง”ไม่มีการอ้างความสอดคล้องกับมาตรฐานใดสำหรับโมดูลนี้ นี่คือเลเยอร์การสร้างแบบจำลอง release หลักฐาน supply-chain (SBOM, ลายเซ็น, checksums) ถูกอ้างอิงโดย manifest และถูกสร้างและตรวจสอบโดยเครื่องมือ release ของคุณ
พฤติกรรมในโหมด FIPS
หัวข้อที่มีชื่อว่า “พฤติกรรมในโหมด FIPS”โมดูลนี้ไม่ดำเนินการทางการเข้ารหัสใด ๆ การลงนาม GPG และการสร้าง checksum ดำเนินการโดยเครื่องมือ release ภายนอกและถูกอ้างอิงในที่นี้เท่านั้น
แบบจำลองภัยคุกคาม
หัวข้อที่มีชื่อว่า “แบบจำลองภัยคุกคาม”อินพุตคือ build profiles และข้อมูล manifest ที่ผู้เรียกใช้จัดหา แบบจำลองทำให้ความแตกต่างระหว่าง origin กับ consumption และขอบเขตการเข้าถึงชัดเจน เพื่อให้การกำหนดเส้นทางผิด (เช่นการเปิดเผยอาร์ทิแฟกต์ภายใน) เป็นข้อผิดพลาดเชิงการสร้างแบบจำลองที่มองเห็นได้แทนที่จะเป็นแบบเงียบ
สัญญาพฤติกรรม
หัวข้อที่มีชื่อว่า “สัญญาพฤติกรรม”ReleaseManifestคือเอกสารระดับบนสุดที่ไม่เปลี่ยนแปลงสำหรับเวอร์ชันหนึ่ง เวอร์ชันสคีมาของมันเป็น minor-for-additive, major-for-breakingDistributionChannelรักษา artifact origin และ package consumption layer ให้เป็นเรื่องที่แยกจากกัน การทำให้ปนกันเป็นข้อผิดพลาดเชิงการสร้างแบบจำลองที่ชนิดนี้ทำให้ชัดเจนAccessBoundaryแยก Paid / Evaluation / Internal และทุกขอบเขตต้องมีการตรวจสอบสิทธิ์ อาร์ทิแฟกต์ Internal ไม่เผยแพร่ต่อลูกค้าเลยPublishingPlanได้มาจาก build profiles และ release manifest มันอธิบายเป้าหมายที่ตั้งใจไว้และไม่ใช่สิ่งที่กำหนดการขนส่งอย่างเป็นทางการ
ขอบเขตการเผยแพร่
หัวข้อที่มีชื่อว่า “ขอบเขตการเผยแพร่”หน้านี้บันทึกเฉพาะพฤติกรรมที่สังเกตได้จากภายนอกและพื้นผิว API สาธารณะที่รองรับเท่านั้น เส้นทาง namespace ภายใน คลาสตัวช่วย ตารางกลไก ชื่อไฟล์ runbook และคำนำหน้า ticket อยู่นอกขอบเขต
ทางเลือกสำรองของ Core
หัวข้อที่มีชื่อว่า “ทางเลือกสำรองของ Core”NextPDF Core ไม่มีเลเยอร์การสร้างแบบจำลอง release ผู้บริโภคแบบ Core เท่านั้นที่ต้องการ release manifest, build profiles หรือแผนการเผยแพร่ ต้องสร้างแบบจำลองเหล่านั้นเอง
ทางเลือกสำรองของ Pro
หัวข้อที่มีชื่อว่า “ทางเลือกสำรองของ Pro”NextPDF Pro ไม่มี release manifest แบบมีชนิด, build profiles, ขอบเขตการเข้าถึง หรือแผนการเผยแพร่ที่ได้มา สิ่งเหล่านี้มาในแพ็กเกจ nextpdf/enterprise เท่านั้น การปรับใช้แบบ Pro เท่านั้นไม่มีคอมโพเนนต์ Enterprise ที่จะตอบสนองคำขอการสร้างแบบจำลอง release ดู ภาพรวมของ Enterprise สำหรับพื้นผิว Enterprise
หมายเหตุขอบเขตของ Enterprise
หัวข้อที่มีชื่อว่า “หมายเหตุขอบเขตของ Enterprise”สคีมา manifest, ความแตกต่างระหว่าง origin กับ consumption และการกำหนดเส้นทางตามขอบเขตการเข้าถึง ได้รับการอธิบายในระดับพฤติกรรมเท่านั้น ตารางการ resolve ช่องทางภายในและการต่อสาย publishing-target ภายในอยู่นอกขอบเขตของพื้นผิวสาธารณะและไม่ได้ทำซ้ำในที่นี้
ขอบเขตการปรับใช้
หัวข้อที่มีชื่อว่า “ขอบเขตการปรับใช้”แผนการเผยแพร่เป็นเมทาดาทาที่ได้มา ไม่ใช่การขนส่ง การอัปโหลดอาร์ทิแฟกต์จริงดำเนินการโดยเครื่องมือ release ของคุณ หลักฐาน supply-chain (SBOM, GPG signature, checksums) ถูกอ้างอิงโดย manifest และถูกสร้างและตรวจสอบโดย release pipeline ของคุณ ไม่ใช่โดยโมดูลนี้ การกำหนดเส้นทาง ข้อมูลรับรอง และการจัดเก็บสำหรับแต่ละช่องทางเป็นความรับผิดชอบของผู้ดำเนินการ
ขอบเขตการปฏิบัติตามกฎหมาย
หัวข้อที่มีชื่อว่า “ขอบเขตการปฏิบัติตามกฎหมาย”หน้านี้อธิบายเลเยอร์การสร้างแบบจำลอง release ซึ่งบันทึกและกำหนดเส้นทางการอ้างอิงหลักฐาน supply-chain แต่ไม่ได้สร้างลายเซ็นเอง ไม่ได้รับรองที่มา ไม่ได้ออกใบรับรอง release และไม่ใช่คำแนะนำทางกฎหมาย การถือว่า manifest เป็นหลักฐานในตัวเองนั้นไม่ถูกต้อง การตรวจสอบดำเนินการโดย release pipeline ของคุณ การตัดสินว่า release เป็นไปตามภาระผูกพันตามสัญญาหรือกฎระเบียบของคุณหรือไม่เป็นความรับผิดชอบของคุณ