Содержание
Логические документы, проверка и переиспользование
Назначение: Контракт. Продукт: ShariX Open · Общий компонент.
Для кого: Разработчик · Интегратор · Администратор · Поддержка · Рецензент и приёмщик · Нейросеть.
Темы: Документы → Жизненный цикл · Доступ → Объектные права · Доступ → Требования.
Что является документом ShariX Open
- Documents — логическая запись документа в предметной области: тип, владелец/контекст, данные текущего draft и его revision.
- DocumentFile — изменяемые файлы draft; они не заменяют историю проверки.
- DocumentTypeDefinition — schema структурированных полей, file policy, identity fields и verification policy типа.
- DocumentVersion — проверенная редакция: draft_revision, structured data, expiry, identity fingerprint, уровень/источник/автор проверки и Ticket.
- DocumentVersionFile — снимок файла проверенной версии, включая исходный public ID, имя, размер и SHA-256.
Файл, логический документ, проверенная версия и заявка ST_REQUEST — четыре разных объекта. Их наличие не следует обозначать одной отметкой «документ готов».
Изменение draft
- Provisioning создаёт либо переиспользует draft в области target/user/type; тип документа сам не даёт доступ к произвольной записи другого пользователя.
- replace_document_draft меняет только mutable файлы/данные и проверяет file policy.
- Изменения данных, файлов и определённых полей сдвигают draft_revision.
- Старая verified version остаётся в истории; её актуальность относительно нового draft оценивается отдельно.
Создание draft не подтверждает достоверность сведений. Нельзя переписывать историческую версию ради исправления текущего файла.
Проверка конкретной редакции
Каноническая create_verified_document_version под блокировкой сверяет:
- ожидаемую draft_revision с текущей;
- контракт
document-verification-v1, public ID документа и revision в verification Ticket; - идентичность документа по настроенным identity fields;
- данные и файлы именно проверяемой версии.
Если draft изменился после запроса, нужна новая заявка проверки. Если после реальной проверки изменились identity fields, требуется новая логическая Documents запись. Успех создаёт новую Version/VersionFile и обновляет current_verified_version; обычные save/delete проверенной истории запрещены моделью.
Как evidence подходит требованию
Чистый dbsynce.lib.documents_core проверяет schema, identity, expiry, наличие содержимого и минимальный уровень проверки. Он не импортирует ORM, не ходит в сеть и не выдаёт права.
- Совместимое актуальное evidence может удовлетворить требование.
- При существующем содержимом со слабой/отсутствующей/stale проверкой результат —
needs_verification, а не требование заново загрузить всё. - Несовместимость, expiry, conflict и отсутствие содержимого — отдельные исходы.
- Ранжирование не должно предпочитать хост только по его имени; источник и применимость учитываются через контракт evidence.
Область, переиспользование и доступ
- Признак is_global не равен разрешению передавать все файлы любому сервису.
- Межхостовое reuse требует отдельного действующего согласия и сохранения provenance.
- Обычная оценка requirements использует локально материализованные данные, а не синхронный сетевой запрос.
- Object-level доступ к логическому документу/версии проверяется отдельно: владелец, администратор либо допустимый Ticket/resource/provider context по canonical policy.
- Знание URL или public ID файла не является основанием доступа.
Shared semantics могут использоваться другими продуктами, включая Platform; владение их закрытыми моделями и внутренние операции описываются отдельно ответственными этого продукта. Изменения shared передаются им для проверки и принятия.
Диагностика
Сопоставьте document public ID, owner/context, draft_revision, current_verified_version, verification Ticket, schema/identity и expire_date. Затем проверьте evidence state и отдельно file ACL. Не заменяйте отказ доступа повторной загрузкой, а stale verification — редактированием исторической Version.
Связанные страницы: requirements/effective access, ST_REQUEST и владение моделями.
Проверенные источники
Проверено по Git-исходникам 31.10.2026. Состояние исходников отделено от состояния конкретной установки; команды ниже при редакционной проверке не выполнялись, бизнес-данные и значения секретов не читались.