Bỏ qua để đến nội dung
getnextpdf.com

Enterprise phiên bản

Phát hành

NextPDF Enterprise mô hình hóa một bản phát hành thành các value object có kiểu — một manifest bản phát hành, các manifest theo từng artifact, các hồ sơ build, các kênh phân phối, và các ranh giới truy cập — rồi suy dẫn một kế hoạch phát hành định tuyến từng artifact tới đúng kênh và ranh giới truy cập.

Năng lực này đi kèm trong NextPDF Enterprise (nextpdf/enterprise) và kích hoạt cùng một phong bì giấy phép hạng Enterprise. Một triển khai không có quyền đó sẽ không nạp các class của năng lực này. So sánh các phiên bản và lấy giấy phép.

Terminal window
composer require nextpdf/enterprise:^3

ReleaseManifest là tài liệu cấp cao nhất, bất biến cho một phiên bản. Nó ghi lại phiên bản ngữ nghĩa, source commit, dấu thời gian build, danh sách các manifest theo từng artifact, và các đường dẫn bằng chứng chuỗi cung ứng tùy chọn (SBOM, chữ ký GPG, checksum). Phiên bản schema của nó tuân theo minor-cho-thêm-mới, major-cho-phá-vỡ.

ArtifactManifest ghi lại một artifact đã build: tên tệp chuẩn tắc, phiên bản, source commit, phiên bản đích, chế độ phân phối, công nghệ mã hóa, kênh phân phối, phiên bản PHP đích, digest SHA-256, hạn mã hóa tùy chọn, và dấu thời gian build. EncodingTechnology phân biệt công cụ được dùng để mã hóa một artifact với việc nó có được mã hóa hay không; một artifact dạng cleartext luôn có None.

DistributionChannel tách hai mối quan tâm một cách tường minh: một origin artifact (lưu trữ nhị phân) và một lớp tiêu thụ gói (registry mà một composer require đọc). AccessBoundary xác định ai có thể truy cập một artifact — khách hàng trả phí, đánh giá có thời hạn, hay CI/QA/staging nội bộ không bao giờ hướng tới khách hàng — và mọi ranh giới đều yêu cầu xác thực.

PublishingPlan được suy dẫn từ các hồ sơ build và manifest bản phát hành. Mỗi hồ sơ phân giải thành các đích phát hành: một đích origin artifact và một đích lớp tiêu thụ, với ranh giới truy cập đúng được áp dụng để các artifact paid và evaluation được định tuyến tới đúng nơi.

Quyết định chịu tải là mô hình hóa một bản phát hành thành các value object có kiểu, bất biến, chứ không phải cấu hình lỏng lẻo. Origin artifact và lớp tiêu thụ là các mối quan tâm khác biệt có kiểu enum, và các ranh giới truy cập là tường minh. Vì vậy một artifact bị định tuyến sai — một build nội bộ đặt trên kênh khách hàng — hiện ra như một lỗi mô hình hóa, chứ không phải một sai lầm sản xuất âm thầm. Kế hoạch vẫn là suy dẫn thay vì có thẩm quyền: nó nêu tên các đích dự kiến trong khi bộ công cụ phát hành của bạn thực hiện việc truyền tải. Cùng các object đó phân giải qua hợp đồng của Core, nên một người tiêu thụ nâng cấp phiên bản không thay đổi mã gọi nào. Sự liền mạch đó chính là điểm mấu chốt của ranh giới open-core — bạn mua bề mặt Enterprise, không phải một cuộc viết lại. Bối cảnh thiết kế: Open core, không khóa nhà cung cấp.

ClassTrách nhiệm
ReleaseManifestTài liệu bản phát hành cấp cao nhất, bất biến.
ArtifactManifestSiêu dữ liệu và các trường xác minh theo từng artifact.
BuildProfileMột cấu hình build để phát hành.
DistributionChannelEnum kênh origin so với lớp tiêu thụ.
AccessBoundaryEnum truy cập Paid / Evaluation / Internal.
EncodingTechnologyEnum công cụ mã hóa (ví dụ encoded / none).
PublishingPlan / PublishingTargetKế hoạch suy dẫn và định tuyến theo từng đích.
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,
]);
}
  • Origin artifact và lớp tiêu thụ là các kênh khác biệt. Origin lưu trữ tệp nhị phân; lớp tiêu thụ phục vụ siêu dữ liệu trỏ tới nó. Đừng gộp lẫn chúng khi suy luận về nơi một composer require phân giải.
  • Một artifact dạng cleartext luôn báo cáo EncodingTechnology::None; trường công-nghệ-mã-hóa trả lời “công cụ nào”, không phải “nó có được bảo vệ không”.
  • Các artifact thuộc ranh giới truy cập Internal không bao giờ hướng tới khách hàng; định tuyến chúng tới một kênh khách hàng là một lỗi cấu hình mà mô hình này được thiết kế để làm cho tường minh.
  • Kế hoạch phát hành là suy dẫn, không phải nguồn có thẩm quyền cho việc truyền tải — nó mô tả các đích dự kiến; việc upload thực tế do bộ công cụ phát hành của bạn thực hiện.

Việc suy dẫn kế hoạch tuyến tính theo số lượng hồ sơ build và tạo ra một số nhỏ đích cho mỗi hồ sơ. Các value object là bất biến và rẻ để dựng.

Manifest bản phát hành mang theo các đường dẫn bằng chứng chuỗi cung ứng (SBOM, chữ ký GPG, checksum). Module này ghi lại và định tuyến các tham chiếu đó; tự nó không tạo ra chữ ký hay chứng thực nguồn gốc. Hãy coi manifest là siêu dữ liệu cần được pipeline phát hành của bạn xác minh, không phải là bằng chứng tự thân.

Lưu trú dữ liệu & biện pháp giảm thiểu PII

Phần tiêu đề “Lưu trú dữ liệu & biện pháp giảm thiểu PII”

Các manifest bản phát hành chứa siêu dữ liệu build và artifact, không phải dữ liệu cá nhân. Hãy áp dụng các biện pháp kiểm soát thông thường của bạn cho việc lưu trữ artifact.

Nhật ký bản phát hành nên ghi phiên bản và kênh, không phải tài liệu khóa ký hay đường dẫn lưu trữ nội bộ.

Không có tuyên bố phù hợp tiêu chuẩn nào được đưa ra cho module này; nó là một lớp mô hình hóa bản phát hành. Bằng chứng chuỗi cung ứng (SBOM, chữ ký, checksum) được manifest tham chiếu, do bộ công cụ phát hành của bạn tạo ra và xác minh.

Module này không thực hiện thao tác mã hóa nào. Việc ký GPG và tạo checksum do bộ công cụ phát hành bên ngoài thực hiện và chỉ được tham chiếu ở đây.

Đầu vào là các hồ sơ build và dữ liệu manifest do bên gọi cung cấp. Mô hình làm cho các phân biệt origin-so-với-tiêu-thụ và ranh-giới-truy-cập trở nên tường minh để việc định tuyến sai (ví dụ phơi bày một artifact nội bộ) là một lỗi mô hình hóa hiển thị thay vì âm thầm.

  • ReleaseManifest là tài liệu cấp cao nhất, bất biến cho một phiên bản; phiên bản schema của nó tuân theo minor-cho-thêm-mới, major-cho-phá-vỡ.
  • DistributionChannel giữ origin artifact và lớp tiêu thụ gói như các mối quan tâm khác biệt; gộp lẫn chúng là một lỗi mô hình hóa mà kiểu này làm cho tường minh.
  • AccessBoundary phân biệt Paid / Evaluation / Internal, và mọi ranh giới đều yêu cầu xác thực; một artifact Internal không bao giờ hướng tới khách hàng.
  • PublishingPlan được suy dẫn từ các hồ sơ build và manifest bản phát hành; nó mô tả các đích dự kiến và không phải nguồn có thẩm quyền cho việc truyền tải.

Trang này chỉ ghi lại hành vi có thể quan sát được từ bên ngoài và bề mặt API công khai được hỗ trợ. Các đường dẫn namespace nội bộ, class trợ giúp, bảng cơ chế, tên tệp runbook, và tiền tố ticket nằm ngoài phạm vi.

NextPDF Core không có lớp mô hình hóa bản phát hành. Một người tiêu thụ chỉ-có-Core cần các manifest bản phát hành, hồ sơ build, hay một kế hoạch phát hành phải tự mình mô hình hóa chúng.

NextPDF Pro không cung cấp các manifest bản phát hành có kiểu, hồ sơ build, ranh giới truy cập, hay kế hoạch phát hành được suy dẫn; chúng chỉ đi kèm trong gói nextpdf/enterprise. Một triển khai chỉ có Pro không có thành phần Enterprise nào để thỏa mãn một yêu cầu mô hình hóa bản phát hành. Xem Tổng quan Enterprise để biết bề mặt Enterprise.

Schema manifest, phân biệt origin-so-với-tiêu-thụ, và việc định tuyến ranh giới truy cập chỉ được mô tả ở mức hành vi. Các bảng phân giải kênh nội bộ và cách nối đích phát hành nội bộ nằm ngoài phạm vi của bề mặt công khai và không được tái hiện ở đây.

Kế hoạch phát hành là siêu dữ liệu suy dẫn, không phải kênh truyền tải: việc upload artifact thực tế do bộ công cụ phát hành của bạn thực hiện. Bằng chứng chuỗi cung ứng (SBOM, chữ ký GPG, checksum) được manifest tham chiếu, do pipeline phát hành của bạn tạo ra và xác minh, không phải bởi module này. Việc định tuyến, thông tin xác thực, và lưu trữ cho mỗi kênh là trách nhiệm của người vận hành.

Trang này mô tả một lớp mô hình hóa bản phát hành. Nó ghi lại và định tuyến các tham chiếu bằng chứng chuỗi cung ứng; tự nó không tạo ra chữ ký, không chứng thực nguồn gốc, không chứng nhận một bản phát hành, và cũng không cấu thành tư vấn pháp lý. Việc coi manifest là bằng chứng tự thân là không đúng; việc xác minh do pipeline phát hành của bạn thực hiện. Việc phán định một bản phát hành có đáp ứng các nghĩa vụ hợp đồng hay quy định của bạn hay không là trách nhiệm của bạn.