Enterprise phiên bản
Cấp phép
Tổng quan nhanh
Phần tiêu đề “Tổng quan nhanh”NextPDF Enterprise phân giải giấy phép của bạn thành một quyền sử dụng (entitlement) tại runtime: một bậc phiên bản, một tập năng lực, và một quyết định về branding. Một giấy phép trả phí đã hết hạn vẫn tiếp tục chạy theo bảo đảm dự phòng vĩnh viễn; chỉ có cập nhật và hỗ trợ dừng lại. Trang này mô tả hành vi quan sát được từ bên ngoài của bề mặt cấp phép, các cổng năng lực và tính năng, và contract kích hoạt trực tuyến tùy chọn.
Tính khả dụng và cấp phép
Phần tiêu đề “Tính khả dụng và cấp phép”Năng lực này được phát hành trong NextPDF Enterprise (nextpdf/enterprise) và kích hoạt cùng một license envelope ở bậc Enterprise. Một triển khai không có quyền đó sẽ không nạp các lớp của năng lực này. So sánh các phiên bản và lấy giấy phép.
Cấp phép là bề mặt Enterprise nền tảng: nó phân giải mọi năng lực khác, nên nó luôn hiện diện ngay khi gói Enterprise được cài đặt. Các tính năng downstream riêng lẻ được kiểm soát bởi các mã năng lực — các năng lực theo bậc phiên bản và các gói bổ trợ hết hạn độc lập. Cổng báo cáo phiên bản đang hoạt động, tính hợp lệ, trạng thái thời gian ân hạn, và tập các gói đang hoạt động.
Tổng quan khái niệm
Phần tiêu đề “Tổng quan khái niệm”Bề mặt cấp phép có một nhiệm vụ: biến một giấy phép thành một quyết định mà ứng dụng host có thể hành động dựa trên đó. Nó tạo ra một kết quả entitlement bất biến với năm trường quan trọng tại runtime — bậc phiên bản, kênh (trả phí hay đánh giá), chế độ branding, liệu phiên bản đã cài đặt có được phép chạy hay không, và liệu cập nhật và hỗ trợ có được cấp quyền hay không.
Các phiên bản tạo thành một hệ thống phân cấp nghiêm ngặt: Enterprise bao gồm Pro, Pro bao gồm Core. Do đó một lần kiểm tra năng lực thành công khi phiên bản được cấp phép ở mức bằng hoặc cao hơn bậc tối thiểu của năng lực. Một số năng lực hoàn toàn không gắn với một phiên bản — chúng thuộc về các gói bổ trợ mang theo thời hạn riêng, độc lập với thời hạn của giấy phép nền tảng.
Quyết định entitlement phân biệt năm trạng thái rời rạc. Một giấy phép đang hoạt động có quyền truy cập đầy đủ. Một giấy phép trả phí đã quá thời hạn nhưng còn trong cửa sổ ân hạn vẫn giữ quyền truy cập đầy đủ và hiển thị một cảnh báo cần gia hạn sớm. Một giấy phép trả phí đã quá cửa sổ ân hạn sẽ bước vào trạng thái dự phòng vĩnh viễn: phiên bản đã cài đặt vẫn tiếp tục chạy vô thời hạn, nhưng cập nhật và hỗ trợ không còn được cấp quyền. Một giấy phép đánh giá hành xử khác — khi nó hết hạn, runtime bị hạn chế, vì đánh giá được giới hạn thời gian theo thiết kế. Khi không có giấy phép nào hiện diện, host phân giải về một trạng thái fail-closed và bất kỳ đầu ra nào đều được đánh dấu trực quan để một triển khai chưa được cấp phép không bao giờ bị nhầm với một triển khai trả phí.
Một số lượng chỗ ngồi (seat) theo hợp đồng không được thực thi tại runtime. Không có telemetry và không có yêu cầu phone-home bắt buộc cho hoạt động thông thường. Client trực tuyến tùy chọn chỉ tồn tại để kích hoạt tường minh, kiểm tra gia hạn, và các heartbeat best-effort, và một host không bao giờ gọi nó vẫn nhận được một quyết định entitlement đầy đủ từ một giấy phép được cung cấp cục bộ.
Chế độ dùng thử (trial) là một chính sách riêng, hẹp hơn. Khi một giấy phép được đánh dấu là dùng thử, nó giới hạn thông lượng xử lý và áp một hình mờ đánh giá lên đầu ra được tạo, để công việc sản xuất số lượng lớn yêu cầu một giấy phép trả phí. Việc hết hạn dùng thử được thực thi nghiêm ngặt, không có thời gian ân hạn.
Vì sao nó hoạt động theo cách này
Phần tiêu đề “Vì sao nó hoạt động theo cách này”Quyết định chịu tải là một giấy phép trả phí không bao giờ vô hiệu hóa runtime đã cài đặt. Khi một thời hạn trả phí kết thúc, entitlement chuyển sang EntitlementStatus::PerpetualFallback — phiên bản đã cài đặt vẫn tiếp tục chạy, và chỉ có cập nhật cùng hỗ trợ ở phía trước bị thu hồi. Bảo đảm đó vẫn giữ được vì entitlement là một quyết định thuần trong bộ nhớ trên một giấy phép được cung cấp cục bộ, nên không có phone-home và không có sự cố mạng nào có thể rút một runtime trả phí ra khỏi tay khách hàng. Đối trọng là các mặc định fail-closed: một giấy phép vắng mặt hoặc một giấy phép đánh giá đã hết hạn sẽ phân giải về bậc Core và đặt brandingMode thành một hình mờ đánh giá. Nhờ vậy một triển khai chưa được cấp phép không bao giờ âm thầm bị nhầm với một triển khai trả phí. Dự phòng vĩnh viễn cho những gì bạn đã mua, fail-closed cho những gì bạn chưa mua — chính sự kết hợp đó giữ cho việc cấp phép thân thiện với môi trường offline mà không trở thành một hệ thống dựa trên lòng tin.
Bối cảnh thiết kế: Open core, không khóa nhà cung cấp.
Bề mặt Public API
Phần tiêu đề “Bề mặt Public API”composer require nextpdf/enterprise:^3Các điểm tích hợp được hỗ trợ là entitlement evaluator (giấy phép thành kết quả entitlement), feature gate runtime (isFeatureEnabled, requireFeature, hasCapability, requireCapability, isInGracePeriod, currentEdition, getActivePacks, trialPolicy), capability registry (phân giải route-thành-năng-lực và tập năng lực có sẵn), và license client tùy chọn (activate, checkRenewal, heartbeat). Hãy coi entitlement evaluator là cơ quan thẩm quyền duy nhất cho các quyết định bắt nguồn từ giấy phép; đừng rẽ nhánh trực tiếp trên các trường giấy phép thô.
Mẫu mã — bắt đầu nhanh
Phần tiêu đề “Mẫu mã — bắt đầu nhanh”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();Mẫu mã — production
Phần tiêu đề “Mẫu mã — production”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(); }}Trường hợp biên và lưu ý
Phần tiêu đề “Trường hợp biên và lưu ý”- Dự phòng vĩnh viễn không phải là thời gian ân hạn. Ân hạn giữ cập nhật và hỗ trợ bật; dự phòng chỉ giữ runtime bật. Cả hai đều giữ phiên bản đã cài đặt chạy cho các giấy phép trả phí.
- Hết hạn đánh giá hạn chế runtime. Khác với một giấy phép trả phí, một giấy phép đánh giá đã hết hạn sẽ dừng runtime và giữ lại hình mờ đánh giá.
- Không có giấy phép thì fail closed. Khi không có giấy phép nào được cấu hình, entitlement là “không có giấy phép”, runtime bị vô hiệu hóa cho các đường Enterprise, và đầu ra phát ra mang hình mờ để trạng thái này hiển thị rõ trong nhật ký và artifact.
- Hết hạn gói là độc lập. Một gói bổ trợ có thể hết hạn trong khi giấy phép nền tảng vẫn còn hoạt động; năng lực mà nó cấp khi đó thất bại với một kết quả “pack expired” riêng biệt, tách khỏi “not licensed”.
- Từ chối năng lực có cấu trúc. Một năng lực bị từ chối mang theo năng lực được yêu cầu, gói được yêu cầu (nếu có), các gói hiện tại, và một URL thông tin nâng cấp — hãy hiển thị những thứ này cho người dùng thay vì một lỗi trần trụi.
Hiệu năng
Phần tiêu đề “Hiệu năng”Việc đánh giá entitlement và kiểm tra năng lực là các thao tác trong bộ nhớ với thời gian hằng số dựa trên một giấy phép đã được phân tích — không có I/O trên đường request. Client trực tuyến tùy chọn chỉ thực hiện các cuộc gọi mạng khi kích hoạt tường minh, kiểm tra gia hạn, và heartbeat; thất bại của heartbeat không gây lỗi nghiêm trọng và không bao giờ chặn việc xử lý.
Ghi chú bảo mật
Phần tiêu đề “Ghi chú bảo mật”Trang này chủ ý chỉ mô tả hành vi quan sát được. Việc xác minh license-envelope, kiểm tra chữ ký, logic chống lạm dụng, và vị trí của mã thực thi nằm ngoài phạm vi và không được tài liệu hóa trên bề mặt công khai. Người vận hành tương tác với contract gói công khai và hành vi được tài liệu hóa. Contract kích hoạt trực tuyến dùng một envelope phản hồi đã ký và một nonce do client cung cấp để một host có thể phát hiện một phản hồi kích hoạt bị phát lại hoặc bị giả mạo; quy trình xác minh chính xác không phải là một phần của contract công khai.
Phù hợp tiêu chuẩn
Phần tiêu đề “Phù hợp tiêu chuẩn”- Phản hồi kích hoạt trực tuyến được mang trong một envelope đã ký kiểu JWS — một bộ ba protected-header / payload / signature ở dạng compact, URL-safe được mô tả bởi RFC 7515 (JSON Web Signature), §3.1.
- Vật liệu chữ ký là base64url, được giải mã theo RFC 7515 §5.2.
- JSON canonical cho tính toàn vẹn của envelope tuân theo JSON Canonicalization Scheme, RFC 8785, §3.
- Chữ ký kích hoạt là một chữ ký Ed25519 được xác minh dựa trên một khóa công khai 32 byte, theo RFC 8032 (EdDSA), §5.1.
- Các token dịch vụ ngắn hạn dùng giữa các thành phần mang theo các claim đã đăng ký
iss,aud,sub,expvàjti, và tôn trọng quy tắc not-after củaexptheo RFC 7519 (JWT), §4.1.4.
Hợp đồng hành vi
Phần tiêu đề “Hợp đồng hành vi”- Việc đánh giá entitlement tạo ra một kết quả bất biến với một tập trường cố định liên quan tới runtime (bậc phiên bản, kênh, chế độ branding, runtime-allowed, cập nhật/hỗ trợ được cấp quyền).
- Một giấy phép trả phí không bao giờ vô hiệu hóa runtime đã cài đặt: việc hết hạn đưa nó qua ân hạn rồi tới dự phòng vĩnh viễn, chỉ thu hồi cập nhật và hỗ trợ.
- Một giấy phép đánh giá đã hết hạn hạn chế runtime và giữ lại hình mờ đánh giá; việc hết hạn dùng thử được thực thi nghiêm ngặt không có thời gian ân hạn.
- Trạng thái “không có giấy phép” là fail-closed cho các đường Enterprise, và đầu ra phát ra mang hình mờ để một triển khai chưa được cấp phép không bao giờ bị nhầm với một triển khai trả phí.
- Từ chối năng lực có cấu trúc: nó mang theo năng lực được yêu cầu, gói được yêu cầu (nếu có), các gói đang hoạt động, và một URL thông tin nâng cấp.
- Việc kiểm tra entitlement và năng lực là các thao tác trong bộ nhớ thời gian hằng số không có I/O trên đường request.
Ranh giới công bố
Phần tiêu đề “Ranh giới công bố”Trang này chỉ tài liệu hóa hành vi quan sát được từ bên ngoài và bề mặt Public API được hỗ trợ. Các đường dẫn namespace nội bộ, lớp helper, bảng cơ chế, tên tệp runbook, và tiền tố ticket nằm ngoài phạm vi.
Phương án dự phòng Core
Phần tiêu đề “Phương án dự phòng Core”NextPDF Core (Apache-2.0) không có bề mặt entitlement theo phiên bản hay năng lực — không có feature gate, không có entitlement evaluator, không có license client. Một host cần hành vi Apache-2.0 chưa cấp phép sẽ dùng engine Core trực tiếp thay vì pipeline Enterprise. Core không kiểm soát, không gắn hình mờ vì lý do cấp phép, và không đánh giá entitlement.
Phương án dự phòng Pro
Phần tiêu đề “Phương án dự phòng Pro”NextPDF Pro cũng không có bề mặt entitlement — không hề có; năng lực này không có bản tương đương ở bậc Pro. Cấp phép, capability registry, feature gate và contract kích hoạt chỉ được phát hành trong gói nextpdf/enterprise.
Ghi chú ranh giới Enterprise
Phần tiêu đề “Ghi chú ranh giới Enterprise”Quy trình xác minh license-envelope, hiện thực kiểm tra chữ ký, logic chống lạm dụng, và vị trí của mã thực thi chỉ được mô tả ở mức hành vi và không được tái hiện trên bề mặt công khai. Contract kích hoạt trực tuyến được tài liệu hóa như một envelope phản hồi đã ký với một nonce do client cung cấp; quy trình xác minh chính xác không phải là một phần của contract công khai.
Ranh giới triển khai
Phần tiêu đề “Ranh giới triển khai”NextPDF Enterprise phân giải entitlement từ một giấy phép được cung cấp cục bộ mà không có phone-home bắt buộc cho hoạt động thông thường. Client trực tuyến tùy chọn chỉ thực hiện các cuộc gọi mạng khi kích hoạt tường minh, kiểm tra gia hạn, và các heartbeat best-effort; thất bại của heartbeat không gây lỗi nghiêm trọng và không bao giờ chặn việc xử lý. Người vận hành sở hữu việc cấp phát giấy phép, cấu hình kích hoạt/gia hạn, và chính sách truyền tải cho client trực tuyến tùy chọn. NextPDF Enterprise không thực thi một số lượng chỗ ngồi theo hợp đồng tại runtime.
Ranh giới tuân thủ pháp lý
Phần tiêu đề “Ranh giới tuân thủ pháp lý”Các điều khoản về dung lượng và chỗ ngồi được chi phối bởi thỏa thuận giấy phép của bạn, không phải bởi việc thực thi tại runtime. Tài liệu này không phải là một ý kiến pháp lý; hãy tham vấn các cố vấn tuân thủ và pháp lý của riêng bạn về các nghĩa vụ hợp đồng và quy định của bạn.