ข้ามไปยังเนื้อหา
getnextpdf.com

Enterprise รุ่น

การออกเวอร์ชัน

NextPDF Enterprise สร้างแบบจำลอง release เป็นออบเจกต์ค่าแบบมีชนิด — release manifest, manifest ต่ออาร์ทิแฟกต์, build profiles, ช่องทางการแจกจ่าย และขอบเขตการเข้าถึง — และได้มาซึ่งแผนการเผยแพร่ที่กำหนดเส้นทางแต่ละอาร์ทิแฟกต์ไปยังช่องทางและขอบเขตการเข้าถึงที่ถูกต้อง

ความสามารถนี้มาใน NextPDF Enterprise (nextpdf/enterprise) และเปิดใช้งานด้วย license envelope ระดับ Enterprise การปรับใช้ที่ไม่มีสิทธิ์ดังกล่าวจะไม่โหลดคลาสของความสามารถนี้ เปรียบเทียบรุ่นและขอรับสิทธิ์การใช้งาน

Terminal window
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

Classความรับผิดชอบ
ReleaseManifestเอกสาร release ระดับบนสุดที่ไม่เปลี่ยนแปลง
ArtifactManifestเมทาดาทาต่ออาร์ทิแฟกต์และฟิลด์สำหรับการตรวจสอบ
BuildProfileการกำหนดค่า build ที่จะเผยแพร่
DistributionChannelenum ช่องทาง origin เทียบกับ consumption-layer
AccessBoundaryenum การเข้าถึง Paid / Evaluation / Internal
EncodingTechnologyenum เครื่องมือเข้ารหัส (เช่น 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 require resolve ที่ใด
  • อาร์ทิแฟกต์แบบ cleartext จะรายงานเป็น EncodingTechnology::None เสมอ ฟิลด์ encoding-technology ตอบว่า “เครื่องมือใด” ไม่ใช่ “ได้รับการป้องกันหรือไม่”
  • อาร์ทิแฟกต์ขอบเขตการเข้าถึง Internal ไม่เผยแพร่ต่อลูกค้าเลย การกำหนดเส้นทางไปยังช่องทางลูกค้าเป็นข้อผิดพลาดในการกำหนดค่าที่แบบจำลองนี้ออกแบบมาให้ชัดเจน
  • แผนการเผยแพร่เป็นสิ่งที่ได้มา ไม่ใช่สิ่งที่กำหนดการขนส่งอย่างเป็นทางการ — มันอธิบายเป้าหมายที่ตั้งใจไว้ การอัปโหลดจริงดำเนินการโดยเครื่องมือ release ของคุณ

การได้มาซึ่งแผนเป็นเชิงเส้นตามจำนวน build profiles และผลิตเป้าหมายจำนวนน้อยต่อโปรไฟล์ ออบเจกต์ค่าเป็นแบบไม่เปลี่ยนแปลงและสร้างขึ้นได้ในต้นทุนต่ำ

release manifest พาเส้นทางหลักฐาน supply-chain (SBOM, GPG signature, checksums) มาด้วย โมดูลนี้บันทึกและกำหนดเส้นทางการอ้างอิงเหล่านั้น มันไม่ได้สร้างลายเซ็นเองหรือรับรองที่มา ให้ถือว่า manifest เป็นเมทาดาทาที่ต้องตรวจสอบโดย release pipeline ของคุณ ไม่ใช่หลักฐานในตัวเอง

release manifest มีเมทาดาทาของ build และอาร์ทิแฟกต์ ไม่ใช่ข้อมูลส่วนบุคคล ให้ใช้มาตรการควบคุมตามปกติของคุณกับการจัดเก็บอาร์ทิแฟกต์

การวัดและส่งข้อมูลที่ปลอดภัยและการขัดล้างบันทึก

หัวข้อที่มีชื่อว่า “การวัดและส่งข้อมูลที่ปลอดภัยและการขัดล้างบันทึก”

release log ควรบันทึกเวอร์ชันและช่องทาง ไม่ใช่วัสดุคีย์ลงนามหรือเส้นทางการจัดเก็บภายใน

ไม่มีการอ้างความสอดคล้องกับมาตรฐานใดสำหรับโมดูลนี้ นี่คือเลเยอร์การสร้างแบบจำลอง release หลักฐาน supply-chain (SBOM, ลายเซ็น, checksums) ถูกอ้างอิงโดย manifest และถูกสร้างและตรวจสอบโดยเครื่องมือ release ของคุณ

โมดูลนี้ไม่ดำเนินการทางการเข้ารหัสใด ๆ การลงนาม GPG และการสร้าง checksum ดำเนินการโดยเครื่องมือ release ภายนอกและถูกอ้างอิงในที่นี้เท่านั้น

อินพุตคือ build profiles และข้อมูล manifest ที่ผู้เรียกใช้จัดหา แบบจำลองทำให้ความแตกต่างระหว่าง origin กับ consumption และขอบเขตการเข้าถึงชัดเจน เพื่อให้การกำหนดเส้นทางผิด (เช่นการเปิดเผยอาร์ทิแฟกต์ภายใน) เป็นข้อผิดพลาดเชิงการสร้างแบบจำลองที่มองเห็นได้แทนที่จะเป็นแบบเงียบ

  • ReleaseManifest คือเอกสารระดับบนสุดที่ไม่เปลี่ยนแปลงสำหรับเวอร์ชันหนึ่ง เวอร์ชันสคีมาของมันเป็น minor-for-additive, major-for-breaking
  • DistributionChannel รักษา artifact origin และ package consumption layer ให้เป็นเรื่องที่แยกจากกัน การทำให้ปนกันเป็นข้อผิดพลาดเชิงการสร้างแบบจำลองที่ชนิดนี้ทำให้ชัดเจน
  • AccessBoundary แยก Paid / Evaluation / Internal และทุกขอบเขตต้องมีการตรวจสอบสิทธิ์ อาร์ทิแฟกต์ Internal ไม่เผยแพร่ต่อลูกค้าเลย
  • PublishingPlan ได้มาจาก build profiles และ release manifest มันอธิบายเป้าหมายที่ตั้งใจไว้และไม่ใช่สิ่งที่กำหนดการขนส่งอย่างเป็นทางการ

หน้านี้บันทึกเฉพาะพฤติกรรมที่สังเกตได้จากภายนอกและพื้นผิว API สาธารณะที่รองรับเท่านั้น เส้นทาง namespace ภายใน คลาสตัวช่วย ตารางกลไก ชื่อไฟล์ runbook และคำนำหน้า ticket อยู่นอกขอบเขต

NextPDF Core ไม่มีเลเยอร์การสร้างแบบจำลอง release ผู้บริโภคแบบ Core เท่านั้นที่ต้องการ release manifest, build profiles หรือแผนการเผยแพร่ ต้องสร้างแบบจำลองเหล่านั้นเอง

NextPDF Pro ไม่มี release manifest แบบมีชนิด, build profiles, ขอบเขตการเข้าถึง หรือแผนการเผยแพร่ที่ได้มา สิ่งเหล่านี้มาในแพ็กเกจ nextpdf/enterprise เท่านั้น การปรับใช้แบบ Pro เท่านั้นไม่มีคอมโพเนนต์ Enterprise ที่จะตอบสนองคำขอการสร้างแบบจำลอง release ดู ภาพรวมของ 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 เป็นไปตามภาระผูกพันตามสัญญาหรือกฎระเบียบของคุณหรือไม่เป็นความรับผิดชอบของคุณ