Files
marketplaces/docs/platform/15-rules-and-constraints.md
sdarbinyan 10251f2fc6
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
docs
2026-07-05 04:23:47 +04:00

2.8 KiB
Raw Blame History

15. Правила и ограничения платформы

Назначение

Документ фиксирует обязательные ограничения платформы для всех команд: frontend, backend, QA, DevOps и интеграционных партнеров.

Базовые неизменяемые принципы

  • Платформа полностью configuration-driven.
  • Никакой hardcoded tenant/project логики во frontend.
  • Tenant определяется только по домену.
  • UI строится из bootstrap.json.
  • Виджеты переиспользуемы и не обращаются к API напрямую.
  • Backend предоставляет данные, а не layout.
  • Layout управляется только конфигурацией.

Обязательные правила JSON-модульности

  • Bootstrap: структура страниц и подключение систем.
  • Theme JSON: только визуальные токены.
  • Navigation JSON: только маршруты и меню.
  • Catalog/Product/Category API JSON: только доменные данные.
  • Запрещено смешивать зоны ответственности между JSON-модулями.

Что разрешено

  • Добавлять новые виджеты через registry/manifest.
  • Расширять опциональные поля с сохранением обратной совместимости.
  • Добавлять новые секции/страницы через конфигурацию.

Что запрещено

  • Хардкод tenant-веток в компонентах.
  • Прямые API-вызовы из widget UI слоя.
  • Дублирование layout-правил в каждом виджете.
  • Breaking изменения контрактов без schemaVersion.

Пример policy JSON

{
  "platformPolicy": {
    "configurationDriven": true,
    "tenantResolution": "domain-only",
    "widgetsCanCallApiDirectly": false,
    "layoutControlledBy": "configuration",
    "backendProvides": ["products", "categories", "items"]
  }
}

Ответственность Frontend

  • Соблюдать архитектурные ограничения и слоистость.
  • Не вводить локальные обходы конфигурации.
  • Проводить регрессионные проверки на multi-tenant сценариях.

Ответственность Backend

  • Строго следовать контрактам данных.
  • Поддерживать tenant isolation и аудируемость изменений.
  • Предоставлять стабильные и документированные API.