Enterprise phiên bản
Phát hành
Tổng quan nhanh
Phần tiêu đề “Tổng quan nhanh”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.
Tính khả dụng & cấp phép
Phần tiêu đề “Tính khả dụng & cấp phé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.
Cài đặt
Phần tiêu đề “Cài đặt”composer require nextpdf/enterprise:^3Tổng quan khái niệm
Phần tiêu đề “Tổng quan khái niệm”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.
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ô 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.
Bề mặt API
Phần tiêu đề “Bề mặt API”| Class | Trách nhiệm |
|---|---|
ReleaseManifest | Tài liệu bản phát hành cấp cao nhất, bất biến. |
ArtifactManifest | Siêu dữ liệu và các trường xác minh theo từng artifact. |
BuildProfile | Một cấu hình build để phát hành. |
DistributionChannel | Enum kênh origin so với lớp tiêu thụ. |
AccessBoundary | Enum truy cập Paid / Evaluation / Internal. |
EncodingTechnology | Enum công cụ mã hóa (ví dụ encoded / none). |
PublishingPlan / PublishingTarget | Kế hoạch suy dẫn và định tuyến theo từng đích. |
Mẫu mã — Bắt đầu nhanh
Phần tiêu đề “Mẫu mã — Bắt đầu nhanh”use NextPDF\Enterprise\Release\PublishingPlan;
$plan = PublishingPlan::fromProfiles($profiles, '3.1.0');Mẫu mã — Sản phẩm
Phần tiêu đề “Mẫu mã — Sản phẩm”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, ]);}Trường hợp ngoại lệ & lưu ý
Phần tiêu đề “Trường hợp ngoại lệ & lưu ý”- 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 requirephâ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.
Hiệu năng
Phần tiêu đề “Hiệu năng”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.
Lưu ý bảo mật
Phần tiêu đề “Lưu ý bảo mật”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.
Đo từ xa an toàn & làm sạch nhật ký
Phần tiêu đề “Đo từ xa an toàn & làm sạch nhật ký”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ộ.
Tính phù hợp
Phần tiêu đề “Tính phù hợp”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.
Hành vi ở chế độ FIPS
Phần tiêu đề “Hành vi ở chế độ FIPS”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.
Mô hình mối đe dọa
Phần tiêu đề “Mô hình mối đe dọa”Đầ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.
Hợp đồng hành vi
Phần tiêu đề “Hợp đồng hành vi”ReleaseManifestlà 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ỡ.DistributionChannelgiữ 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.AccessBoundaryphâ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.
Ranh giới công bố
Phần tiêu đề “Ranh giới công bố”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.
Phương án dự phòng Core
Phần tiêu đề “Phương án dự phòng Core”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.
Phương án dự phòng Pro
Phần tiêu đề “Phương án dự phòng Pro”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.
Lưu ý về ranh giới Enterprise
Phần tiêu đề “Lưu ý về ranh giới 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.
Ranh giới triển khai
Phần tiêu đề “Ranh giới triển khai”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.
Ranh giới tuân thủ pháp lý
Phần tiêu đề “Ranh giới tuân thủ pháp lý”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.