Инструменты пользователя

Инструменты сайта


sharixopen:knowledge:architecture:system_layers

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
sharixopen:knowledge:architecture:system_layers [2026/10/31 11:04] – [sharixknowledge] approved package sx_knowledge_api_opensharixopen:knowledge:architecture:system_layers [2026/10/31 16:30] (текущий) – [sharixknowledge] approved package sx_knowledge_api_open
Строка 4: Строка 4:
     "page": "sharixopen:knowledge:architecture:system_layers",     "page": "sharixopen:knowledge:architecture:system_layers",
     "area": "open",     "area": "open",
-    "type": "reference",+    "type": "architecture",
     "title": "Слои архитектуры и разделение ответственности",     "title": "Слои архитектуры и разделение ответственности",
     "status": "review",     "status": "review",
Строка 15: Строка 15:
             "ShariXKnowledgeOpenKnowledgeArchitectureSecurityboundaries",             "ShariXKnowledgeOpenKnowledgeArchitectureSecurityboundaries",
             "ShariXKnowledgeOpenKnowledgeArchitectureRepositories",             "ShariXKnowledgeOpenKnowledgeArchitectureRepositories",
-            "ShariXKnowledgeOpenKnowledgeDomainOrderticket"+            "ShariXKnowledgeOpenKnowledgeDomainOrderticket", 
 +            "ShariXKnowledgeLayerModel", 
 +            "ShariXKnowledgeVerification", 
 +            "ShariXKnowledgeClassification"
         ]         ]
     },     },
     "extensions": {     "extensions": {
         "taxonomy": {         "taxonomy": {
-            "domain": "reference", +            "domain": "architecture", 
-            "lifecycle": "unspecified",+            "lifecycle": "implemented", 
 +            "component": "dbsynce, tickets, webservice_running, handlers_backend, core",
             "parents": [             "parents": [
                 "ShariXKnowledgeArchitecture"                 "ShariXKnowledgeArchitecture"
             ],             ],
-            "terms": []+            "terms": [ 
 +                "audience_developer", 
 +                "audience_integrator", 
 +                "audience_reviewer", 
 +                "audience_ai", 
 +                "product_sharix_open", 
 +                "product_shared", 
 +                "material_architecture", 
 +                "topic_architecture_models", 
 +                "topic_architecture_boundaries", 
 +                "topic_api_contracts" 
 +            ]
         },         },
         "glossary": [],         "glossary": [],
Строка 31: Строка 46:
             "kind": "metadata_only",             "kind": "metadata_only",
             "basis": "Устаревший ID заменён действующим ID той же страницы раздела; URL и тело сохранены."             "basis": "Устаревший ID заменён действующим ID той же страницы раздела; URL и тело сохранены."
 +        },
 +        "classification": {
 +            "schema": "sharix.knowledge.classification.v1",
 +            "products": [
 +                "sharix_open",
 +                "shared"
 +            ],
 +            "audiences": [
 +                "developer",
 +                "integrator",
 +                "reviewer",
 +                "ai"
 +            ],
 +            "material": "architecture",
 +            "topics": [
 +                "architecture/models",
 +                "architecture/boundaries",
 +                "api/contracts"
 +            ],
 +            "tag_terms": [
 +                "audience_developer",
 +                "audience_integrator",
 +                "audience_reviewer",
 +                "audience_ai",
 +                "product_sharix_open",
 +                "product_shared",
 +                "material_architecture",
 +                "topic_architecture_models",
 +                "topic_architecture_boundaries",
 +                "topic_api_contracts"
 +            ],
 +            "registry_document": "ShariXKnowledgeClassification",
 +            "state_meaning": "implemented — проверены исходники, не runtime; not_applicable — концепция/нормативный контракт без утверждения готовой функции; review — редакционный статус"
 +        },
 +        "source_evidence": [
 +            {
 +                "repository": "sharix-open-backend",
 +                "commit": "b70f6989f4c8616725b38f72fc15b8981a5dc47b",
 +                "path": "models/orders.py",
 +                "sha256": "4a5dbbec8a62ed3ca933ae5494032ba2a8a4369c7c1ece4011c98755df23faf2"
 +            },
 +            {
 +                "repository": "sharix-open-backend",
 +                "commit": "b70f6989f4c8616725b38f72fc15b8981a5dc47b",
 +                "path": "models/documents.py",
 +                "sha256": "3a6f0ac50a211beede66f46e07302d16e2e02f99e117fab5bfbe738731c0c3cf"
 +            },
 +            {
 +                "repository": "sharix-open-backend",
 +                "commit": "b70f6989f4c8616725b38f72fc15b8981a5dc47b",
 +                "path": "lib/integration_ports.py",
 +                "sha256": "d079ec56e6709b29d7755e47d2a88d423235fe8eb1bf7a92851ae25d74bf1066"
 +            },
 +            {
 +                "repository": "sharix-open-tickets",
 +                "commit": "edc0093b12ad3fd917f724985de8688b87f4ecd5",
 +                "path": "models/ticket.py",
 +                "sha256": "4768d9ef47b61bf3ae98bf2749ed142adc477978b44de29177363ba9664baa43"
 +            },
 +            {
 +                "repository": "sharix-open-webservice-running",
 +                "commit": "d5b966a88b2dc782ec3ca7660be17feef5193019",
 +                "path": "models/local_examples.py",
 +                "sha256": "07ac086d9eb18e0a1d473ed316184d1d924858c966d1722654638034a8bdb36c"
 +            },
 +            {
 +                "repository": "sharix-open-webservice-running",
 +                "commit": "d5b966a88b2dc782ec3ca7660be17feef5193019",
 +                "path": "models/execution.py",
 +                "sha256": "b2c95fa19a5b12ca0a7616511075781dba68356bc91a095244c93ecb2ecf4fe2"
 +            },
 +            {
 +                "repository": "sharix-open-webservice-running",
 +                "commit": "d5b966a88b2dc782ec3ca7660be17feef5193019",
 +                "path": "models/execution_extensions.py",
 +                "sha256": "6e1a13ab3e07724c3c49d603f9e60ab0236cd517e059a0b663d4b47a7655b616"
 +            },
 +            {
 +                "repository": "sharix-open-webservice-running",
 +                "commit": "d5b966a88b2dc782ec3ca7660be17feef5193019",
 +                "path": "apps.py",
 +                "sha256": "dde02f8eae3449c973b6c0ef66053daa7563116149ccd4da00511fdad50c8e46"
 +            },
 +            {
 +                "repository": "sharix-open-handlers-examples",
 +                "commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb",
 +                "path": "runtime_provider.py",
 +                "sha256": "d50f91abd5f9da4149454983cc497f7598474fa6b6a80ecaa5c746a7f9dfef57"
 +            },
 +            {
 +                "repository": "sharix-open-webapp-base",
 +                "commit": "edb402d73b667061b3a9e8ac621aaf14de87c9aa",
 +                "path": "core/settings.py",
 +                "sha256": "b1be87043282fe0d9792a887aebfd7279abad6c91e927ba6ec15dc81747ca691"
 +            },
 +            {
 +                "repository": "sharix-open-webapp-base",
 +                "commit": "edb402d73b667061b3a9e8ac621aaf14de87c9aa",
 +                "path": "core/urls.py",
 +                "sha256": "623d4d83ba6a740db2a60d0a9b812a9dfcb2071dc169745431274f535b54ae76"
 +            }
 +        ],
 +        "editorial_review": {
 +            "date": "2026-10-31",
 +            "scope": "Конкретные объекты/действия/границы и списки по owning code; концепции отделены от существующих операций",
 +            "runtime_checked": false,
 +            "source_files_verified": 11
         }         }
     },     },
-    "content_sha256": "5435659ff7c9afad598b14fb5a8b858704dfc6f85986708e0a11e74077419862",+    "content_sha256": "b6483a3ea7fbb3477141bc0321eb7f24ebeee107c3210c85a04fc35550b3a99d",
     "schema": 1     "schema": 1
 } }
Строка 40: Строка 162:
 ~~NOCACHE~~ ~~NOCACHE~~
  
-**Тип:** architecture · **Статус:** сведения требуют сверки с действующей установкой; архитектурные правила сформулированы как целевой контракт.+**Назначение:** [[sharixopen:knowledge:classification:materials|Архитектура]]. **Продукт:** [[sharixopen:knowledge:classification:products|ShariX Open]] · [[sharixopen:knowledge:classification:products|Общий компонент]]. 
 + 
 +**Для кого:** [[sharixopen:knowledge:classification:audiences|Разработчик]] · [[sharixopen:knowledge:classification:audiences|Интегратор]] · [[sharixopen:knowledge:classification:audiences|Рецензент и приёмщик]] · [[sharixopen:knowledge:classification:audiences|Нейросеть]]. 
 + 
 +**Темы:** [[sharixopen:knowledge:classification:topics|Архитектура → Владение моделями]] · [[sharixopen:knowledge:classification:topics|Архитектура → Границы]] · [[sharixopen:knowledge:classification:topics|API → Контракты]]. 
 + 
 + 
 + 
 +===== Как читать слои ===== 
 +Слои ShariX Open — границы владения данными и операциями, а не последовательность импортов всех приложений друг в друга. Для краткой навигации используйте [[sharixopen:knowledge:architecture:layers|карту источников]]; здесь описано, почему изменение относится к определённому владельцу. 
 + 
 +===== Общая предметная модель: dbsynce ===== 
 +  * Orders, клиентские/корпоративные профили, Company, Service/Provider/Resource, Permissions/Relationship. 
 +  * Documents/DocumentVersion и definitions/checks/requirement rules. 
 +  * Scope метасервиса, канонические правила изменения и проверки actor/context. 
 +  * Чистые контракты вроде documents_core и integration ports для адаптеров. 
 + 
 +Не добавляйте поле в синхронизируемую модель только ради локального интерфейса. Сначала определите, должен ли другой хост понимать его смысл и кто отвечает за изменение. 
 + 
 +===== Жизненный цикл заявки: tickets ===== 
 +Ticket хранит тип/статус, участников, комментарии, вложения и события. Его состояние помогает маршрутизировать процесс, но не является доказательством успешной внешней операции или выполненного платежа. История документа и локальный результат этапа не переносятся в Ticket вместо своих моделей. 
 + 
 +Событие после commit уведомляет владельца новой стадии; потерянная доставка не откатывает сохранённое состояние. Обработчик должен уметь перечитать канонический объект. 
 + 
 +===== Локальное исполнение: webservice_running ===== 
 +  * OrdersLocal хранит локальные дополнительные данные и географические представления, связанные с Orders; это не второй общий Order. 
 +  * OrderExecution привязан OneToOne к Order и сохраняет execution-policy snapshot конкретного заказа. 
 +  * Stage — локальная единица исполнения со статусами PENDING/COMPLETED, правилами видимости и blocks_order_completion. 
 +  * Artifact, Correspondence и ExternalEvent имеют собственный execution context и проверку доступа. 
 + 
 +Изменение design-time политики после создания заказа не должно молча менять сохранённый OrderExecution snapshot. Новый локальный этап или материал изменяется через owning execution service и его проверки, а не прямой подменой статуса заказа. 
 + 
 +===== Процесс и транспорт: handlers ===== 
 +  * Blockly workspace описывает явные действия/ветвления/ожидания; из него генерируется Python. 
 +  * ''handlers_backend'' предоставляет общий runtime, очередь/defer, transport и provenance. 
 +  * ''handlers_examples'' связывает runtime с каталогом ShariX Open и его настройками/путями. 
 +  * Narrow backend action сохраняет предметный результат; локальный reason/room и XMPP send не заменяют его. 
 + 
 +Не прячьте новый workflow только в ручном generated Python и не переносите доменную модель в процессный буфер handler. 
 + 
 +===== Сборка и optional-адаптеры ===== 
 +''core.settings/core.urls'' определяют состав и маршруты сборки. AppConfig может зарегистрировать callback в backend-owned port: backend вызывает контракт, не импортируя web-layer ради discovery. Например, webservice_running регистрирует execution/verification adapters при готовности приложения.
  
-**Раздел:** [[sharixopen:knowledge:foundation:start|ShariX Open: система знаний и архитектурные правила]]+Отсутствующий provider должен давать предусмотренное ограничение/ошибку, а не вымышленный успешный результат. Source checkout, Django runtime app, contribution manifest и фактический service result проверяются отдельно.
  
-===== Основные слои ===== +===== Закрытые расширения ===== 
-  * ''dbsynce'' — ограниченный синхронизируемый слой заказа, идентичности, отношений, документов и требований. +Service Constructor — закрытый компонент. Здесь обозначена только граница: общая система может потреблять согласованные определения/снимки через предусмотренный контракт, но внутренние модели и алгоритмы конструктора описываются во внутренней базе знаний. Подробности и доступ уточняются у ответственных Platform. Shared не означает открытую лицензию каждого расширения.
-  * ''tickets'' — общий жизненный цикл Ticket, запросы ''ST_REQUEST'', комментарии, вложения и события. +
-  * ''webservice_running'' — исполнение заказа: этапы, контекст, артефакты, внешние события, связанные заказы и дополнительные расходы. +
-  * ''service-constructor'' — определения процессов и требований на этапе проектирования услуги; runtime получает версионированный снимок. +
-  * ''handlers'' — явные переходы и действия в бизнес-процессе, без переноса владеления данными. +
-  * ''payments'', Nextcloud, Moodle, appointments и прочие расширения работают через свои границы. +
-===== Границы ===== +
-Сервис не импортирует закрытую модель Platform. Подключение к Platform выполняется через контракты и API. Установка общего приложения в составе Platform не передаёт ей право владения его моделями.+
  
-===== Разделы и материалы ===== +===== Проверка архитектурного изменения ===== 
-  * [[sharixopen:knowledge:architecture:model_ownership|Владение моделями и запрещённые зависимости]] +  - Назовите владельца новых данных и единственную каноническую операцию изменения. 
-  * [[sharixopen:knowledge:architecture:api_contracts|API и межмодульные контракты]] +  - Проверьте actor, объект, scope и возвращаемый результат. 
-  * [[sharixopen:knowledge:architecture:security_boundaries|Безопасность, разделение доступа и минимизация данных]] +  - Разделите изменяемую конфигурацию, snapshot действующего заказа и процессное ожидание. 
-  * [[sharixopen:knowledge:architecture:repositories|Топология репозиториев и владение исходным кодом]]+  - Проверьте повтор/конкурентное действие и восстановление после неизвестного ответа. 
 +  - При изменении shared опубликуйте код и передайте ответственному Platform для отдельной проверки/принятия.
  
-~~SHARIX_KNOWLEDGE_GRAPH~~+Файлы, формы и названия слоёв подтверждают структуру исходников; успешная работа установки проверяется по [[sharixopen:knowledge:development:verification|критериям приёмки]].
  
-~~SHARIX_KNOWLEDGE_CATALOG~~+===== Проверенные источники ===== 
 +Проверено по Git-исходникам 31.10.2026. Состояние исходников отделено от состояния конкретной установки; команды ниже при редакционной проверке не выполнялись, бизнес-данные и значения секретов не читались.
  
-===== Связанные понятия ===== +  * [[https://git.sharix-app.org/ShariX_Open/sharix-open-backend/src/commit/b70f6989f4c8616725b38f72fc15b8981a5dc47b/models/orders.py|sharix-open-backend / models/orders.py]]. 
-  * [[sharixopen:knowledge:architecture:model_ownership|Владение моделями и запрещённые зависимости]] +  * [[https://git.sharix-app.org/ShariX_Open/sharix-open-backend/src/commit/b70f6989f4c8616725b38f72fc15b8981a5dc47b/models/documents.py|sharix-open-backend / models/documents.py]]. 
-  * [[sharixopen:knowledge:domain:order_ticket|Заказ, Ticket и PROCESS]] +  * [[https://git.sharix-app.org/ShariX_Open/sharix-open-backend/src/commit/b70f6989f4c8616725b38f72fc15b8981a5dc47b/lib/integration_ports.py|sharix-open-backend / lib/integration_ports.py]]. 
-  * [[sharixopen:knowledge:architecture:api_contracts|API и межмодульные контракты]]+  * [[https://git.sharix-app.org/ShariX_Open/sharix-open-tickets/src/commit/edc0093b12ad3fd917f724985de8688b87f4ecd5/models/ticket.py|sharix-open-tickets / models/ticket.py]]. 
 +  * [[https://git.sharix-app.org/ShariX_Open/sharix-open-webservice-running/src/commit/d5b966a88b2dc782ec3ca7660be17feef5193019/models/local_examples.py|sharix-open-webservice-running / models/local_examples.py]]. 
 +  * [[https://git.sharix-app.org/ShariX_Open/sharix-open-webservice-running/src/commit/d5b966a88b2dc782ec3ca7660be17feef5193019/models/execution.py|sharix-open-webservice-running / models/execution.py]]. 
 +  * [[https://git.sharix-app.org/ShariX_Open/sharix-open-webservice-running/src/commit/d5b966a88b2dc782ec3ca7660be17feef5193019/models/execution_extensions.py|sharix-open-webservice-running / models/execution_extensions.py]]. 
 +  * [[https://git.sharix-app.org/ShariX_Open/sharix-open-webservice-running/src/commit/d5b966a88b2dc782ec3ca7660be17feef5193019/apps.py|sharix-open-webservice-running / apps.py]]. 
 +  * [[https://git.sharix-app.org/ShariX_Open/sharix-open-handlers-examples/src/commit/76e0c693b628ed4a1fa34515a3f8abdff26149bb/runtime_provider.py|sharix-open-handlers-examples / runtime_provider.py]]. 
 +  * [[https://git.sharix-app.org/ShariX_Open/sharix-open-webapp-base/src/commit/edb402d73b667061b3a9e8ac621aaf14de87c9aa/core/settings.py|sharix-open-webapp-base / core/settings.py]]. 
 +  * [[https://git.sharix-app.org/ShariX_Open/sharix-open-webapp-base/src/commit/edb402d73b667061b3a9e8ac621aaf14de87c9aa/core/urls.py|sharix-open-webapp-base / core/urls.py]].
  
 ~~SHARIX_KNOWLEDGE_RELATED~~ ~~SHARIX_KNOWLEDGE_RELATED~~
  
sharixopen/knowledge/architecture/system_layers.txt · Последнее изменение: — sx_knowledge_api_open

© 2022 ShariX