Валидация
Валидация
Заголовок раздела «Валидация»NextPDF Enterprise выполняет внутрипроцессные структурные проверки в режиме только для чтения по именованным политикам: PDF/A-4, базовый профиль PAdES, состояние долгосрочной валидации (LTV), ZUGFeRD, требования Food and Drug Administration (FDA) США 21 CFR Part 11, а также Securities and Exchange Commission (SEC) США 17a-4. Он возвращает структурированный технический отчёт. Этот отчёт не является юридической консультацией, подтверждением соответствия или сертификацией.
Установка
Заголовок раздела «Установка»composer require nextpdf/enterprise:^3Концептуальный обзор
Заголовок раздела «Концептуальный обзор»Compliance — это точка входа. Вызовите Compliance::assess($pdfBytes, $policy) (или внедрите экземпляр и вызовите run()), чтобы применить одну политику CompliancePolicy к байтам PDF и получить ComplianceReport. Политика задаёт выполняемую проверку; отчёт содержит структурированный результат.
Policies предоставляет готовые фабрики политик: pdfA4(), pdfA4e(), pdfA4f(), padesBaseline(), eidasQualified(), ltvHealth(), zugferd($profile), fdaPart11(), а также семейство SEC 17a-4 (sec17a4(), sec17a4Compatible(), sec17a4Structural(), sec17a4PreSign()). Каждая фабрика возвращает CompliancePolicy, метод validate() которой является чистым: на входе — байты PDF, на выходе — замечания. Архитектура обеспечивает строгую границу режима только для чтения: политика никогда не изменяет байты PDF, поэтому валидация остаётся отделённой от любого автоматического исправления.
ComplianceReport группирует замечания по Severity (Error, Warning, Info). passes() возвращает true, когда ошибок нет; предупреждения не делают отчёт неуспешным. Отчёт включает встроенный юридический дисклеймер (getDisclaimer()), в котором указано, что результат является справочной технической проверкой структуры, а окончательное заключение выносят квалифицированные специалисты по праву или соответствию. Вы обязаны показывать этот дисклеймер в выводе, предназначенном для пользователя.
Для подписей важна ещё одна граница. LtvHealthCheck проверяет структурное наличие хранилища безопасности документа (Document Security Store, DSS) согласно ISO 32000-2:2020 §12.8.4.3; он не выполняет криптографическую проверку встроенных данных протокола состояния сертификатов в режиме онлайн (Online Certificate Status Protocol, OCSP) или списка отозванных сертификатов (certificate revocation list, CRL). eidasQualified() проверяет структуру PAdES только на уровне PDF; фактическая квалификация по eIDAS зависит от поставщика услуг доверия (trust service provider, TSP) и квалифицированного сертификата, которые находятся за пределами этого модуля.
Что здесь означает “валидация”
Заголовок раздела «Что здесь означает “валидация”»Этот модуль проверяет структурные атрибуты и сообщает о замечаниях. Он не сертифицирует документ и не гарантирует, что документ удовлетворяет нормативному требованию.
- Соответствие — это свойство итогового файла вместе с валидатором, а не этой библиотеки. ISO 19005-4:2020 §5.2 определяет соответствие нормативным требованиям стандарта через средство проверки, а не через программное обеспечение, которое создаёт файл.
- Успешный отчёт — это проверенный результат по правилам, которые реализует каждая политика. Он не является сертификатом.
- Политики FDA 21 CFR Part 11 и SEC 17a-4 проверяют структурные атрибуты, которые подразумеваются этими нормативными требованиями (наличие подписи, намерение подписать, маркеры журнала аудита, ограничения однократной записи и многократного чтения (write once, read many, WORM)). Они не устанавливают юридического соответствия этим нормативным требованиям. Юридическую достаточность определяет ваша команда по соответствию.
Поддержка стандарта не является соответствием ему, а соответствие не является сертификацией. NextPDF не имеет сертификации и не предоставляет её.
Граница между редакциями
Заголовок раздела «Граница между редакциями»- NextPDF Core
Complianceпоставляет валидаторы байтового потока и перекрёстную проверку грамматики; отчёт без замечаний — это проверенный результат, а не сертификат. - NextPDF Pro
Compliance(EInvoiceValidator) проверяет EN 16931 / Factur-X / ZUGFeRD внутри процесса на уровне электронного счёта. - NextPDF Enterprise Validation (эта страница) добавляет готовые политики для структурных проверок архивирования, подписи, LTV и регулируемых отраслей (FDA Part 11, SEC 17a-4) с единым форматом отчёта. Модуль Enterprise Compliance — это отдельная поверхность, которая делегирует работу внешним sidecar-компонентам; этот модуль работает внутри процесса.
Поверхность API
Заголовок раздела «Поверхность API»| Класс | Назначение |
|---|---|
Compliance | Точка входа: применяет одну политику и возвращает отчёт. |
Policies | Фабрика для готовых экземпляров CompliancePolicy. |
CompliancePolicy | Контракт: чистый validate(), возвращающий замечания. |
ComplianceReport | Замечания, сгруппированные по серьёзности; содержит юридический дисклеймер. |
ComplianceFinding | Одно замечание: идентификатор правила, сообщение, ссылка на стандарт, рекомендация по устранению. |
Severity | Error (ошибка) / Warning (предупреждение) / Info (информация). |
PdfAPolicy | Структурная политика семейства PDF/A-4. |
PadesValidator | Структурная политика базового профиля PAdES / eIDAS. |
LtvHealthCheck | Проверка наличия структуры DSS (ISO 32000-2 §12.8.4.3). |
ZugferdValidator | Политика уровня PDF для ZUGFeRD / Factur-X. |
FdaPart11Policy | Политика структурных атрибутов FDA 21 CFR Part 11. |
Sec17a4WormPolicy | Структурная политика WORM для SEC 17a-4 (с выбираемой строгостью). |
Пример кода — быстрый старт
Заголовок раздела «Пример кода — быстрый старт»use NextPDF\Enterprise\Validation\Compliance;use NextPDF\Enterprise\Validation\Policies;
$report = Compliance::assess($pdfBytes, Policies::pdfA4());$ok = $report->passes(); // no errorsПример кода — продакшен
Заголовок раздела «Пример кода — продакшен»$report = (new Compliance($clock))->run($pdfBytes, Policies::fdaPart11());
foreach ($report->errors as $finding) { $logger->warning('validation.error', [ 'rule' => $finding->ruleId, 'standard' => $finding->standardReference, ]);}$auditLine = $report->getDisclaimer(); // surface this in user-facing outputГраничные случаи и подводные камни
Заголовок раздела «Граничные случаи и подводные камни»- Предупреждения никогда не делают отчёт неуспешным; только ошибки устанавливают
passes()в false. Чистый отчёт по-прежнему означает “проверено по реализованным правилам”, а не “соответствует”. LtvHealthCheckподтверждает структуру DSS, а не криптографическую действительность данных об отзыве.eidasQualified()проверяет только структуру на уровне PDF; квалификация зависит от TSP и сертификата.- Семейство SEC 17a-4 предоставляет выбираемую строгость (Full / Compatible / Structural / PreSign); выбирайте ту, которая соответствует этапу вашего рабочего процесса.
Производительность
Заголовок раздела «Производительность»Каждая политика выполняется внутри процесса над предоставленными байтами PDF; затраты масштабируются в зависимости от размера документа и количества правил. Compliance записывает длительность выполнения в отчёт.
Замечания по безопасности
Заголовок раздела «Замечания по безопасности»Политики разбирают байты PDF внутри процесса и никогда не обращаются вовне. Относитесь к байтам PDF из недоверенных источников как к враждебным; чистая архитектура только для чтения не позволяет политике изменять входные данные.
Резидентность данных и меры по защите ПДн
Заголовок раздела «Резидентность данных и меры по защите ПДн»Валидация выполняется внутри процесса и локально, без сетевого ввода-вывода. Подписанные документы и метаданные журнала аудита могут содержать персональные данные; применяйте собственные меры контроля хранения и минимизации к отчётам и замечаниям.
Безопасная телеметрия и очистка журналов
Заголовок раздела «Безопасная телеметрия и очистка журналов»Замечания включают идентификаторы правил, ссылки на стандарты и сообщения; некоторые сообщения воспроизводят имена подписавших или строки причин, извлечённые из PDF. Очищайте или редактируйте эти поля перед отправкой журналов в общие приёмники журналов.
Соответствие
Заголовок раздела «Соответствие»| Поведение | Ссылка | Статус |
|---|---|---|
| Соответствие определяется относительно стандарта, а не заявлением производителя | ISO 19005-4:2020 §5.2 | Отражено в архитектуре (политики только для чтения) |
| Наличие структуры DSS для LTV | ISO 32000-2:2020 §12.8.4.3 | Проверено (только структура) |
| Структура базового профиля PAdES | ETSI EN 319 142-1 §5.4.3 | Проверено (на уровне PDF) |
| Семантическая модель профиля EN 16931 | Factur-X 1.08 (EN 16931) | Вспомогательная ссылка (ответственность несёт эмитент) |
| Регламенты FDA 21 CFR Part 11 / SEC 17a-4 | нормы 21 CFR Part 11 / 17 CFR 240.17a-4 | Структурные атрибуты проверены; юридическое соответствие не подтверждено |
Эта таблица фиксирует, что проверяет каждая политика, и спецификации, лежащие в её основе. Она не является заявлением о сертификации или нормативной достаточности. Строки FDA и SEC — это проверки только структурных атрибутов; эти исходные стандарты отсутствуют в корпусе верификации и не являются подтверждённым заявлением о соответствии.
Поведение в режиме FIPS
Заголовок раздела «Поведение в режиме FIPS»Эти политики не выполняют криптографическое подписание или проверку. Модули Signature и Security обрабатывают криптографическую действительность подписи, хранение ключей и поведение в режиме федеральных стандартов обработки информации (Federal Information Processing Standards, FIPS).
Модель угроз
Заголовок раздела «Модель угроз»Основной вход — недоверенные байты PDF. Меры по снижению рисков включают чистые политики только для чтения (без изменения, без автоматического исправления), отсутствие сетевого ввода-вывода и явный юридический дисклеймер в каждом отчёте, чтобы успешный результат не принимался за сертификацию.
Коммерческий контекст
Заголовок раздела «Коммерческий контекст»NextPDF Enterprise добавляет готовые политики для архивирования, подписи, LTV и регулируемых отраслей с единым форматом отчёта. Сравните редакции.
Гейт редакции
Заголовок раздела «Гейт редакции»Эта возможность доступна в NextPDF Enterprise. Получите лицензию.
Флаг функции лицензии
Заголовок раздела «Флаг функции лицензии»Уровень enterprise ограничивает доступ к этой поверхности. Установите пакет Enterprise рядом с пакетом Core; фабрика политик и точка входа Compliance разрешаются во время выполнения через контракт Core, поэтому вызывающий код не меняется при обновлении редакции.
Контракт поведения
Заголовок раздела «Контракт поведения»- Метод
validate()каждой политики является чистой функцией: на входе — байты PDF, на выходе — замечания. Он никогда не изменяет входные данные; архитектура сохраняет строгую границу режима только для чтения, отделённую от любого автоматического исправления. - Отчёт группирует замечания по серьёзности;
passes()возвращает true, когда ошибок нет, и предупреждения никогда не делают отчёт неуспешным. - Каждый отчёт содержит встроенный юридический дисклеймер, указывающий, что результат является справочной технической проверкой структуры; вы обязаны отображать этот дисклеймер в выводе, предназначенном для пользователя.
- Проверка состояния LTV подтверждает только наличие структуры DSS; она не выполняет криптографическую проверку встроенных данных OCSP/CRL.
- Политика квалификации eIDAS проверяет структуру PAdES только на уровне PDF; фактическая квалификация зависит от поставщика услуг доверия и сертификата, которые находятся за пределами этого модуля.
Статус проверки на NDA
Заголовок раздела «Статус проверки на NDA»Эта публичная страница описывает только внешне наблюдаемое поведение. Она не содержит внутренних путей пространств имён, кроме уже перечисленных поддерживаемых публичных имён классов, внутренних имён трейтов, имён файлов runbook или внутренних префиксов тикетов. Внутренние детали отдельных политик остаются в закрытом справочнике в рамках соглашения о неразглашении (non-disclosure agreement, NDA).
Резервный вариант Core
Заголовок раздела «Резервный вариант Core»NextPDF Core Compliance поставляет валидаторы байтового потока и перекрёстную проверку грамматики; отчёт без замечаний — это проверенный результат, а не сертификат. Готовые политики для архивирования, подписи, LTV и регулируемых отраслей с единым форматом отчёта не имеют эквивалента в уровне Core.
Резервный вариант Pro
Заголовок раздела «Резервный вариант Pro»NextPDF Pro Compliance проверяет EN 16931 / Factur-X / ZUGFeRD внутри процесса на уровне электронного счёта. Он не предоставляет готовых структурных политик PDF/A-4, PAdES, LTV, FDA Part 11 или SEC 17a-4; они поставляются только в пакете nextpdf/enterprise. Поверхность внешних sidecar-компонентов Enterprise Compliance — это отдельный модуль.
Примечание о границе Enterprise
Заголовок раздела «Примечание о границе Enterprise»Точка входа, фабрика политик и отчёт описаны на уровне поведения. Внутренние правила отдельных политик и любые детали внутренней классификации находятся за рамками публичной поверхности. Криптографическая действительность подписи намеренно не входит в эту область охвата; за неё отвечают Signature verification и модули Security.
Граница развёртывания
Заголовок раздела «Граница развёртывания»Валидация выполняется внутри процесса и локально, без сетевого ввода-вывода; политика не может изменить входные данные. Оператор относится к байтам PDF из недоверенных источников как к враждебным, отображает дисклеймер отчёта в выводе, предназначенном для пользователя, и отвечает за меры контроля хранения и минимизации для отчётов и замечаний, которые могут содержать персональные данные из подписанных документов и метаданных журнала аудита.
Граница юридического соответствия
Заголовок раздела «Граница юридического соответствия»Эта страница помечена как export_control_class: legal-review-required; перед установкой флага publish требуется юридическое согласование. Поддержка стандарта не является соответствием ему, а соответствие не является сертификацией; NextPDF не имеет сертификации и не предоставляет её. Политики FDA 21 CFR Part 11 и SEC 17a-4 проверяют только структурные атрибуты и не устанавливают юридического соответствия. Эта документация не является юридическим заключением; для оценки юридической достаточности обращайтесь к своей команде по соответствию.
См. также
Заголовок раздела «См. также»- Compliance — внешние sidecar-компоненты валидатора (отдельная поверхность).
- Evidence — запечатанные пакеты отчётов с метками времени.
- Core Compliance — внутрипроцессные валидаторы байтового потока.
- Signature verification — криптографическая проверка CMS / метки времени / архивной цепочки (отличается от этой структурной поверхности).
- Спецификации: PDF/A-4 — упоминаемый стандарт.
- Validation — Deep Reference (закрытый доступ).