| |
| sharixopen:knowledge:standards:bundles [2026/10/17 08:51] – [sharixknowledge] approved package sx_knowledge_api_open | sharixopen:knowledge:standards:bundles [2026/10/17 20:51] (текущий) – [sharixknowledge] approved package sx_knowledge_api_open |
|---|
| ====== Подготовка архива знаний для публикации (инструкция ИИ) ====== | <sharix-knowledge-meta> |
| | { |
| | "id": "ShariXKnowledgeBundles", |
| | "page": "sharixopen:knowledge:standards:bundles", |
| | "area": "open", |
| | "type": "reference", |
| | "title": "Публикационный пакет: состав и проверки", |
| | "status": "review", |
| | "schema_version": 1, |
| | "relations": { |
| | "related_to": [ |
| | "ShariXKnowledgeOpenKnowledgeFoundationStart", |
| | "ShariXKnowledgeOpenKnowledgeDevelopmentSharedchangeflow", |
| | "ShariXKnowledgeOpenKnowledgeDevelopmentLicensesprovenance", |
| | "ShariXKnowledgeOpenKnowledgePublishingPackageformats" |
| | ] |
| | }, |
| | "extensions": { |
| | "taxonomy": { |
| | "domain": "reference", |
| | "lifecycle": "unspecified", |
| | "parents": [ |
| | "ShariXKnowledgeOpenKnowledgeStandardsStart" |
| | ], |
| | "terms": [] |
| | }, |
| | "glossary": [] |
| | }, |
| | "content_sha256": "242053d2a4870c58836608944b77fe308ef0351749d53a1f0b60e173f2dcfd69", |
| | "schema": 1 |
| | } |
| | </sharix-knowledge-meta> |
| | ====== Публикационный пакет: состав и проверки ====== |
| | ~~NOCACHE~~ |
| |
| **Область:** Open. **Состояние документа:** проект для обсуждения (review). | **Родительский раздел:** [[sharixopen:knowledge:standards:start|Стандарты ShariX Open]]. |
| |
| ===== Назначение ===== | ===== Канонический пакет ===== |
| Готовьте **публикационный** ''sharix.knowledge.bundle'' формата 1. Это не установочный ZIP DokuWiki-плагина и не ZIP контекста TZ. | Корень архива: ''manifest.json'' и ''documents/<id>.txt''. Формат манифеста — ''sharix.knowledge.bundle'', версия 1. Путь, ''id'' и ''sha256'' проверяются до публикации. Допускаются метаданные ''relations'' и ''extensions.taxonomy.parents'', связывающие реально существующие статьи. |
| |
| ===== Содержимое ===== | ===== Обновление и история ===== |
| В корне ZIP находятся только ''manifest.json'' и ''documents/<id>.txt'' для каждой записи. ''manifest.json'' содержит ''format'', ''version: 1'' и массив ''documents''. У документа обязательны ''id'', ''page'', ''area'', ''type'', ''title'', ''status'', ''schema_version: 1'', ''path'', ''sha256''. Пути ''documents/<id>.txt'', кодировка UTF-8, хеш SHA-256 **точных байтов** текста. | Адрес ''page'' является основой сопоставления. Плагин автоматически учитывает созданные вручную страницы и сохраняет существующие идентификаторы. Содержимое меняется через штатный DokuWiki API с сохранением редакций. ''base_sha256'' не нужен для обычного изменения; ''sha256'' в манифесте подтверждает только целостность байтов пакета. |
| |
| ''area=open'' → ''sharixopen:*''; ''area=platform'' → ''sharixplatform:platform:*''; ''area=joint'' → ''sharixplatform:joint:*''. | ===== Безопасность ===== |
| | Маршрутизация: ''open'' — публичная DokuWiki, ''platform'' и ''joint'' — внутренняя. До 100 документов в одном ZIP. Сходство страницы с другой по отличающемуся адресу проверяется отдельно; удаление оформляется только явным действием и индивидуальным подтверждением. Конфликтные документы можно пропустить. |
| |
| ===== Обновление ===== | ===== Связанные материалы ===== |
| Для существующей страницы **не создавайте новый ID и URL**. Скачайте её актуальные данные (или получите через утверждённый интерфейс). Добавьте ''base_sha256'' именно текущего текста. Сохраните ''page'' и ''id'', замените содержимое новым текстом. DokuWiki сама хранит историю. ''previous_id'' применяют **только** для разовой миграции ошибочного старого стабильного ID, не для обычного обновления. | * [[sharixopen:knowledge:publishing:package_formats|Точная спецификация ZIP и JSON]] |
| | * [[sharixopen:knowledge:publishing:bundle_v1|Формат bundle v1]] |
| | * [[sharixopen:knowledge:publishing:routing_and_review|Публикация по областям]] |
| |
| ===== Удаление старого мусора ===== | |
| Не используйте пустой файл как скрытое удаление. После обновления плагина и Platform выполняйте явное ''operation: delete'' с файлом ровно 0 байт, ''sha256'' пустой строки, текущим ''base_sha256'' и ''delete_confirmation'' равным полному ''page''. Операция проходит отдельный preview/модерацию и требует ACL_DELETE. Нельзя удалить главный каталог. При несовпадении хеша **отмените удаление**, а не подменяйте хеш. | |
| |
| ===== Машинные связи ===== | |
| ''relations'': ''related_to'', ''depends_on'', ''applies_to'', ''verified_by'', ''supersedes'', ''conflicts_with''. ''extensions.taxonomy'': ''domain'', ''lifecycle'', ''component'', ''parents'', ''terms''; ''extensions.glossary'': словарь определений. ID целевых документов должны быть существующими и разрешёнными для этой области. | |
| |
| ===== Обязательная самопроверка ===== | |
| - Никаких версий и дат в постоянных адресах (если нет реально разных версий API). | |
| - Не меньше одной стартовой страницы раздела с графом, каталогом и текстовыми ссылками. | |
| - Все дочерние документы имеют родителя, ссылки и RELATED. | |
| - Все внутренние сведения перенесены только в ''platform''/''joint'' и не появляются в Open. | |
| - Проверены фактические SHA и ''base_sha256''; нельзя придумывать последние. | |
| - Удаления изолированы от массовой публикации и явно видны при preview. | |
| - Архив проходит парсер Platform до отправки модератору. | |
| |
| См. [[sharixopen:knowledge:standards:routing|Маршрутизация и модерация]], [[sharixopen:knowledge:standards:pages|Шаблон страницы]]. | |
| |
| |
| ===== Навигация ===== | |
| * [[sharixopen:knowledge:start|Общий каталог ShariX]]. | |
| * [[sharixopen:knowledge:standards:start|Родительский раздел]] | |
| * [[sharixopen:knowledge:standards:pages|Стандарт структуры и навигации страниц]]. | |
| * [[sharixopen:knowledge:standards:routing|Разграничение Open, Platform и Joint]]. | |
| |
| ~~NOCACHE~~ | |
| ~~SHARIX_KNOWLEDGE_RELATED~~ | ~~SHARIX_KNOWLEDGE_RELATED~~ |
| |