تخطَّ إلى المحتوى
getnextpdf.com

Enterprise الإصدار

الترخيص

يَحلّ ⁨NextPDF Enterprise⁩ ترخيصك إلى استحقاق في وقت التشغيل: درجة إصدار، ومجموعة من القدرات، وقرار علامة تجارية. ويظل الترخيص المدفوع المنتهية صلاحيته يعمل بموجب ضمان احتياطي دائم؛ ولا يتوقّف سوى التحديث والدعم. تصف هذه الصفحة السلوك القابل للملاحظة خارجيًا لسطح الترخيص، وبوابات القدرات والميزات، وعقد التفعيل عبر الإنترنت الاختياري.

تُشحن هذه القدرة في ⁨NextPDF Enterprise⁩ (nextpdf/enterprise) وتُفعَّل بغلاف ترخيص من درجة ⁨Enterprise⁩. والنشر الذي يفتقر إلى ذلك الاستحقاق لا يُحمِّل فئات القدرة. قارن الإصدارات واحصل على ترخيص.

الترخيص هو سطح ⁨Enterprise⁩ الأساسي: فهو يَحلّ كل قدرة أخرى، لذا يكون حاضرًا دائمًا بمجرد تثبيت حزمة ⁨Enterprise⁩. وتُبوَّب الميزات الفردية اللاحقة برموز قدرات — قدرات درجة الإصدار وحزم إضافية تنتهي صلاحيتها على نحو مستقل. وتُبلِّغ البوابة عن الإصدار النشط، والصلاحية، وحالة فترة السماح، ومجموعة الحزم النشطة.

لسطح الترخيص مهمة واحدة: تحويل الترخيص إلى قرار يمكن لتطبيق مُضيف أن يتصرّف بناءً عليه. وهو يُنتج نتيجة استحقاق غير قابلة للتغيير بخمسة حقول تهمّ في وقت التشغيل — درجة الإصدار، والقناة (مدفوع أو تقييم)، ووضع العلامة التجارية، وما إذا كان يجوز تشغيل الإصدار المثبَّت، وما إذا كان التحديث والدعم مُستحقَّين.

تُشكِّل الإصدارات تسلسلًا هرميًا صارمًا: ⁨Enterprise⁩ يتضمّن ⁨Pro⁩، و⁨Pro⁩ يتضمّن ⁨Core⁩. ولذلك ينجح فحص القدرة حين يكون الإصدار المُرخَّص عند الدرجة الدنيا للقدرة أو فوقها. وبعض القدرات غير مرتبطة بإصدار البتة — فهي تنتمي إلى حزم إضافية تحمل انتهاء صلاحيتها الخاص، مستقلًا عن مدة الترخيص الأساسي.

يُميّز قرار الاستحقاق خمس حالات منفصلة. فالترخيص النشط له وصول كامل. والترخيص المدفوع المُتجاوز مدته لكن ضمن نافذة سماحه يحتفظ بالوصول الكامل ويُظهِر تحذير “جدِّد قريبًا”. والترخيص المدفوع المُتجاوز نافذة سماحه يدخل الاحتياطي الدائم: يظل الإصدار المثبَّت يعمل إلى أجل غير مسمى، لكن التحديث والدعم لم يعودا مُستحقَّين. ويتصرّف ترخيص التقييم على نحو مختلف — فعند انتهاء صلاحيته يُقيَّد وقت التشغيل، لأن التقييم محدود بالزمن بحكم التصميم. وحين لا يوجد ترخيص، يَحلّ المُضيف إلى حالة فاشلة مغلقة ويُوسَم أي ناتج بصريًا حتى لا يُخلَط أي نشر غير مُرخَّص بنشر مدفوع.

لا يُفرَض عدد المقاعد التعاقدي في وقت التشغيل. ولا يوجد قياس عن بُعد ولا اتصال إلزامي بالخادم للتشغيل الاعتيادي. والعميل عبر الإنترنت الاختياري موجود فقط للتفعيل الصريح، وفحوص التجديد، ونبضات أفضل-جهد، والمُضيف الذي لا يستدعيه أبدًا يتلقّى مع ذلك قرار استحقاق كاملًا من ترخيص مُزوَّد محليًا.

وضع التجربة سياسة منفصلة وأضيق. حين يُعلَّم ترخيص بأنه تجربة، فإنه يضع سقفًا لإنتاجية المعالجة ويطبّق علامة مائية للتقييم على الناتج المُولَّد، بحيث يتطلّب العمل الإنتاجي الجَملي ترخيصًا مدفوعًا. ويُفرَض انتهاء صلاحية التجربة بصرامة، بلا فترة سماح.

القرار الحامل هو أن الترخيص المدفوع لا يُعطِّل أبدًا وقت التشغيل المثبَّت. فعند انتهاء مدة مدفوعة، ينتقل الاستحقاق إلى EntitlementStatus::PerpetualFallback — يظل الإصدار المثبَّت يعمل، ولا يُلغى سوى التحديثات الأمامية والدعم. ويصمد هذا الضمان لأن الاستحقاق قرار خالص في الذاكرة على ترخيص مُزوَّد محليًا، فلا يمكن لاتصال بالخادم ولا لانقطاع شبكة أن يسحب وقت تشغيل مدفوعًا من تحت العميل. والثقل الموازن هو الإعدادات الافتراضية الفاشلة المغلقة: فالترخيص الغائب أو التقييم المنتهي يَحلّ إلى درجة ⁨Core⁩ ويضبط brandingMode على علامة مائية للتقييم. وهكذا لا يُخلَط أبدًا نشر غير مُرخَّص بنشر مدفوع في صمت. احتياطي دائم لما اشتريته، وفشل مغلق لما لم تشترِه — هذا الاقتران هو ما يُبقي الترخيص وديًّا مع وضع دون اتصال دون أن يصير نظام شرف.

خلفية التصميم: نواة مفتوحة، بلا حبس تقني.

Terminal window
composer require nextpdf/enterprise:^3

نقاط التكامل المدعومة هي مُقيِّم الاستحقاق (من الترخيص إلى نتيجة الاستحقاق)، وبوابة الميزات في وقت التشغيل (isFeatureEnabled، requireFeature، hasCapability، requireCapability، isInGracePeriod، currentEdition، getActivePacks، trialPolicy)، وسجل القدرات (تسوية المسار إلى قدرة ومجموعة القدرات المتاحة)، وعميل الترخيص الاختياري (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();
}
}
  • الاحتياطي الدائم ليس فترة سماح. يُبقي السماحُ التحديثَ والدعم نشطين؛ ويُبقي الاحتياطيُّ وقتَ التشغيل وحده نشطًا. وكلاهما يُبقي الإصدار المثبَّت يعمل للتراخيص المدفوعة.
  • انتهاء صلاحية التقييم يُقيِّد وقت التشغيل. خلافًا للترخيص المدفوع، يوقف ترخيص التقييم المنتهي وقتَ التشغيل ويُبقي علامة التقييم المائية.
  • انعدام الترخيص يفشل فشلًا مغلقًا. مع عدم تهيئة أي ترخيص، يكون الاستحقاق “لا ترخيص”، ويُعطَّل وقت التشغيل لمسارات ⁨Enterprise⁩، ويُوسَم الناتج المُصدَر بعلامة مائية حتى تكون الحالة ظاهرة في السجلات والأدوات.
  • انتهاء صلاحية الحزمة مستقل. يمكن أن تنتهي صلاحية حزمة إضافية بينما يظل الترخيص الأساسي نشطًا؛ فتفشل القدرة التي منحتها عندئذٍ بنتيجة “انتهت صلاحية الحزمة” متمايزة عن “غير مُرخَّص”.
  • رفض القدرة مُنظَّم. تحمل القدرة المرفوضة القدرةَ المطلوبة، والحزمةَ المطلوبة (إن وُجدت)، والحزمَ الحالية، وعنوان ⁨URL⁩ لمعلومات الترقية — أظهِرها للمستخدم بدلًا من خطأ مُجرَّد.

تقييم الاستحقاق وفحوص القدرات عمليات في الذاكرة بزمن ثابت على ترخيص مُحلَّل — بلا إدخال/إخراج على مسار الطلب. ويُجري العميل عبر الإنترنت الاختياري مكالمات شبكية فقط عند التفعيل الصريح وفحوص التجديد والنبضات؛ وإخفاقات النبضة غير قاتلة ولا تحجب المعالجة أبدًا.

تصف هذه الصفحة عمدًا السلوك القابل للملاحظة فقط. والتحقّق من غلاف الترخيص، وفحص التوقيع، ومنطق مكافحة الإساءة، وموضع شيفرة الإنفاذ خارج النطاق ولا تُوثَّق على السطح العام. ويتفاعل المُشغِّلون مع عقد الحزمة العام ومع عقد السلوك المُوثَّق. ويستخدم عقد التفعيل عبر الإنترنت غلافَ استجابة موقَّعًا وقيمةً مُستخدَمة-مرة يزوّدها العميل بحيث يمكن لمُضيف اكتشاف استجابة تفعيل مُعاد تشغيلها أو مُتلاعَب بها؛ وإجراء التحقّق الدقيق ليس جزءًا من العقد العام.

  • تُحمَل استجابة التفعيل عبر الإنترنت في غلاف موقَّع على نمط ⁨JWS⁩ — ثلاثية رأس محمي / حمولة / توقيع بالشكل المُختزَل الآمن للـ ⁨URL⁩ الموصوف في ⁨RFC 7515⁩ (توقيع الويب ⁨JSON⁩)، §3.1.
  • مادة التوقيع بترميز ⁨base64url⁩، مُفكَّكة وفق ⁨RFC 7515⁩ §5.2.
  • يتبع ⁨JSON⁩ القانونيُّ لسلامة الغلاف مخطط ضبط ⁨JSON⁩ القانوني، ⁨RFC 8785⁩، §3.
  • توقيع التفعيل هو توقيع ⁨Ed25519⁩ مُتحقَّق منه مقابل مفتاح عام بطول 32 بايت، وفق ⁨RFC 8032⁩ (⁨EdDSA⁩)، §5.1.
  • تحمل رموز الخدمة قصيرة العمر المستخدمة بين المكوّنات الادعاءات المُسجَّلة iss وaud وsub وexp وjti، وتحترم قاعدة “ليس بعد” الخاصة بـ exp وفق ⁨RFC 7519⁩ (⁨JWT⁩)، §4.1.4.
  • يُنتج تقييم الاستحقاق نتيجة غير قابلة للتغيير بمجموعة ثابتة من الحقول ذات الصلة بوقت التشغيل (درجة الإصدار، والقناة، ووضع العلامة التجارية، وجواز وقت التشغيل، واستحقاق التحديث/الدعم).
  • لا يُعطِّل الترخيص المدفوع أبدًا وقت التشغيل المثبَّت: يُحرِّكه انتهاء الصلاحية عبر السماح ثم الاحتياطي الدائم، فيُلغي التحديث والدعم فقط.
  • يُقيِّد ترخيص التقييم المنتهي وقتَ التشغيل ويُبقي علامة التقييم المائية؛ ويُفرَض انتهاء صلاحية التجربة بصرامة بلا فترة سماح.
  • حالة “لا ترخيص” فاشلة مغلقة لمسارات ⁨Enterprise⁩، ويُوسَم الناتج المُصدَر بعلامة مائية حتى لا يُخلَط أي نشر غير مُرخَّص بنشر مدفوع.
  • رفض القدرة مُنظَّم: يحمل القدرةَ المطلوبة، والحزمةَ المطلوبة (إن وُجدت)، والحزمَ النشطة، وعنوان ⁨URL⁩ لمعلومات الترقية.
  • فحوص الاستحقاق والقدرات عمليات في الذاكرة بزمن ثابت بلا إدخال/إخراج على مسار الطلب.

توثّق هذه الصفحة السلوك القابل للملاحظة خارجيًا وسطح الـ ⁨API⁩ العام المدعوم فقط. ومسارات فضاء الأسماء الداخلية، والفئات المساعِدة، وجداول الآليات، وأسماء ملفات أدلة التشغيل، وبادئات التذاكر خارج النطاق.

لا يملك ⁨NextPDF Core⁩ (⁨Apache-2.0⁩) أي سطح استحقاق إصدار أو قدرة — لا بوابة ميزات، ولا مُقيِّم استحقاق، ولا عميل ترخيص. والمُضيف الذي يحتاج سلوك ⁨Apache-2.0⁩ غير المُرخَّص يستخدم محرك ⁨Core⁩ مباشرةً بدلًا من مسار ⁨Enterprise⁩. ‏⁨Core⁩ لا يُبوِّب، ولا يضع علامة مائية للترخيص، ولا يُقيِّم استحقاقًا.

لا يملك ⁨NextPDF Pro⁩ أي سطح استحقاق أيضًا — لا شيء؛ فهذه القدرة بلا مكافئ على مستوى ⁨Pro⁩. الترخيص، وسجل القدرات، وبوابة الميزات، وعقد التفعيل تُشحن في حزمة nextpdf/enterprise فقط.

يُوصَف إجراء التحقّق من غلاف الترخيص، وتنفيذ فحص التوقيع، ومنطق مكافحة الإساءة، وموضع شيفرة الإنفاذ على مستوى السلوك فقط ولا يُعاد إنتاجها على السطح العام. ويُوثَّق عقد التفعيل عبر الإنترنت كغلاف استجابة موقَّع بقيمة مُستخدَمة-مرة يزوّدها العميل؛ وإجراء التحقّق الدقيق ليس جزءًا من العقد العام.

يَحلّ ⁨NextPDF Enterprise⁩ الاستحقاق من ترخيص مُزوَّد محليًا بلا اتصال إلزامي بالخادم للتشغيل الاعتيادي. ويُجري العميل عبر الإنترنت الاختياري مكالمات شبكية فقط عند التفعيل الصريح وفحوص التجديد ونبضات أفضل-جهد؛ وإخفاقات النبضة غير قاتلة ولا تحجب المعالجة أبدًا. ويملك المُشغِّل تزويد الترخيص، وتهيئة التفعيل/التجديد، وسياسة النقل للعميل عبر الإنترنت الاختياري. ولا يُفرِض ⁨NextPDF Enterprise⁩ عدد مقاعد تعاقديًا في وقت التشغيل.

شروط السعة والمقاعد محكومة باتفاقية الترخيص الخاصة بك، لا بالإنفاذ في وقت التشغيل. هذه الوثائق ليست رأيًا قانونيًا؛ استشِر مستشاري الامتثال والشؤون القانونية لديك بخصوص التزاماتك التعاقدية والتنظيمية.