Enterprise エディション
リリース
NextPDF Enterprise は、リリースを型付きの値オブジェクト(リリースマニフェスト、アーティファクトごとのマニフェスト、ビルドプロファイル、ディストリビューションチャネル、アクセス境界)としてモデル化し、各アーティファクトを正しいチャネルとアクセス境界にルーティングするパブリッシングプランを導出します。
提供状況とライセンス
「提供状況とライセンス」という見出しのセクションこの機能は NextPDF Enterprise(nextpdf/enterprise)に同梱されており、Enterprise ティアのライセンスエンベロープで有効化されます。そのエンタイトルメントを持たないデプロイでは、この機能のクラスはロードされません。エディションを比較してライセンスを取得。
インストール
「インストール」という見出しのセクションcomposer require nextpdf/enterprise:^3コンセプト概要
「コンセプト概要」という見出しのセクションReleaseManifest は、あるバージョンに対するイミュータブルな最上位ドキュメントです。セマンティックバージョン、ソースコミット、ビルドタイムスタンプ、アーティファクトごとのマニフェストのリスト、およびオプションのサプライチェーン証跡パス(SBOM、GPG 署名、チェックサム)を記録します。そのスキーマバージョンは、追加に対してはマイナー、破壊的変更に対してはメジャーに従います。
ArtifactManifest は、ビルドされた 1 つのアーティファクトを記録します。正規のファイル名、バージョン、ソースコミット、ターゲットエディション、デリバリーモード、エンコーディング技術、ディストリビューションチャネル、ターゲット PHP バージョン、SHA-256 ダイジェスト、オプションのエンコーディング有効期限、およびビルドタイムスタンプです。EncodingTechnology は、アーティファクトがそもそもエンコードされたかどうかとは別に、アーティファクトをエンコードするために使用されたツールを区別します。クリアテキストのアーティファクトは常に None を持ちます。
DistributionChannel は、2 つの関心事を明示的に分離します。アーティファクトのオリジン(バイナリストレージ)と、パッケージの消費レイヤー(composer require が読み取るレジストリ)です。AccessBoundary は、誰がアーティファクトにアクセスできるか(有料顧客、期間限定の評価版、または顧客向けには決して公開されない内部 CI/QA/ステージング)を決定し、すべての境界が認証を必要とします。
PublishingPlan は、ビルドプロファイルとリリースマニフェストから導出されます。各プロファイルはパブリッシングターゲット(アーティファクトオリジンターゲットと消費レイヤーターゲット)に解決され、有料アーティファクトと評価版アーティファクトが正しい場所にルーティングされるよう、適切なアクセス境界が適用されます。
なぜこの設計なのか
「なぜこの設計なのか」という見出しのセクション要となる設計判断は、リリースを緩い構成ではなく、イミュータブルな型付き値オブジェクトとしてモデル化することです。アーティファクトのオリジンと消費レイヤーは別個の enum 型の関心事であり、アクセス境界は明示的です。そのため、誤ルーティングされたアーティファクト(顧客チャネルに配置された内部ビルド)は、暗黙的なプロダクションのミスではなく、モデリングエラーとして表面化します。プランは権威あるものではなく導出されたままです。意図されたターゲットを指定する一方で、実際のトランスポートはお客様のリリースツールが実行します。同じオブジェクトが Core コントラクトを通じて解決されるため、エディションをアップグレードするコンシューマーは呼び出し側コードを変更しません。その連続性こそがオープンコア境界の要点です。お客様が購入するのは Enterprise サーフェスであり、書き直しではありません。 設計背景: オープンコア、ロックインなし。
API サーフェス
「API サーフェス」という見出しのセクション| クラス | 責務 |
|---|---|
ReleaseManifest | イミュータブルな最上位リリースドキュメント。 |
ArtifactManifest | アーティファクトごとのメタデータと検証フィールド。 |
BuildProfile | パブリッシュ対象のビルド構成。 |
DistributionChannel | オリジンと消費レイヤーのチャネル enum。 |
AccessBoundary | Paid / Evaluation / Internal アクセスの enum。 |
EncodingTechnology | エンコーディングツールの enum(例: encoded / none)。 |
PublishingPlan / PublishingTarget | 導出されたプランとターゲットごとのルーティング。 |
コードサンプル — クイックスタート
「コードサンプル — クイックスタート」という見出しのセクションuse NextPDF\Enterprise\Release\PublishingPlan;
$plan = PublishingPlan::fromProfiles($profiles, '3.1.0');コードサンプル — プロダクション
「コードサンプル — プロダクション」という見出しのセクションuse NextPDF\Enterprise\Release\PublishingPlan;use NextPDF\Enterprise\Release\PublishingEnvironment;
$plan = PublishingPlan::fromProfiles( $profiles, '3.1.0', PublishingEnvironment::Production,);
foreach ($plan->targets as $target) { $logger->info('release.target', [ 'version' => $plan->version, 'channel' => $target->channel->value, ]);}エッジケースと注意点
「エッジケースと注意点」という見出しのセクション- アーティファクトのオリジンと消費レイヤーは、別個のチャネルです。オリジンはバイナリを保管し、消費レイヤーはそれを指し示すメタデータを提供します。
composer requireがどこで解決されるかを考える際に、これらを混同しないでください。 - クリアテキストのアーティファクトは常に
EncodingTechnology::Noneを報告します。エンコーディング技術フィールドは「どのツールか」に答えるものであり、「保護されたか」に答えるものではありません。 - Internal アクセス境界のアーティファクトは、顧客向けには決して公開されません。それを顧客チャネルにルーティングすることは、このモデルが明示的にするように設計された構成エラーです。
- パブリッシングプランは導出されたものであり、トランスポートに対して権威あるものではありません。意図されたターゲットを記述したものであり、実際のアップロードはお客様のリリースツールによって実行されます。
パフォーマンス
「パフォーマンス」という見出しのセクションプランの導出は、ビルドプロファイルの数に対して線形であり、プロファイルごとに少数のターゲットを生成します。値オブジェクトはイミュータブルであり、構築が安価です。
セキュリティに関する注意
「セキュリティに関する注意」という見出しのセクションリリースマニフェストは、サプライチェーン証跡パス(SBOM、GPG 署名、チェックサム)を保持します。このモジュールは、それらの参照を記録およびルーティングしますが、それ自体が署名を生成したり来歴を証明したりするものではありません。マニフェストは、それ単独での証拠としてではなく、お客様のリリースパイプラインによって検証されるべきメタデータとして扱ってください。
データレジデンシーと PII の緩和策
「データレジデンシーと PII の緩和策」という見出しのセクションリリースマニフェストには、個人データではなく、ビルドとアーティファクトのメタデータが含まれます。アーティファクトストレージには、お客様の通常の管理策を適用してください。
安全なテレメトリとログのスクラビング
「安全なテレメトリとログのスクラビング」という見出しのセクションリリースログには、署名鍵マテリアルや内部ストレージパスではなく、バージョンとチャネルを記録すべきです。
このモジュールについて、標準への適合は主張しません。これはリリースモデリングレイヤーです。サプライチェーン証跡(SBOM、署名、チェックサム)は、マニフェストによって参照され、お客様のリリースツールによって生成および検証されます。
FIPS モードの挙動
「FIPS モードの挙動」という見出しのセクションこのモジュールは暗号操作を一切行いません。GPG 署名とチェックサム生成は外部のリリースツールによって実行され、ここでは参照されるのみです。
脅威モデル
「脅威モデル」という見出しのセクション入力は、呼び出し元が提供するビルドプロファイルとマニフェストデータです。このモデルは、オリジン対消費の区別とアクセス境界の区別を明示的にするため、誤ルーティング(たとえば内部アーティファクトの露出)は、暗黙的なものではなく、目に見えるモデリングエラーになります。
ReleaseManifestは、あるバージョンに対するイミュータブルな最上位ドキュメントです。そのスキーマバージョンは、追加に対してはマイナー、破壊的変更に対してはメジャーに従います。DistributionChannelは、アーティファクトのオリジンとパッケージの消費レイヤーを別個の関心事として保ちます。これらを混同することは、この型が明示的にするモデリングエラーです。AccessBoundaryは Paid / Evaluation / Internal を区別し、すべての境界が認証を必要とします。Internal アーティファクトは、顧客向けには決して公開されません。PublishingPlanは、ビルドプロファイルとリリースマニフェストから導出されます。意図されたターゲットを記述したものであり、トランスポートに対して権威あるものではありません。
公開範囲の境界
「公開範囲の境界」という見出しのセクションこのページは、外部から観測可能な挙動とサポート対象の公開 API サーフェスのみを記述しています。内部名前空間パス、ヘルパークラス、メカニズムテーブル、ランブックのファイル名、チケットプレフィックスは対象外です。
Core フォールバック
「Core フォールバック」という見出しのセクションNextPDF Core には、リリースモデリングレイヤーがありません。リリースマニフェスト、ビルドプロファイル、またはパブリッシングプランを必要とする Core のみのコンシューマーは、それらを自分でモデル化しなければなりません。
Pro フォールバック
「Pro フォールバック」という見出しのセクションNextPDF Pro は、型付きのリリースマニフェスト、ビルドプロファイル、アクセス境界、または導出されるパブリッシングプランを提供しません。これらは nextpdf/enterprise パッケージにのみ同梱されています。Pro のみのデプロイには、リリースモデリングの要求を満たす Enterprise コンポーネントがありません。Enterprise サーフェスについては Enterprise の概要 を参照してください。
Enterprise 境界に関する注記
「Enterprise 境界に関する注記」という見出しのセクションマニフェストスキーマ、オリジン対消費の区別、アクセス境界のルーティングは、挙動レベルでのみ記述されています。内部のチャネル解決テーブルと内部のパブリッシングターゲットの配線は、パブリックサーフェスの対象外であり、ここでは複製していません。
デプロイメント境界
「デプロイメント境界」という見出しのセクションパブリッシングプランは導出されたメタデータであり、トランスポートではありません。実際のアーティファクトのアップロードは、お客様のリリースツールによって実行されます。サプライチェーン証跡(SBOM、GPG 署名、チェックサム)は、マニフェストによって参照され、このモジュールではなくお客様のリリースパイプラインによって生成および検証されます。各チャネルのルーティング、認証情報、ストレージは、オペレーターの責任です。
法的コンプライアンスの境界
「法的コンプライアンスの境界」という見出しのセクションこのページは、リリースモデリングレイヤーについて説明しています。サプライチェーン証跡への参照を記録およびルーティングしますが、それ自体が署名を生成したり、来歴を証明したり、リリースを認証したり、法的助言を構成したりするものではありません。マニフェストをそれ単独での証拠として扱うことは誤りです。検証はお客様のリリースパイプラインによって実行されます。リリースが契約上または規制上の義務を満たしているかどうかの判断は、お客様の責任です。