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

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

Terminal window
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 อยู่นอกขอบเขต

NextPDF Core (Apache-2.0) ไม่มีพื้นผิวสิทธิรุ่นหรือความสามารถ คือ ไม่มี feature gate ไม่มีตัวประเมินสิทธิ ไม่มี license client โฮสต์ที่ต้องการพฤติกรรม Apache-2.0 ที่ไม่มีสิทธินั้นใช้เอนจิน Core โดยตรงแทนไปป์ไลน์ Enterprise Core ไม่เกต ไม่ใส่ลายน้ำเพื่อสิทธิ์การใช้งาน หรือประเมินสิทธิ

NextPDF Pro ก็ไม่มีพื้นผิวสิทธิเช่นกัน — ไม่มีเลย ความสามารถนี้ไม่มีสิ่งเทียบเท่าในระดับ Pro Licensing capability registry feature gate และสัญญาการเปิดใช้งานจัดส่งในแพ็กเกจ nextpdf/enterprise เท่านั้น

ขั้นตอนการตรวจสอบซองสิทธิ์การใช้งาน การนำการตรวจสอบลายเซ็นไปใช้ ตรรกะป้องกันการละเมิด และตำแหน่งของโค้ดบังคับใช้ถูกอธิบายในระดับพฤติกรรมเท่านั้นและไม่ได้ทำซ้ำบนพื้นผิวสาธารณะ สัญญาการเปิดใช้งานออนไลน์บันทึกไว้เป็นซองการตอบสนองที่ลงนามพร้อม nonce ที่ไคลเอนต์จัดหา ขั้นตอนการตรวจสอบที่แน่นอนไม่ได้เป็นส่วนหนึ่งของสัญญาสาธารณะ

NextPDF Enterprise resolve สิทธิจากสิทธิ์การใช้งานที่จัดหามาในเครื่องโดยไม่มีการ phone-home แบบบังคับสำหรับการดำเนินการตามปกติ ไคลเอนต์ออนไลน์แบบเลือกใช้ทำการเรียกเครือข่ายเฉพาะเมื่อมีการเปิดใช้งานอย่างชัดเจน การตรวจสอบการต่ออายุ และ heartbeat แบบ best-effort ความล้มเหลวของ heartbeat ไม่ร้ายแรงและไม่เคยขัดขวางการประมวลผล ผู้ดำเนินการเป็นเจ้าของการจัดเตรียมสิทธิ์การใช้งาน การกำหนดค่าการเปิดใช้งาน/การต่ออายุ และนโยบายการขนส่งสำหรับไคลเอนต์ออนไลน์แบบเลือกใช้ NextPDF Enterprise ไม่ได้บังคับใช้จำนวน seat ตามสัญญาในขณะรันไทม์

ข้อกำหนดด้านความจุและ seat อยู่ภายใต้ข้อตกลงสิทธิ์การใช้งานของคุณ ไม่ใช่การบังคับใช้ในขณะรันไทม์ เอกสารนี้ไม่ใช่ความเห็นทางกฎหมาย โปรดปรึกษาที่ปรึกษาด้านการปฏิบัติตามกฎและด้านกฎหมายของคุณเองเกี่ยวกับภาระผูกพันตามสัญญาและกฎระเบียบของคุณ