55 lines
2.8 KiB
Markdown
55 lines
2.8 KiB
Markdown
|
|
# 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.
|