Enterprise รุ่น
สิทธิ์การใช้งาน
ภาพรวมโดยสังเขป
หัวข้อที่มีชื่อว่า “ภาพรวมโดยสังเขป”NextPDF Enterprise resolve สิทธิ์การใช้งานของคุณให้เป็นสิทธิในขณะรันไทม์ ได้แก่ ระดับชั้นของรุ่น ชุดของความสามารถ และการตัดสินใจเรื่องการแสดงแบรนด์ สิทธิ์การใช้งานแบบชำระเงินที่หมดอายุแล้วจะยังคงทำงานต่อไปภายใต้การรับประกัน perpetual-fallback มีเพียงการอัปเดตและการสนับสนุนเท่านั้นที่หยุด หน้านี้อธิบายพฤติกรรมที่สังเกตได้จากภายนอกของพื้นผิวสิทธิ์การใช้งาน เกตของความสามารถและคุณสมบัติ และสัญญาการเปิดใช้งานออนไลน์แบบเลือกใช้
ความพร้อมใช้งานและสิทธิ์การใช้งาน
หัวข้อที่มีชื่อว่า “ความพร้อมใช้งานและสิทธิ์การใช้งาน”ความสามารถนี้จัดส่งใน NextPDF Enterprise (nextpdf/enterprise) และเปิดใช้งานด้วยซองสิทธิ์การใช้งานระดับ Enterprise การปรับใช้ที่ไม่มีสิทธินั้นจะไม่โหลดคลาสของความสามารถนี้ เปรียบเทียบรุ่นและรับสิทธิ์การใช้งาน
Licensing คือพื้นผิวพื้นฐานของ Enterprise มันเป็นตัว resolve ความสามารถอื่นทุกรายการ จึงมีอยู่เสมอเมื่อติดตั้งแพ็กเกจ Enterprise แล้ว ฟีเจอร์ปลายน้ำแต่ละรายการถูกเกตด้วยโค้ดความสามารถ ได้แก่ ความสามารถระดับชั้นของรุ่นและแพ็ก add-on ที่หมดอายุอย่างอิสระ เกตรายงานรุ่นที่ใช้งานอยู่ ความถูกต้อง สถานะระยะผ่อนผัน และชุดของแพ็กที่ใช้งานอยู่
ภาพรวมเชิงแนวคิด
หัวข้อที่มีชื่อว่า “ภาพรวมเชิงแนวคิด”พื้นผิวสิทธิ์การใช้งานมีงานเดียว คือ เปลี่ยนสิทธิ์การใช้งานให้เป็นการตัดสินใจที่แอปพลิเคชันโฮสต์ดำเนินการต่อได้ มันสร้างผลลัพธ์สิทธิที่ไม่เปลี่ยนแปลงได้พร้อมห้าฟิลด์ที่สำคัญในขณะรันไทม์ ได้แก่ ระดับชั้นของรุ่น ช่องทาง (ชำระเงินหรือประเมิน) โหมดการแสดงแบรนด์ ว่าเวอร์ชันที่ติดตั้งอาจทำงานได้หรือไม่ และว่าได้รับสิทธิ์การอัปเดตและการสนับสนุนหรือไม่
รุ่นต่าง ๆ ก่อตัวเป็นลำดับชั้นที่เข้มงวด คือ Enterprise รวม Pro และ Pro รวม Core ดังนั้นการตรวจสอบความสามารถจึงสำเร็จเมื่อรุ่นที่ได้รับสิทธิอยู่ที่หรือสูงกว่าระดับชั้นขั้นต่ำของความสามารถนั้น ความสามารถบางอย่างไม่ได้ผูกกับรุ่นเลย มันเป็นของแพ็ก add-on ที่มีวันหมดอายุของตัวเองโดยอิสระจากระยะเวลาของสิทธิ์การใช้งานพื้นฐาน
การตัดสินใจเรื่องสิทธิแยกแยะห้าสถานะที่ชัดเจน สิทธิ์การใช้งานที่ใช้งานอยู่มีสิทธิ์เข้าถึงเต็มที่ สิทธิ์การใช้งานแบบชำระเงินที่เลยระยะเวลาแต่ยังอยู่ในหน้าต่างผ่อนผันจะคงสิทธิ์เข้าถึงเต็มที่และแสดงคำเตือน renew-soon สิทธิ์การใช้งานแบบชำระเงินที่เลยหน้าต่างผ่อนผันจะเข้าสู่ perpetual fallback คือ เวอร์ชันที่ติดตั้งจะยังคงทำงานต่อไปอย่างไม่มีกำหนด แต่ไม่ได้รับสิทธิ์การอัปเดตและการสนับสนุนอีกต่อไป สิทธิ์การใช้งานแบบประเมินมีพฤติกรรมต่างออกไป คือ เมื่อหมดอายุ รันไทม์จะถูกจำกัด เพราะการประเมินถูกจำกัดเวลาตามการออกแบบ เมื่อไม่มีสิทธิ์การใช้งาน โฮสต์จะ resolve เป็นสถานะ fail-closed และผลลัพธ์ใด ๆ จะถูกทำเครื่องหมายให้เห็นได้ เพื่อไม่ให้การปรับใช้ที่ไม่มีสิทธิถูกเข้าใจผิดว่าเป็นการปรับใช้แบบชำระเงิน
จำนวน seat ตามสัญญาไม่ได้ถูกบังคับใช้ในขณะรันไทม์ ไม่มีการวัดและส่งข้อมูล และไม่มีการ phone-home แบบบังคับสำหรับการดำเนินการตามปกติ ไคลเอนต์ออนไลน์แบบเลือกใช้มีอยู่เพื่อการเปิดใช้งานอย่างชัดเจน การตรวจสอบการต่ออายุ และ heartbeat แบบ best-effort เท่านั้น และโฮสต์ที่ไม่เคยเรียกใช้มันก็ยังได้รับการตัดสินใจเรื่องสิทธิที่ครบถ้วนจากสิทธิ์การใช้งานที่จัดหามาในเครื่อง
โหมดทดลองใช้เป็นนโยบายที่แยกต่างหากและแคบกว่า เมื่อสิทธิ์การใช้งานถูกทำเครื่องหมายเป็นการทดลองใช้ มันจะจำกัด throughput การประมวลผลและใส่ลายน้ำการประเมินลงในผลลัพธ์ที่สร้างขึ้น เพื่อให้งานการผลิตจำนวนมากต้องใช้สิทธิ์การใช้งานแบบชำระเงิน วันหมดอายุของการทดลองใช้ถูกบังคับใช้อย่างเข้มงวด โดยไม่มีระยะผ่อนผัน
เหตุใดจึงทำงานเช่นนี้
หัวข้อที่มีชื่อว่า “เหตุใดจึงทำงานเช่นนี้”การตัดสินใจที่สำคัญคือสิทธิ์การใช้งานแบบชำระเงินจะไม่ปิดใช้งานรันไทม์ที่ติดตั้งไว้ เมื่อระยะเวลาแบบชำระเงินสิ้นสุด สิทธิจะย้ายไปที่ EntitlementStatus::PerpetualFallback คือ เวอร์ชันที่ติดตั้งยังคงทำงานต่อไป และมีเพียงการอัปเดตในอนาคตและการสนับสนุนเท่านั้นที่ถูกเพิกถอน การรับประกันนั้นคงอยู่เพราะสิทธิเป็นการตัดสินใจในหน่วยความจำล้วน ๆ บนสิทธิ์การใช้งานที่จัดหามาในเครื่อง จึงไม่มีการ phone-home และไม่มีเหตุขัดข้องของเครือข่ายใดที่จะดึงรันไทม์แบบชำระเงินออกไปจากลูกค้าได้ ตัวถ่วงดุลคือค่าเริ่มต้นแบบ fail-closed คือ สิทธิ์การใช้งานที่ขาดหายไปหรือการประเมินที่หมดอายุจะ resolve เป็นระดับ Core และตั้ง brandingMode เป็นลายน้ำการประเมิน ดังนั้นการปรับใช้ที่ไม่มีสิทธิจะไม่ถูกเข้าใจผิดอย่างเงียบ ๆ ว่าเป็นแบบชำระเงิน perpetual fallback สำหรับสิ่งที่คุณซื้อ และ fail-closed สำหรับสิ่งที่คุณไม่ได้ซื้อ การจับคู่นั้นคือสิ่งที่ทำให้สิทธิ์การใช้งานเป็นมิตรกับการใช้งานออฟไลน์โดยไม่กลายเป็นระบบที่พึ่งความสุจริต
ภูมิหลังการออกแบบ Open core, no lock-in
พื้นผิว API สาธารณะ
หัวข้อที่มีชื่อว่า “พื้นผิว API สาธารณะ”composer require nextpdf/enterprise:^3จุดผสานการทำงานที่รองรับ ได้แก่ ตัวประเมินสิทธิ (สิทธิ์การใช้งานไปยังผลลัพธ์สิทธิ) feature gate ในขณะรันไทม์ (isFeatureEnabled, requireFeature, hasCapability, requireCapability, isInGracePeriod, currentEdition, getActivePacks, trialPolicy) capability registry (การ resolve route-to-capability และชุดความสามารถที่มีให้) และ license client แบบเลือกใช้ (activate, checkRenewal, heartbeat) ให้ปฏิบัติต่อตัวประเมินสิทธิเสมือนเป็นผู้มีอำนาจเพียงรายเดียวสำหรับการตัดสินใจที่ได้มาจากสิทธิ์การใช้งาน อย่าแตกแขนงตามฟิลด์สิทธิ์การใช้งานแบบดิบโดยตรง
ตัวอย่างโค้ด — เริ่มต้นใช้งานอย่างรวดเร็ว
หัวข้อที่มีชื่อว่า “ตัวอย่างโค้ด — เริ่มต้นใช้งานอย่างรวดเร็ว”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 ไม่ใช่ระยะผ่อนผัน ระยะผ่อนผันคงการอัปเดตและการสนับสนุนไว้ ส่วน fallback คงไว้เพียงรันไทม์ ทั้งสองคงเวอร์ชันที่ติดตั้งให้ทำงานต่อไปสำหรับสิทธิ์การใช้งานแบบชำระเงิน
- วันหมดอายุของการประเมินจำกัดรันไทม์ ต่างจากสิทธิ์การใช้งานแบบชำระเงิน สิทธิ์การใช้งานแบบประเมินที่หมดอายุจะหยุดรันไทม์และคงลายน้ำการประเมินไว้
- ไม่มีสิทธิ์การใช้งานจะ fail closed เมื่อไม่ได้กำหนดค่าสิทธิ์การใช้งาน สิทธิจะเป็น “no license” รันไทม์จะถูกปิดใช้งานสำหรับเส้นทาง Enterprise และผลลัพธ์ที่ส่งออกจะมีลายน้ำเพื่อให้สถานะมองเห็นได้ในบันทึกและอาร์ทิแฟกต์
- วันหมดอายุของแพ็กเป็นอิสระ แพ็ก add-on สามารถหมดอายุได้ในขณะที่สิทธิ์การใช้งานพื้นฐานยังใช้งานอยู่ ความสามารถที่แพ็กนั้นมอบให้จะล้มเหลวด้วยผลลัพธ์ “pack expired” ที่ชัดเจนซึ่งแยกจาก “not licensed”
- การปฏิเสธความสามารถเป็นแบบมีโครงสร้าง ความสามารถที่ถูกปฏิเสธพกพาความสามารถที่จำเป็น แพ็กที่จำเป็น (ถ้ามี) แพ็กปัจจุบัน และ URL ข้อมูลการอัปเกรด ให้แสดงสิ่งเหล่านี้แก่ผู้ใช้แทนข้อผิดพลาดเปล่า ๆ
ประสิทธิภาพ
หัวข้อที่มีชื่อว่า “ประสิทธิภาพ”การประเมินสิทธิและการตรวจสอบความสามารถเป็นการดำเนินการในหน่วยความจำแบบเวลาคงที่กับสิทธิ์การใช้งานที่ถูกแยกวิเคราะห์แล้ว ไม่มี I/O บนเส้นทางคำขอ ไคลเอนต์ออนไลน์แบบเลือกใช้ทำการเรียกเครือข่ายเฉพาะเมื่อมีการเปิดใช้งานอย่างชัดเจน การตรวจสอบการต่ออายุ และ heartbeat ความล้มเหลวของ heartbeat ไม่ร้ายแรงและไม่เคยขัดขวางการประมวลผล
บันทึกด้านความปลอดภัย
หัวข้อที่มีชื่อว่า “บันทึกด้านความปลอดภัย”หน้านี้อธิบายเฉพาะพฤติกรรมที่สังเกตได้โดยเจตนา การตรวจสอบซองสิทธิ์การใช้งาน การตรวจสอบลายเซ็น ตรรกะป้องกันการละเมิด และตำแหน่งของโค้ดบังคับใช้อยู่นอกขอบเขตและไม่ได้บันทึกไว้บนพื้นผิวสาธารณะ ผู้ดำเนินการโต้ตอบกับสัญญาแพ็กเกจสาธารณะและสัญญาด้านพฤติกรรมที่บันทึกไว้ สัญญาการเปิดใช้งานออนไลน์ใช้ซองการตอบสนองที่ลงนามและ nonce ที่ไคลเอนต์จัดหา เพื่อให้โฮสต์ตรวจจับการตอบสนองการเปิดใช้งานที่ถูกเล่นซ้ำหรือถูกดัดแปลงได้ ขั้นตอนการตรวจสอบที่แน่นอนไม่ได้เป็นส่วนหนึ่งของสัญญาสาธารณะ
ความสอดคล้อง
หัวข้อที่มีชื่อว่า “ความสอดคล้อง”- การตอบสนองการเปิดใช้งานออนไลน์ถูกพกพาในซองที่ลงนามแบบ JWS-style คือ ทริปเปิล protected-header / payload / signature ในรูปแบบ compact ที่ปลอดภัยสำหรับ URL ตามที่อธิบายไว้ใน RFC 7515 (JSON Web Signature) §3.1
- วัสดุลายเซ็นเป็น base64url ถอดรหัสตาม RFC 7515 §5.2
- JSON เชิงบัญญัติสำหรับความถูกต้องของซองเป็นไปตาม JSON Canonicalization Scheme RFC 8785 §3
- ลายเซ็นการเปิดใช้งานเป็นลายเซ็น Ed25519 ที่ตรวจสอบกับคีย์สาธารณะขนาด 32 ไบต์ ตาม RFC 8032 (EdDSA) §5.1
- โทเค็นบริการอายุสั้นที่ใช้ระหว่างส่วนประกอบพกพา claim ที่ลงทะเบียนไว้
iss,aud,sub,expและjtiและเคารพกฎ not-after ของexpตาม RFC 7519 (JWT) §4.1.4
สัญญาด้านพฤติกรรม
หัวข้อที่มีชื่อว่า “สัญญาด้านพฤติกรรม”- การประเมินสิทธิสร้างผลลัพธ์ที่ไม่เปลี่ยนแปลงได้พร้อมชุดฟิลด์ที่เกี่ยวข้องกับรันไทม์แบบคงที่ (ระดับชั้นของรุ่น ช่องทาง โหมดการแสดงแบรนด์ runtime-allowed สิทธิ์การอัปเดต/การสนับสนุน)
- สิทธิ์การใช้งานแบบชำระเงินไม่เคยปิดใช้งานรันไทม์ที่ติดตั้งไว้ คือ วันหมดอายุย้ายมันผ่านระยะผ่อนผันแล้วจึงเข้าสู่ perpetual fallback โดยเพิกถอนเพียงการอัปเดตและการสนับสนุน
- สิทธิ์การใช้งานแบบประเมินที่หมดอายุจะจำกัดรันไทม์และคงลายน้ำการประเมินไว้ วันหมดอายุของการทดลองใช้ถูกบังคับใช้อย่างเข้มงวดโดยไม่มีระยะผ่อนผัน
- สถานะ “no license” เป็นแบบ fail-closed สำหรับเส้นทาง Enterprise และผลลัพธ์ที่ส่งออกจะมีลายน้ำเพื่อไม่ให้การปรับใช้ที่ไม่มีสิทธิถูกเข้าใจผิดว่าเป็นแบบชำระเงิน
- การปฏิเสธความสามารถเป็นแบบมีโครงสร้าง คือ มันพกพาความสามารถที่จำเป็น แพ็กที่จำเป็น (ถ้ามี) แพ็กที่ใช้งานอยู่ และ URL ข้อมูลการอัปเกรด
- การตรวจสอบสิทธิและความสามารถเป็นการดำเนินการในหน่วยความจำแบบเวลาคงที่โดยไม่มี I/O บนเส้นทางคำขอ
ขอบเขตการเผยแพร่
หัวข้อที่มีชื่อว่า “ขอบเขตการเผยแพร่”หน้านี้บันทึกเฉพาะพฤติกรรมที่สังเกตได้จากภายนอกและพื้นผิว API สาธารณะที่รองรับเท่านั้น เส้นทาง namespace ภายใน คลาสตัวช่วย ตารางกลไก ชื่อไฟล์ runbook และคำนำหน้า ticket อยู่นอกขอบเขต
การถอยกลับไปใช้ Core
หัวข้อที่มีชื่อว่า “การถอยกลับไปใช้ Core”NextPDF Core (Apache-2.0) ไม่มีพื้นผิวสิทธิรุ่นหรือความสามารถ คือ ไม่มี feature gate ไม่มีตัวประเมินสิทธิ ไม่มี license client โฮสต์ที่ต้องการพฤติกรรม Apache-2.0 ที่ไม่มีสิทธินั้นใช้เอนจิน Core โดยตรงแทนไปป์ไลน์ Enterprise Core ไม่เกต ไม่ใส่ลายน้ำเพื่อสิทธิ์การใช้งาน หรือประเมินสิทธิ
การถอยกลับไปใช้ Pro
หัวข้อที่มีชื่อว่า “การถอยกลับไปใช้ Pro”NextPDF Pro ก็ไม่มีพื้นผิวสิทธิเช่นกัน — ไม่มีเลย ความสามารถนี้ไม่มีสิ่งเทียบเท่าในระดับ Pro Licensing capability registry feature gate และสัญญาการเปิดใช้งานจัดส่งในแพ็กเกจ nextpdf/enterprise เท่านั้น
บันทึกขอบเขตของ Enterprise
หัวข้อที่มีชื่อว่า “บันทึกขอบเขตของ Enterprise”ขั้นตอนการตรวจสอบซองสิทธิ์การใช้งาน การนำการตรวจสอบลายเซ็นไปใช้ ตรรกะป้องกันการละเมิด และตำแหน่งของโค้ดบังคับใช้ถูกอธิบายในระดับพฤติกรรมเท่านั้นและไม่ได้ทำซ้ำบนพื้นผิวสาธารณะ สัญญาการเปิดใช้งานออนไลน์บันทึกไว้เป็นซองการตอบสนองที่ลงนามพร้อม nonce ที่ไคลเอนต์จัดหา ขั้นตอนการตรวจสอบที่แน่นอนไม่ได้เป็นส่วนหนึ่งของสัญญาสาธารณะ
ขอบเขตการปรับใช้
หัวข้อที่มีชื่อว่า “ขอบเขตการปรับใช้”NextPDF Enterprise resolve สิทธิจากสิทธิ์การใช้งานที่จัดหามาในเครื่องโดยไม่มีการ phone-home แบบบังคับสำหรับการดำเนินการตามปกติ ไคลเอนต์ออนไลน์แบบเลือกใช้ทำการเรียกเครือข่ายเฉพาะเมื่อมีการเปิดใช้งานอย่างชัดเจน การตรวจสอบการต่ออายุ และ heartbeat แบบ best-effort ความล้มเหลวของ heartbeat ไม่ร้ายแรงและไม่เคยขัดขวางการประมวลผล ผู้ดำเนินการเป็นเจ้าของการจัดเตรียมสิทธิ์การใช้งาน การกำหนดค่าการเปิดใช้งาน/การต่ออายุ และนโยบายการขนส่งสำหรับไคลเอนต์ออนไลน์แบบเลือกใช้ NextPDF Enterprise ไม่ได้บังคับใช้จำนวน seat ตามสัญญาในขณะรันไทม์
ขอบเขตการปฏิบัติตามกฎหมาย
หัวข้อที่มีชื่อว่า “ขอบเขตการปฏิบัติตามกฎหมาย”ข้อกำหนดด้านความจุและ seat อยู่ภายใต้ข้อตกลงสิทธิ์การใช้งานของคุณ ไม่ใช่การบังคับใช้ในขณะรันไทม์ เอกสารนี้ไม่ใช่ความเห็นทางกฎหมาย โปรดปรึกษาที่ปรึกษาด้านการปฏิบัติตามกฎและด้านกฎหมายของคุณเองเกี่ยวกับภาระผูกพันตามสัญญาและกฎระเบียบของคุณ