Enterprise редакция
Соответствие требованиям
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, структурную модель Arlington для PDF 2.0, 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). Каждый из них общается со своим сайдкаром через HTTP-клиент PSR-18 и переводит специфичный для инструмента ответ в один ExternalValidationResult.
Политика fail-closed управляет отсутствием сайдкара. По умолчанию недоступный сайдкар вызывает ComplianceSidecarUnavailableException: отсутствующий валидатор — это невозможность проверить, а не прохождение. Явный необязательный режим понижает это условие до залогированного предупреждения и null-результата, поэтому вызывающие стороны могут обнаружить «не проверено» и решить сами. AiReadyCertifier — это отдельный шов: он оценивает три критерия готовности и проставляет блок происхождения XMP nextpdf:. Его уровень «certified» — это внутренняя метка готовности NextPDF. Это не сертификация по стандартам и не предоставляет никакого регуляторного статуса.
Что означает здесь «соответствие»
Заголовок раздела «Что означает здесь «соответствие»»Этот модуль делегирует проверку и сообщает результат. Он не утверждает, что документ юридически соответствует требованиям, сертифицирован или юридически обязывающ.
- Конформность — это свойство итогового файла плюс валидатора, а не свойство этой библиотеки. 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) и нормализует результат с политикой fail-closed.
Внутрипроцессный валидатор электронных счетов Pro и внешний сайдкар ZUGFeRD из Enterprise — это разные поверхности. Не смешивайте их.
Почему это работает именно так
Заголовок раздела «Почему это работает именно так»Конформность — это свойство готового файла, измеряемое инструментом проверки, а не свойство создающей библиотеки. Поэтому шлюз делегирует вердикт авторитетным внешним инструментам и лишь разрешает, делегирует и нормализует. Самоутверждение конформности внутри процесса смешивало бы «собрано под стандарт» с «независимо подтверждено», что стандарты запрещают. Отсюда следует поведение по умолчанию fail-closed: недостижимый сайдкар — это невозможность проверить, поэтому он вызывает исключение, а не проходит. Это удерживает отсутствующую проверку от маскировки под конформность и удерживает NextPDF в честности относительно отсутствия сертификации.
Предыстория архитектуры: Соответствие, которое можно передать аудитору.
Программный интерфейс
Заголовок раздела «Программный интерфейс»| Класс | Ответственность |
|---|---|
ComplianceGateway | Разрешить инструмент для профиля; делегировать; применить политику fail-closed. |
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 | Оценка готовности плюс штамп происхождения XMP nextpdf:. |
Пример кода — быстрый старт
Заголовок раздела «Пример кода — быстрый старт»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()записывает версии инструментов и SHA коммита для трассируемости; матрица сообщает вывод инструмента, она его не сертифицирует.
Производительность
Заголовок раздела «Производительность»Стоимость определяется преимущественно круговым обменом с внешним сайдкаром и размером отправляемого ему документа. Разрешение шлюза и нормализация результата постоянны на вызов.
Примечания по безопасности
Заголовок раздела «Примечания по безопасности»Байты PDF отправляются сайдкару через клиент PSR-18. VeraPdfValidator разбирает только JSON-ответы (без XML, чисто от XXE). Считайте конечные точки сайдкара границей доверия: закрепите сайдкар, ограничьте его сетевой охват и проверяйте его TLS.
Резидентность данных и меры по защите PII
Заголовок раздела «Резидентность данных и меры по защите PII»Полный байтовый поток PDF передаётся настроенному сайдкару. Если документы несут персональные или регулируемые данные, размещайте сайдкар в своём регионе под собственными средствами контроля. Шлюз не делает других исходящих вызовов. Применяйте средства контроля хранения и минимизации к результатам и журналам.
Безопасная телеметрия и очистка журналов
Заголовок раздела «Безопасная телеметрия и очистка журналов»Журналы шлюза включают имена профилей, имена инструментов, число утверждений и число несоответствий. Они не включают содержимого документа. Очищайте поля профиля или имени файла перед пересылкой журналов, если эти значения конфиденциальны.
Соответствие
Заголовок раздела «Соответствие»| Поведение | Ссылка | Статус |
|---|---|---|
| Конформность определяется инструментом проверки, а не производителем | ISO 19005-4:2020 §5.2 | Отражено в архитектуре (шлюз fail-closed) |
| Требования к файлу 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 и ответ сайдкара. Меры защиты: разбор только JSON-ответов в VeraPdfValidator, закреплённая граница доверия сайдкара и политика fail-closed, поэтому недостижимый валидатор никогда не разрешается в прохождение.
Контракт поведения
Заголовок раздела «Контракт поведения»- Этот модуль — шлюз, а не валидатор: вердикт о конформности исходит от внешнего инструмента (veraPDF, EU DSS или Mustang/KoSIT), а шлюз выбирает инструмент, делегирует и нормализует ответ.
- Результат с нулём несоответствий — это проверенный результат относительно пунктов, которые реализует внешний инструмент, а не безусловный сертификат.
- Недоступный сайдкар — это fail-closed: он по умолчанию вызывает исключение или в явном необязательном режиме возвращает
null-результат; в любом случае документ был не проверен, а не пройден. - Профиль без зарегистрированного валидатора вызывает ошибку аргумента, а не тихо проходит.
- Уровень «certified» у
AiReadyCertifier— это внутренняя метка готовности NextPDF, а не сертификация по стандартам, и не предоставляет никакого регуляторного статуса.
Граница публикации
Заголовок раздела «Граница публикации»Эта страница документирует только внешне наблюдаемое поведение и поддерживаемую публичную поверхность API. Внутренние пути пространств имён, вспомогательные классы, таблицы механизмов, имена файлов runbook и префиксы тикетов вне области.
Резервный вариант Core
Заголовок раздела «Резервный вариант Core»NextPDF Core Conformance / Compliance выполняет внутри процесса проверки байтового потока и грамматики и несёт дискриминатор режима конформности; он выдаёт структуры, которые определяет стандарт, но не сертифицирует результат и не делегирует внешнему сайдкару. У шлюза внешних валидаторов нет эквивалента уровня Core.
Резервный вариант Pro
Заголовок раздела «Резервный вариант Pro»NextPDF Pro Compliance проверяет EN 16931 / Factur-X / ZUGFeRD внутри процесса без внешнего сайдкара. Внутрипроцессный валидатор электронных счетов Pro и внешний сайдкар ZUGFeRD из Enterprise — это разные поверхности; шлюз внешних валидаторов поставляется только в пакете nextpdf/enterprise. Не смешивайте их.
Примечание о границе Enterprise
Заголовок раздела «Примечание о границе Enterprise»Шлюз, разрешение «профиль → инструмент» и нормализация результата описаны на уровне поведения. Внутренние детали моста для каждого сайдкара, специфичный для инструмента перевод ответа и любые внутренние детали оркестрации находятся вне области публичного интерфейса.
Граница развёртывания
Заголовок раздела «Граница развёртывания»Полный байтовый поток PDF передаётся настроенному сайдкару. Оператор размещает и эксплуатирует сайдкары, закрепляет их, ограничивает их сетевой охват и проверяет их TLS — конечные точки сайдкара являются границей доверия. Если документы несут персональные или регулируемые данные, размещайте сайдкар в своём регионе под собственными средствами контроля и применяйте средства контроля хранения и минимизации к результатам и журналам.
Граница юридического соответствия
Заголовок раздела «Граница юридического соответствия»Поддержка профиля не то же самое, что конформность ему, а конформность не то же самое, что сертификация — NextPDF не имеет сертификации и не предоставляет её. Эта документация не является юридическим заключением; обращайтесь к своей команде по соответствию, чтобы оценить регуляторную достаточность.
См. также
Заголовок раздела «См. также»- Validation — внутрипроцессные структурные политики.
- Evidence — запечатанные пакеты результатов с метками времени.
- Pro Compliance — внутрипроцессная обработка электронных счетов (отдельная поверхность).
- Core Conformance — дискриминатор режима конформности.
- Compliance — подробный справочник — детали мостов к сайдкарам и перевода ответов.