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

55 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
```json
{
"platformPolicy": {
"configurationDriven": true,
"tenantResolution": "domain-only",
"widgetsCanCallApiDirectly": false,
"layoutControlledBy": "configuration",
"backendProvides": ["products", "categories", "items"]
}
}
```
## Ответственность Frontend
- Соблюдать архитектурные ограничения и слоистость.
- Не вводить локальные обходы конфигурации.
- Проводить регрессионные проверки на multi-tenant сценариях.
## Ответственность Backend
- Строго следовать контрактам данных.
- Поддерживать tenant isolation и аудируемость изменений.
- Предоставлять стабильные и документированные API.