Enterprise エディション
ライセンス
一目で分かる概要
「一目で分かる概要」という見出しのセクションNextPDF Enterprise は、ライセンスをランタイムのエンタイトルメント、すなわちエディションティア、機能セット、ブランディングの決定へと解決します。期限切れになった有料ライセンスは、永続フォールバック保証のもとで動作し続けます。停止するのは更新とサポートのみです。このページでは、ライセンスサーフェスの外部から観測できる挙動、機能とケイパビリティのゲート、そして任意のオンラインアクティベーションコントラクトについて説明します。
提供状況とライセンス
「提供状況とライセンス」という見出しのセクションこのケイパビリティは NextPDF Enterprise(nextpdf/enterprise)で提供され、Enterprise ティアのライセンスエンベロープで有効化されます。そのエンタイトルメントを持たないデプロイメントは、このケイパビリティのクラスをロードしません。エディションを比較してライセンスを取得する。
ライセンスは Enterprise の基盤となるサーフェスです。他のすべてのケイパビリティを解決するため、Enterprise パッケージがインストールされていれば常に存在します。個々の下流の機能は、ケイパビリティコード(エディションティアのケイパビリティと、独立して期限切れになるアドオンパック)によってゲートされます。ゲートは、有効なエディション、有効性、猶予期間の状態、そして有効なパックのセットを報告します。
概念の概要
「概念の概要」という見出しのセクションライセンスサーフェスの役割は 1 つです。ライセンスを、ホストアプリケーションが基づいて動作できる決定へと変換することです。実行時に重要となる 5 つのフィールド — エディションティア、チャネル(有料または評価版)、ブランディングモード、インストール済みバージョンが動作してよいかどうか、更新とサポートの権限があるかどうか — を持つ、不変のエンタイトルメント結果を生成します。
エディションは厳格な階層を形成します。Enterprise は Pro を含み、Pro は Core を含みます。したがって、ケイパビリティチェックは、ライセンスされたエディションがそのケイパビリティの最小ティア以上である場合に成功します。一部のケイパビリティはエディションにまったく結び付けられていません。それらは、ベースライセンスの期間とは独立した独自の有効期限を持つアドオンパックに属します。
エンタイトルメントの決定は、5 つの離散的な状態を区別します。アクティブなライセンスはフルアクセスを持ちます。期間を過ぎたが猶予ウィンドウ内にある有料ライセンスは、フルアクセスを維持し、近日中の更新を促す警告を表示します。猶予ウィンドウを過ぎた有料ライセンスは、永続フォールバックに入ります。インストール済みのバージョンは無期限に動作し続けますが、更新とサポートの権限はなくなります。評価版ライセンスは異なる挙動をします。評価版は設計上、期間が定められているため、期限切れになるとランタイムが制限されます。ライセンスが存在しない場合、ホストはフェイルクローズ状態に解決され、いかなる出力も視覚的にマークされて、ライセンスのないデプロイメントが有料のものと誤認されることが決してないようにします。
契約上のシート数は実行時には強制されません。通常の運用において、テレメトリも必須のフォンホームもありません。任意のオンラインクライアントは、明示的なアクティベーション、更新チェック、ベストエフォートのハートビートのためにのみ存在し、それを一度も呼び出さないホストでも、ローカルに供給されたライセンスから完全なエンタイトルメントの決定を受け取ります。
トライアルモードは、別個のより狭いポリシーです。ライセンスがトライアルとしてマークされている場合、処理スループットに上限を設け、生成された出力に評価版の透かしを適用します。これにより、大量の本番作業には有料ライセンスが必要になります。トライアルの期限切れは厳格に強制され、猶予期間はありません。
なぜこのように機能するのか
「なぜこのように機能するのか」という見出しのセクション肝となる決定は、有料ライセンスがインストール済みのランタイムを決して無効化しないことです。有料期間が終了すると、エンタイトルメントは EntitlementStatus::PerpetualFallback へと移行します。インストール済みのバージョンは動作し続け、取り消されるのは前方への更新とサポートのみです。この保証が成り立つのは、エンタイトルメントがローカルに供給されたライセンスに対する純粋なインメモリの決定であるためで、いかなるフォンホームもネットワーク障害も、有料ランタイムを顧客の足元から引き抜くことはできません。その対極にあるのがフェイルクローズのデフォルトです。ライセンスが存在しない場合や評価版が期限切れの場合は、Core ティアに解決され、brandingMode は評価版の透かしに設定されます。こうして、ライセンスのないデプロイメントが有料のものと黙って誤認されることは決してありません。購入したものには永続フォールバック、購入していないものにはフェイルクローズ — この組み合わせこそが、名誉制度に堕することなくライセンスをオフラインフレンドリーに保つものです。
設計背景: オープンコア、ロックインなし。
パブリック API サーフェス
「パブリック API サーフェス」という見出しのセクション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 を運びます。素のエラーではなく、これらをユーザーに提示してください。
パフォーマンス
「パフォーマンス」という見出しのセクションエンタイトルメント評価とケイパビリティチェックは、解析済みライセンスに対する定数時間のインメモリ操作であり、リクエストパス上に I/O はありません。任意のオンラインクライアントは、明示的なアクティベーション、更新チェック、ハートビートの場合にのみネットワーク呼び出しを実行します。ハートビートの失敗は致命的ではなく、処理をブロックすることは決してありません。
セキュリティに関する注意
「セキュリティに関する注意」という見出しのセクションこのページは意図的に、観測可能な挙動のみを説明します。ライセンスエンベロープの検証、署名チェック、不正利用対策ロジック、そして強制コードの所在は対象外であり、パブリックサーフェスには記載されません。オペレーターは、パブリックパッケージのコントラクトと文書化された挙動コントラクトを通じてやり取りします。オンラインアクティベーションコントラクトは、署名済みレスポンスエンベロープとクライアント供給のノンスを使用するため、ホストはリプレイされた、または改ざんされたアクティベーションレスポンスを検出できます。正確な検証手順はパブリックコントラクトの一部ではありません。
- オンラインアクティベーションレスポンスは、JWS スタイルの署名済みエンベロープ — RFC 7515 (JSON Web Signature) §3.1 で説明されるコンパクトな URL セーフ形式の、保護ヘッダー/ペイロード/署名のトリプル — で運ばれます。
- 署名マテリアルは base64url であり、RFC 7515 §5.2 に従ってデコードされます。
- エンベロープの完全性のための正規 JSON は、JSON Canonicalization Scheme、RFC 8785 §3 に従います。
- アクティベーション署名は、RFC 8032 (EdDSA) §5.1 に従って 32 バイトの公開鍵に対して検証される Ed25519 署名です。
- コンポーネント間で使用される短命のサービストークンは、登録済みのクレーム
iss、aud、sub、exp、jtiを運び、RFC 7519 (JWT) §4.1.4 のexpnot-after ルールを尊重します。
挙動コントラクト
「挙動コントラクト」という見出しのセクション- エンタイトルメント評価は、ランタイムに関連する固定セットのフィールド(エディションティア、チャネル、ブランディングモード、ランタイム許可、更新/サポートの権限)を持つ不変の結果を生成します。
- 有料ライセンスがインストール済みランタイムを無効化することは決してありません。期限切れになると、猶予期間、続いて永続フォールバックへと移行し、更新とサポートのみが取り消されます。
- 期限切れになった評価版ライセンスはランタイムを制限し、評価版の透かしを維持します。トライアルの期限切れは、猶予期間なしで厳格に強制されます。
- 「ライセンスなし」の状態は Enterprise のパスについてフェイルクローズであり、出力には透かしが付いて、ライセンスのないデプロイメントが有料のものと誤認されることが決してないようにします。
- ケイパビリティの拒否は構造化されています。必要なケイパビリティ、(あれば)必要なパック、有効なパック、そしてアップグレード情報の URL を運びます。
- エンタイトルメントとケイパビリティのチェックは、リクエストパス上に I/O のない定数時間のインメモリ操作です。
公開範囲の境界
「公開範囲の境界」という見出しのセクションこのページは、外部から観測できる挙動とサポートされるパブリック API サーフェスのみを文書化しています。内部の名前空間パス、ヘルパークラス、メカニズムのテーブル、ランブックのファイル名、チケットプレフィックスは対象外です。
Core フォールバック
「Core フォールバック」という見出しのセクションNextPDF Core (Apache-2.0) には、エディションやケイパビリティのエンタイトルメントサーフェスがありません。機能ゲートも、エンタイトルメント評価器も、ライセンスクライアントもありません。ライセンスのない Apache-2.0 の挙動を必要とするホストは、Enterprise パイプラインではなく Core エンジンを直接使用します。Core は、ゲート、ライセンスのための透かし、エンタイトルメントの評価を行いません。
Pro フォールバック
「Pro フォールバック」という見出しのセクションNextPDF Pro にもエンタイトルメントサーフェスはありません。一切ありません。このケイパビリティには Pro ティア相当のものが存在しません。ライセンス、ケイパビリティレジストリ、機能ゲート、アクティベーションコントラクトは nextpdf/enterprise パッケージにのみ含まれます。
Enterprise の境界に関する注記
「Enterprise の境界に関する注記」という見出しのセクションライセンスエンベロープの検証手順、署名チェックの実装、不正利用対策ロジック、そして強制コードの所在は、挙動レベルでのみ説明され、パブリックサーフェスには複製されません。オンラインアクティベーションコントラクトは、クライアント供給のノンスを伴う署名済みレスポンスエンベロープとして文書化されています。正確な検証手順はパブリックコントラクトの一部ではありません。
デプロイの境界
「デプロイの境界」という見出しのセクションNextPDF Enterprise は、通常の運用に必須のフォンホームなしに、ローカルに供給されたライセンスからエンタイトルメントを解決します。任意のオンラインクライアントは、明示的なアクティベーション、更新チェック、ベストエフォートのハートビートの場合にのみネットワーク呼び出しを実行します。ハートビートの失敗は致命的ではなく、処理をブロックすることは決してありません。オペレーターは、ライセンスのプロビジョニング、アクティベーション/更新の構成、そして任意のオンラインクライアントのトランスポートポリシーを所有します。NextPDF Enterprise は、契約上のシート数を実行時に強制しません。
法令遵守の境界
「法令遵守の境界」という見出しのセクションキャパシティおよびシートの条件は、実行時の強制ではなく、ご自身のライセンス契約によって定められます。このドキュメントは法的見解ではありません。ご自身の契約上および規制上の義務については、ご自身のコンプライアンスおよび法務の助言者にご相談ください。