Enterprise 版本
Compliance
NextPDF Enterprise 把一份成品 PDF 路由到一个外部验证工具——veraPDF、EU DSS 或 Mustang/KoSIT——并返回一个统一、结构化的结果。该结果记录外部工具检查了什么。它不是证书、法律意见,也不是文档满足任何法规的保证。
可用性与授权
标题为“可用性与授权”的章节此能力随 NextPDF Enterprise(nextpdf/enterprise)发行,并通过一份 Enterprise 层级的授权信封启用。一个没有该权益的部署不会加载此能力的类。比较各版本并获取授权。
composer require nextpdf/enterprise:^3概念总览
标题为“概念总览”的章节本模块是一个网关,而非一个验证器。符合性裁决来自一个外部工具。网关选择正确的工具、委托给它,并把答案归一化。
ComplianceGateway 接受一个 ComplianceProfile 与 PDF 字节。它解析出由哪个已注册的 ExternalValidator 处理该配置文件、检查旁车是否可达、委托该检查,并返回一个 ExternalValidationResult。ComplianceProfile 列举受支持的目标:PDF/A-1b/2b/3b/4/4f、PDF/UA-1/2、PDF 2.0 Arlington 结构模型、PAdES B-B/B-T/B-LT/B-LTA、ZUGFeRD 2.4 / Factur-X 1.08,以及 EN 16931。每个情形都映射到一个规范性引用与一个外部工具。
ExternalValidator 是每个旁车桥接所实现的契约:VeraPdfValidator(veraPDF REST)、DssValidator(EU DSS REST),以及 ZugferdExternalValidator(Mustang/KoSIT)。每一个都通过一个 PSR-18 HTTP 客户端与其旁车通信,并把工具特定的响应转译为一个 ExternalValidationResult。
一项失败关闭策略管辖旁车缺失的情形。默认情况下,一个不可用的旁车会抛出 ComplianceSidecarUnavailableException:缺失一个验证器意味着无法检查,而非通过。一个显式的可选模式会把该状况降级为一条已记录的警告与一个 null 结果,因此调用方可以察觉“未检查”并自行决定。AiReadyCertifier 是一个独立的接缝:它评估三项就绪标准,并加盖一个 nextpdf: XMP 来源块。它的“certified”级别是一个 NextPDF 内部的就绪标签。它不是标准认证,也不授予任何监管地位。
此处“compliance”意味着什么
标题为“此处“compliance”意味着什么”的章节本模块委托一项检查并报告结果。它不断言一份文档在法律上合规、已认证,或具有法律约束力。
- 符合性是最终文件加上一个验证器所具有的属性,而非本库所具有的属性。ISO 19005-4:2020 §5.2 把义务置于一个符合处理器之上,并对照标准的规范性要求来判定符合性——由一个检查工具,而非由生产软件。
- 一个零不符合项的结果,是对照外部工具所实现的条款做出的已检查结果。它不是一张笼统的证书。
- 一个不可用的旁车意味着未检查。它绝不意味着通过。
支持某个配置文件不等于符合它,而符合性也不等于认证。NextPDF 不持有任何认证,也不授予任何认证。请咨询你的合规团队来判断监管充分性。
层级边界
标题为“层级边界”的章节请精确地解读各版本。它们做不同的事。
- NextPDF Core
Conformance/Compliance运行进程内的字节流与文法检查,并携带符合性模式判别器。Core 发出标准所定义的结构。它不为结果做认证。 - NextPDF Pro
Compliance(EInvoiceValidator) 在进程内验证 EN 16931 / Factur-X / ZUGFeRD,不使用外部旁车。 - NextPDF Enterprise Compliance(本页) 委托给外部验证器旁车(veraPDF、EU DSS、Mustang/KoSIT),并以失败关闭策略把结果归一化。
Pro 的进程内电子发票验证器与 Enterprise 的外部 ZUGFeRD 旁车是不同的接口。请不要混为一谈。
为何如此设计
标题为“为何如此设计”的章节符合性是成品文件由一个检查工具所度量的属性,而非生产库的属性。因此网关把裁决委托给权威的外部工具,而自身仅做解析、委托与归一化。在进程内自我断言符合性会把“对照标准构建”与“经独立确认”混为一谈,而标准禁止如此。失败关闭的默认由此而来:一个不可达的旁车是无法检查,因此它抛出而不通过。这可防止一次缺失的检查伪装成符合性,也让 NextPDF 对“不持有任何认证”保持诚实。
设计背景:可以交给审计员的合规。
API 接口
标题为“API 接口”的章节| 类 | 职责 |
|---|---|
ComplianceGateway | 为一个配置文件解析工具;委托;应用失败关闭策略。 |
ComplianceProfile | 受支持配置文件的枚举,每个都带一个标准引用与工具。 |
ExternalValidator | 一个外部旁车桥接的契约。 |
ExternalValidationResult | 统一结果:配置文件、工具、符合性标志、不符合项。 |
NonConformance | 来自外部工具的一项不符合项。 |
VeraPdfValidator | veraPDF REST 桥接(PDF/A、PDF/UA、Arlington)。 |
DssValidator | EU DSS REST 桥接(PAdES 级别)。 |
ZugferdExternalValidator | Mustang/KoSIT 桥接(ZUGFeRD / Factur-X / EN 16931)。 |
AiReadyCertifier | 就绪评估外加一个 nextpdf: XMP 来源戳。 |
代码示例 — 快速开始
标题为“代码示例 — 快速开始”的章节use NextPDF\Enterprise\Compliance\ComplianceProfile;
$result = $gateway->validate($pdfBytes, ComplianceProfile::PdfA4);$passed = $result?->passes(); // null = sidecar unavailable (not checked)代码示例 — 生产
标题为“代码示例 — 生产”的章节$result = $gateway->validate($pdfBytes, ComplianceProfile::PdfA4);
if ($result === null) { $logger->error('compliance.not_checked', ['profile' => 'pdfa-4']); // Treat "not checked" as a blocker, never as a pass. return;}
foreach ($result->nonConformances as $nc) { $logger->warning('compliance.nonconformance', ['profile' => $result->profile->value]);}// A conformant=true result is one input to your decision, not a verdict you own.边界情况与注意事项
标题为“边界情况与注意事项”的章节- 一个不可用的旁车默认会抛出
ComplianceSidecarUnavailableException;可选模式返回null。无论哪一种,文档都未被检查。 - 一个没有已注册验证器的配置文件会抛出一个参数错误,而非静默通过。
buildComplianceMatrix()为可追溯性记录工具版本与一个 commit SHA;该矩阵报告工具输出,它并不为之做认证。
成本主要由外部旁车往返与发送给它的文档大小决定。网关解析与结果归一化在每次调用中是恒定的。
安全说明
标题为“安全说明”的章节PDF 字节通过一个 PSR-18 客户端发送给旁车。VeraPdfValidator 仅解析 JSON 响应(不解析 XML,无 XXE)。请把旁车端点当作一个信任边界:锚定该旁车、限制其网络可达范围,并验证其 TLS。
数据驻留与 PII 缓解
标题为“数据驻留与 PII 缓解”的章节完整的 PDF 字节流被传输给所配置的旁车。如果文档携带个人或受监管数据,请在你自己的控制之下、于区域内托管该旁车。网关不发起任何其他出站调用。请对结果与日志施加留存与最小化控制。
安全遥测与日志清洗
标题为“安全遥测与日志清洗”的章节网关日志包含配置文件名称、工具名称、断言计数与不符合项计数。它们不包含文档内容。如果配置文件或文件名字段是敏感的,请在转发日志之前先清洗它们。
符合性
标题为“符合性”的章节| 行为 | 引用 | 状态 |
|---|---|---|
| 符合性由一个检查工具判定,而非由生产者 | ISO 19005-4:2020 §5.2 | 体现在设计中(失败关闭网关) |
| PDF/A-4 文件要求 | ISO 19005-4:2020 §6.6.4 | 委托给 veraPDF |
| PDF/UA-2 符合性(文件所具有的属性) | ISO 14289-2:2024 §6 | 委托给 veraPDF |
| PAdES 基准级别 | ETSI EN 319 142-1 §5.4.3 | 委托给 EU DSS |
本表记录 NextPDF 所对照构建的规范,以及外部工具检查了什么。它不是认证或监管充分性的声明。
FIPS 模式行为
标题为“FIPS 模式行为”的章节本模块不执行任何密码学签名。签名符合性被委托给 EU DSS;密钥保管与 FIPS 模式签名不在其范围之内(参见 Signature 与 Security 模块)。
威胁模型
标题为“威胁模型”的章节主要输入是不受信任的 PDF 字节与一个旁车响应。缓解措施:VeraPdfValidator 中的仅 JSON 响应解析、一个锚定的旁车信任边界,以及一项失败关闭策略,使一个不可达的验证器绝不会被解析为通过。
行为契约
标题为“行为契约”的章节- 本模块是一个网关,而非一个验证器:符合性裁决来自一个外部工具(veraPDF、EU DSS 或 Mustang/KoSIT),而网关选择工具、委托,并把答案归一化。
- 一个零不符合项的结果,是对照外部工具所实现的条款做出的已检查结果——而非一张笼统的证书。
- 一个不可用的旁车是失败关闭的:它默认抛出一个异常,或在显式的可选模式中返回一个
null结果;无论哪一种,文档都未被检查,绝不通过。 - 一个没有已注册验证器的配置文件会抛出一个参数错误,而非静默通过。
AiReadyCertifier的“certified”级别是一个 NextPDF 内部的就绪标签,不是标准认证,且不授予任何监管地位。
发布边界
标题为“发布边界”的章节本页仅记录外部可观察的行为与受支持的公开 API 接口。内部命名空间路径、辅助类、机制表、运维手册文件名与工单前缀均不在范围之内。
Core 回退
标题为“Core 回退”的章节NextPDF Core Conformance / Compliance 运行进程内的字节流与文法检查,并携带符合性模式判别器;它发出标准所定义的结构,但不为结果做认证,也不委托给外部旁车。外部验证器网关在 Core 层级没有等价物。
Pro 回退
标题为“Pro 回退”的章节NextPDF Pro Compliance 在进程内验证 EN 16931 / Factur-X / ZUGFeRD,不使用外部旁车。Pro 的进程内电子发票验证器与 Enterprise 的外部 ZUGFeRD 旁车是不同的接口;外部验证器网关仅随 nextpdf/enterprise 包发行。请不要混为一谈。
Enterprise 边界说明
标题为“Enterprise 边界说明”的章节网关、配置文件到工具的解析,以及结果归一化,均在行为层面进行描述。各旁车桥接的内部机制、工具特定的响应转译,以及任何内部编排细节,都不属于公开接口范围。
部署边界
标题为“部署边界”的章节完整的 PDF 字节流被传输给所配置的旁车。操作方托管并运营这些旁车、锚定它们、限制其网络可达范围,并验证其 TLS——旁车端点是一个信任边界。如果文档携带个人或受监管数据,请在你自己的控制之下、于区域内托管该旁车,并对结果与日志施加留存与最小化控制。
法务合规边界
标题为“法务合规边界”的章节支持某个配置文件不等于符合它,而符合性也不等于认证——NextPDF 不持有任何认证,也不授予任何认证。本文档不是法律意见;请咨询你的合规团队来判断监管充分性。
另请参阅
标题为“另请参阅”的章节- Validation —— 进程内结构性策略。
- Evidence —— 封存、加盖时间戳的结果包。
- Pro Compliance —— 进程内电子发票处理(不同的接口)。
- Core Conformance —— 符合性模式判别器。
- Compliance — 深度参考 —— 各旁车桥接与响应转译细节。