architect/_archive/2025-11-cleanup/platform-v2-cifra/archive/2025-11-10-restructure-v2/ARCHITECTURE_VIEWPOINTS.md

Архитектурные Срезы/Среды CIFRA Platform

Дата создания: 2025-11-10
Версия: 1.0
Статус: Системная архитектура


Введение

Архитектура CIFRA Platform описывается через 10 архитектурных срезов (viewpoints) - различных перспектив рассмотрения системы.

Каждый срез отвечает на свой вопрос и описывает систему со своей точки зрения.

Методология

Основа: ISO/IEC/IEEE 42010 (Architecture Description Standard) + ArchiMate 3.1 + 4+1 View Model


10 Архитектурных Срезов

┌─────────────────────────────────────────────────────────────┐
│  1. КОНЦЕПТУАЛЬНЫЙ (Conceptual)                             │
│     Зачем? Что делает? Для кого?                            │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│  2. БИЗНЕС-СРЕДА (Business)                                 │
│     Кто пользователи? Какие бизнес-процессы?               │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│  3. ФУНКЦИОНАЛЬНЫЙ (Functional)                             │
│     Какие функции? Какие возможности?                       │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│  4. ИНФОРМАЦИОННЫЙ (Information)                            │
│     Какие данные? Как структурированы?                      │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│  5. ПРИЛОЖЕНИЕ (Application)                                │
│     Как устроено приложение? Какие компоненты?              │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│  6. ТЕХНОЛОГИЧЕСКИЙ (Technology)                            │
│     На чём работает? Какой стек?                            │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│  7. ФИЗИЧЕСКИЙ (Physical/Deployment)                        │
│     Где развёрнуто? Какая инфраструктура?                   │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│  8. БЕЗОПАСНОСТЬ (Security)                                 │
│     Как защищено? Кто имеет доступ?                         │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│  9. ИНТЕГРАЦИИ (Integration)                                │
│     С чем связано? Какие внешние системы?                   │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│  10. UI/UX (User Experience)                                │
│      Как выглядит? Как взаимодействует пользователь?        │
└─────────────────────────────────────────────────────────────┘

Срез 1: КОНЦЕПТУАЛЬНЫЙ (Conceptual View)

Назначение

Описывает ЗАЧЕМ существует система, какую ПРОБЛЕМУ решает, какую ЦЕННОСТЬ приносит.

Ключевые вопросы

Содержание

1. Миссия CIFRA:

CIFRA Platform - это low-code/no-code платформа для быстрой разработки корпоративных веб-приложений (CRM, ERP, Admin Panel, E-commerce) через декларативное описание на языке CIFRA.

2. Проблемы, которые решает:

Проблема Как CIFRA решает
Долгая разработка (месяцы) Готовые модули → недели
Высокая стоимость (миллионы) Открытый код + шаблоны
Код legacy Метаданные + генерация
Vendor lock-in Открытая платформа
Сложная кастомизация Модульность + API
Отсутствие стандартов .cifra формат

3. Stakeholders:

┌─────────────────────────────────────────────────┐
│  ЗАКАЗЧИКИ (Business Owners)                    │
│  - Нужно CRM/ERP быстро и дёшево                │
│  - Хотят самостоятельно настраивать             │
└─────────────────────────────────────────────────┘
           заказывают
┌─────────────────────────────────────────────────┐
│  РАЗРАБОТЧИКИ (Developers)                      │
│  - Создают .cifra конфигурации                  │
│  - Расширяют платформу                          │
└─────────────────────────────────────────────────┘
           создают
┌─────────────────────────────────────────────────┐
│  АДМИНИСТРАТОРЫ (Admins)                        │
│  - Настраивают экземпляры                       │
│  - Управляют пользователями                     │
└─────────────────────────────────────────────────┘
           настраивают для
┌─────────────────────────────────────────────────┐
│  КОНЕЧНЫЕ ПОЛЬЗОВАТЕЛИ (End Users)              │
│  - Работают в приложении (CRM, Admin Panel)     │
│  - Вводят данные, генерируют отчёты             │
└─────────────────────────────────────────────────┘

4. Бизнес-цели:

5. Ценностное предложение:

Для кого Ценность Альтернатива
Стартапы Быстрый MVP за недели 6 месяцев разработки
SMB Доступная стоимость SaaS подписка $$$$
Enterprise Кастомизация + контроль Vendor lock-in
Разработчики DRY + переиспользование Пишут с нуля каждый раз

Срез 2: БИЗНЕС-СРЕДА (Business View)

Назначение

Описывает КОГО обслуживает система и КАКИЕ БИЗНЕС-ПРОЦЕССЫ поддерживает.

Ключевые вопросы

Содержание

1. Роли (Actors):

CIFRA TEAM (производители платформы)
├── Core Developer - разрабатывает ядро
├── Module Developer - создаёт модули
├── Doc Writer - пишет документацию
└── Support Engineer - поддержка

CIFRA COMMUNITY (экосистема)
├── Plugin Developer - создаёт плагины
├── Theme Designer - создаёт темы
└── Configuration Author - создаёт .cifra шаблоны

CLIENT TEAM (потребители платформы)
├── Business Owner - заказчик системы
├── Project Manager - управляет проектом
├── System Admin - устанавливает и настраивает
├── Developer - кастомизирует при необходимости
└── End User - работает в приложении

2. Бизнес-процессы:

Процесс 1: Создание приложения

1. Выбор шаблона (CRM/ERP/Admin Panel)
   ├─ Из CIFRA Hub
   └─ Создание с нуля

2. Кастомизация конфигурации
   ├─ Добавление модулей
   ├─ Настройка Entity
   └─ Настройка UI

3. Генерация кода
   ├─ SQLAlchemy models
   ├─ FastAPI endpoints
   └─ Admin UI

4. Развёртывание
   ├─ Docker compose
   └─ Kubernetes

5. Настройка экземпляра
   ├─ Тема
   ├─ Роли
   └─ Интеграции

6. Запуск в production

Процесс 2: Работа в приложении (CRM)

1. Вход в систему (OAuth/Email)

2. Просмотр дашборда
   ├─ Метрики
   ├─ Графики
   └─ Задачи

3. Работа с контактами
   ├─ Создание
   ├─ Редактирование
   ├─ Поиск
   └─ Экспорт

4. Работа со сделками
   ├─ Создание deal
   ├─ Перемещение по pipeline
   ├─ Добавление задач
   └─ Генерация счёта

5. Аналитика
   ├─ Отчёты
   ├─ Графики продаж
   └─ Forecasting

Процесс 3: Расширение платформы

1. Создание модуля
   ├─ Определение Entity
   ├─ Написание бизнес-логики
   └─ Тесты

2. Публикация в CIFRA Hub
   ├─ Регистрация модуля
   ├─ Документация
   └─ Примеры использования

3. Установка модулем другими
   ├─ cifra hub install my-module
   ├─ Подключение в .cifra
   └─ Настройка

3. Use Cases (топ-20):

UC-01: Создать новую CRM систему из шаблона
UC-02: Добавить модуль к существующему приложению
UC-03: Настроить роли и права доступа
UC-04: Создать кастомное поле в Entity
UC-05: Настроить тему оформления
UC-06: Интегрировать с внешней системой (Stripe, SendGrid)
UC-07: Создать workflow правило
UC-08: Экспортировать данные в CSV/Excel
UC-09: Создать отчёт с графиками
UC-10: Настроить уведомления (Email, SMS)
UC-11: Создать кастомный модуль
UC-12: Опубликовать модуль в CIFRA Hub
UC-13: Создать backup данных
UC-14: Мигрировать между версиями CIFRA
UC-15: Настроить multi-tenancy
UC-16: Создать API endpoint
UC-17: Интегрировать OAuth провайдера
UC-18: Настроить процесс approvals
UC-19: Создать мобильную тему
UC-20: Развернуть в Kubernetes

Срез 3: ФУНКЦИОНАЛЬНЫЙ (Functional View)

Назначение

Описывает ЧТО ДЕЛАЕТ система, какие ФУНКЦИИ предоставляет.

Ключевые вопросы

Содержание

1. Основные функции:

┌─────────────────────────────────────────────────┐
  CIFRA CORE (ядро платформы)                    
├─────────────────────────────────────────────────┤
  F1.  Entity Management (CRUD)                  
  F2.  Field System (20+ типов полей)            
  F3.  Validation Engine                         
  F4.  Module System (изоляция, клонирование)    
  F5.  Plugin System                             
  F6.  Code Generation (YAML  Python)           
  F7.  Migration System (Alembic)                
  F8.  API Auto-generation (REST, GraphQL)       
  F9.  Admin UI Auto-generation                  
  F10. Search (Elasticsearch/Meilisearch)        
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
  CIFRA AUTH (аутентификация)                   
├─────────────────────────────────────────────────┤
  F11. Email/Password login                      
  F12. OAuth 2.0 (Google, GitHub, etc.)          
  F13. OpenID Connect                            
  F14. JWT tokens                                
  F15. 2FA (TOTP)                                
  F16. Password reset                            
  F17. Session management                        
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
  CIFRA SECURITY (безопасность)                  
├─────────────────────────────────────────────────┤
  F18. RBAC (Role-Based Access Control)          
  F19. ABAC (Attribute-Based)                    
  F20. RLS (Row-Level Security)                  
  F21. Field-Level Security                      
  F22. Rate Limiting                             
  F23. Audit Log                                 
  F24. Data Encryption                           
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
  CIFRA PROCESS (процессы и workflow)            
├─────────────────────────────────────────────────┤
  F25. BPMN 2.0 Engine                           
  F26. Workflow Rules                            
  F27. Approvals                                 
  F28. State Machines                            
  F29. Saga Pattern (distributed transactions)   
  F30. Scheduled Jobs                            
  F31. Background Tasks (Celery/RQ)              
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
  CIFRA UI (пользовательский интерфейс)          
├─────────────────────────────────────────────────┤
  F32. Theme System                              
  F33. Design Tokens (W3C)                       
  F34. Cascade System (CSS-like)                 
  F35. Responsive Design                         
  F36. Dark Mode                                 
  F37. Mobile Themes                             
  F38. Theme Builder (visual)                    
  F39. Component Library                         
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
  CIFRA DATA (работа с данными)                  
├─────────────────────────────────────────────────┤
  F40. Views (SQL query builder, как Drupal)     
  F41. Taxonomies (иерархические категории)      
  F42. Media Library                             
  F43. Revisions (версионирование)               
  F44. Import/Export (CSV, JSON, Excel)          
  F45. Bulk Operations                           
  F46. Advanced Search & Filters                 
  F47. Saved Searches                            
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
  CIFRA INTEGRATION (интеграции)                 
├─────────────────────────────────────────────────┤
  F48. REST API Client                           
  F49. GraphQL Client                            
  F50. Webhooks (incoming/outgoing)              
  F51. Event Bus (Kafka, RabbitMQ)               
  F52. Connectors (Stripe, SendGrid, etc.)       
  F53. API Rate Limiting                         
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
  CIFRA ANALYTICS (аналитика и отчёты)           
├─────────────────────────────────────────────────┤
  F54. Dashboards                                
  F55. Charts (Bar, Line, Pie, etc.)             
  F56. Pivot Tables                              
  F57. Report Builder                            
  F58. Scheduled Reports (email PDF)             
  F59. KPI Tracking                              
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
  CIFRA NOTIFICATION (уведомления)               
├─────────────────────────────────────────────────┤
  F60. Email (SMTP, SendGrid, Mailgun)           
  F61. SMS (Twilio, Vonage)                      
  F62. Push Notifications (FCM, APNs)            
  F63. In-App Notifications                      
  F64. Notification Templates                    
  F65. Notification Preferences                  
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
  CIFRA CLI (командная строка)                   
├─────────────────────────────────────────────────┤
  F66. cifra init (создание проекта)             
  F67. cifra generate (генерация кода)           
  F68. cifra run (запуск приложения)             
  F69. cifra migrate (миграции БД)               
  F70. cifra export (экспорт данных)             
  F71. cifra import (импорт данных)              
  F72. cifra test (запуск тестов)                
  F73. cifra deploy (развёртывание)              
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
  CIFRA STUDIO (визуальный редактор)             
├─────────────────────────────────────────────────┤
  F74. Visual Entity Designer                    
  F75. Process Designer (BPMN)                   
  F76. UI Builder (drag-and-drop)                
  F77. Theme Designer                            
  F78. Data Viewer                               
  F79. Real-time Preview                         
└─────────────────────────────────────────────────┘

2. Функциональные возможности по уровням:

УРОВЕНЬ 1 (Платформа):
- ✅ F1-F10: Entity, Fields, Modules, Plugins, Code Gen
- ✅ F11-F24: Auth, Security
- ✅ F25-F31: Processes, Workflows
- ✅ F32-F39: UI, Themes
- ✅ F40-F47: Data Management
- ✅ F48-F53: Integrations
- ✅ F66-F73: CLI

УРОВЕНЬ 2 (Конфигурации):
- ✅ Используют функции Уровня 1
- ✅ Определяют Entity, Processes, UI
- ✅ Не добавляют новых функций, только комбинируют

УРОВЕНЬ 3 (Настройки):
- ✅ Включают/отключают функции
- ✅ Настраивают параметры функций
- ✅ Кастомизируют поведение

УРОВЕНЬ 4 (Данные):
- ✅ Результат работы функций
- ✅ Не имеют своих функций

3. Non-Functional Requirements:

ПРОИЗВОДИТЕЛЬНОСТЬ:
  - response_time: < 200ms (95 percentile)
  - throughput: 10,000 req/sec
  - concurrent_users: 10,000
  - database_size: до 100 GB

МАСШТАБИРУЕМОСТЬ:
  - horizontal_scaling: да (stateless)
  - multi_tenancy: да
  - max_tenants: 10,000+

НАДЁЖНОСТЬ:
  - availability: 99.9% (SLA)
  - mtbf: > 720 hours
  - mttr: < 1 hour
  - backup: ежедневно

БЕЗОПАСНОСТЬ:
  - owasp_top10: защита от всех
  - encryption: AES-256
  - audit: все действия логируются
  - compliance: GDPR, SOC 2

USABILITY:
  - learning_curve: < 2 часов
  - error_rate: < 1%
  - satisfaction: > 4.5/5

MAINTAINABILITY:
  - test_coverage: > 80%
  - documentation: 100%
  - code_quality: A (SonarQube)

Срез 4: ИНФОРМАЦИОННЫЙ (Information View)

Назначение

Описывает КАКИЕ ДАННЫЕ хранит система и КАК ОНИ СТРУКТУРИРОВАНЫ.

Ключевые вопросы

Содержание

1. Мета-модель данных (4 уровня):

┌─────────────────────────────────────────────────┐
  УРОВЕНЬ 1: ПЛАТФОРМА                           
  Мета-данные о типах данных                     
├─────────────────────────────────────────────────┤
  - FieldType (string, int, email, etc.)         
  - EntityMeta (метаданные о Entity)             
  - ModuleMeta (метаданные о Module)             
  - ValidationRule                               
└─────────────────────────────────────────────────┘
           определяет структуру
┌─────────────────────────────────────────────────┐
  УРОВЕНЬ 2: КОНФИГУРАЦИИ                        
  Схемы Entity (DDL)                             
├─────────────────────────────────────────────────┤
  - Entity: Contact, Deal, Order, etc.           
  - Fields: name, email, amount, etc.            
  - Relations: Deal  Contact                    
  - Constraints: unique, required, etc.          
└─────────────────────────────────────────────────┘
           создаёт таблицы
┌─────────────────────────────────────────────────┐
  УРОВЕНЬ 3: НАСТРОЙКИ                           
  Кастомизация схемы                             
├─────────────────────────────────────────────────┤
  - Custom Fields (backup_email)                 
  - Enabled Modules                              
  - Validation Rules                             
└─────────────────────────────────────────────────┘
           хранит данные
┌─────────────────────────────────────────────────┐
  УРОВЕНЬ 4: ДАННЫЕ                              
  Записи (DML)                                   
├─────────────────────────────────────────────────┤
  - Contacts: Иван Петров, ivan@example.com      
  - Deals: Сделка #1, 500,000 руб                
  - Orders: Заказ #12345                         
└─────────────────────────────────────────────────┘

2. Core Entity (платформенные):

# Уровень 1: Платформа
User:
  fields:
    id: {type: uuid, primary_key: true}
    email: {type: email, unique: true}
    password_hash: {type: string}
    created_at: {type: datetime}

Role:
  fields:
    id: {type: uuid}
    name: {type: string, unique: true}
    permissions: {type: json}

UserRole:
  fields:
    user_id: {type: reference, entity: User}
    role_id: {type: reference, entity: Role}

AuditLog:
  fields:
    id: {type: uuid}
    user_id: {type: reference, entity: User}
    entity: {type: string}
    entity_id: {type: uuid}
    action: {type: enum, options: [create, update, delete]}
    changes: {type: json}
    timestamp: {type: datetime}

Module:
  fields:
    id: {type: string}
    name: {type: string}
    version: {type: string}
    enabled: {type: boolean}

Configuration:
  fields:
    key: {type: string, unique: true}
    value: {type: json}
    scope: {type: enum, options: [global, tenant, user]}

3. Business Entity (примеры из модулей):

# CRM Module
Contact:
  fields:
    id: {type: uuid}
    first_name: {type: string}
    last_name: {type: string}
    email: {type: email}
    phone: {type: phone}
    company_id: {type: reference, entity: Company}
  relations:
    - deals: {type: one_to_many, entity: Deal}
    - tasks: {type: one_to_many, entity: Task}

Company:
  fields:
    id: {type: uuid}
    name: {type: string}
    inn: {type: string, length: 10}
    website: {type: url}
  relations:
    - contacts: {type: one_to_many, entity: Contact}
    - deals: {type: one_to_many, entity: Deal}

Deal:
  fields:
    id: {type: uuid}
    title: {type: string}
    amount: {type: decimal}
    stage: {type: enum}
    contact_id: {type: reference, entity: Contact}
    expected_close_date: {type: date}

# E-commerce Module
Product:
  fields:
    id: {type: uuid}
    name: {type: string}
    sku: {type: string, unique: true}
    price: {type: decimal}
    stock: {type: integer}
    category_id: {type: reference, entity: Category}

Order:
  fields:
    id: {type: uuid}
    customer_id: {type: reference, entity: User}
    total: {type: decimal}
    status: {type: enum}
    created_at: {type: datetime}

OrderItem:
  fields:
    order_id: {type: reference, entity: Order}
    product_id: {type: reference, entity: Product}
    quantity: {type: integer}
    price: {type: decimal}

4. Универсальные Entity:

# Content Management
Node:  # Drupal-inspired content entity
  fields:
    id: {type: uuid}
    type: {type: string}  # article, page, product
    title: {type: string}
    body: {type: text}
    author_id: {type: reference, entity: User}
    status: {type: enum, options: [draft, published, archived]}
    created_at: {type: datetime}
    updated_at: {type: datetime}

# Taxonomies
Vocabulary:
  fields:
    id: {type: uuid}
    name: {type: string}
    machine_name: {type: string, unique: true}

Term:
  fields:
    id: {type: uuid}
    vocabulary_id: {type: reference, entity: Vocabulary}
    name: {type: string}
    parent_id: {type: reference, entity: Term, nullable: true}
    weight: {type: integer}

# Media
Media:
  fields:
    id: {type: uuid}
    filename: {type: string}
    mime_type: {type: string}
    size: {type: integer}
    path: {type: string}
    uploaded_by: {type: reference, entity: User}
    created_at: {type: datetime}

# Views (Saved Queries)
View:
  fields:
    id: {type: uuid}
    name: {type: string}
    base_entity: {type: string}
    fields: {type: json}  # [title, amount, contact.name]
    filters: {type: json}
    sorts: {type: json}
    display: {type: enum, options: [table, grid, calendar]}

# Comments
Comment:
  fields:
    id: {type: uuid}
    entity_type: {type: string}
    entity_id: {type: uuid}
    author_id: {type: reference, entity: User}
    body: {type: text}
    created_at: {type: datetime}

# Revisions
Revision:
  fields:
    id: {type: uuid}
    entity_type: {type: string}
    entity_id: {type: uuid}
    data: {type: json}  # Snapshot данных
    user_id: {type: reference, entity: User}
    created_at: {type: datetime}

5. Типы полей (20+):

# Базовые типы
StringField       # varchar(255)
TextField         # text (unlimited)
IntegerField      # integer
DecimalField      # decimal(10,2)
BooleanField      # boolean
DateField         # date
TimeField         # time
DateTimeField     # timestamp

# Специализированные
EmailField        # string + email validation
PhoneField        # string + phone validation
URLField          # string + URL validation
UUIDField         # uuid
JSONField         # json/jsonb
EnumField         # enum

# Связи
ReferenceField    # foreign key (many-to-one)
CollectionField   # one-to-many
ManyToManyField   # many-to-many

# Файлы
FileField         # путь к файлу
ImageField        # FileField + image validation
MediaField        # reference to Media entity

# Специальные
ComputedField     # вычисляемое поле (не в БД)
EncryptedField    # encrypted string

6. Абстракция данных (6 уровней):

DB TABLE (PostgreSQL)
    ↓ SQLAlchemy
ORM MODEL (Python class)
    ↓ Pydantic
DTO (Data Transfer Object)
    ↓ Business Logic
VIEW MODEL (Presentation)
    ↓ FastAPI
API RESPONSE (JSON)
    ↓ Frontend
UI COMPONENT (React/Vue)

Срез 5: ПРИЛОЖЕНИЕ (Application View)

Назначение

Описывает КАК УСТРОЕНО приложение изнутри - компоненты, модули, слои.

Ключевые вопросы

Содержание

1. Архитектурные слои:

┌─────────────────────────────────────────────────┐
│  PRESENTATION LAYER (UI)                        │
│  - React/Vue Components                         │
│  - Admin UI (auto-generated)                    │
│  - Theme System                                 │
└─────────────────────────────────────────────────┘
          ↓ HTTP/REST/GraphQL
┌─────────────────────────────────────────────────┐
│  API LAYER (FastAPI)                            │
│  - REST Endpoints                               │
│  - GraphQL Resolvers                            │
│  - Webhooks                                     │
│  - Authentication Middleware                    │
└─────────────────────────────────────────────────┘
          ↓ Python objects
┌─────────────────────────────────────────────────┐
│  BUSINESS LOGIC LAYER                           │
│  - Entity Managers                              │
│  - Validation Engine                            │
│  - Workflow Engine                              │
│  - Rules Engine                                 │
└─────────────────────────────────────────────────┘
          ↓ ORM
┌─────────────────────────────────────────────────┐
│  DATA ACCESS LAYER (Repository Pattern)         │
│  - SQLAlchemy Models                            │
│  - Query Builders                               │
│  - Migrations (Alembic)                         │
└─────────────────────────────────────────────────┘
          ↓ SQL
┌─────────────────────────────────────────────────┐
│  DATABASE (PostgreSQL)                          │
└─────────────────────────────────────────────────┘

2. Компоненты платформы:

cifra/
├── core/                    # Ядро
   ├── entity.py           # EntityMeta, BaseEntity
   ├── fields.py           # Поля (StringField, etc.)
   ├── module.py           # ModuleMeta, BaseModule
   ├── component.py        # ComponentMeta
   ├── config.py           # Configuration loader
   └── registry.py         # Регистры (Entity, Module)

├── api/                     # API Layer
   ├── rest.py             # REST endpoints generator
   ├── graphql.py          # GraphQL schema generator
   ├── websocket.py        # WebSocket support
   └── middleware.py       # Middleware (auth, rate limit)

├── engines/                 # Движки
   ├── validation.py       # Validation Engine
   ├── process.py          # BPMN Process Engine
   ├── workflow.py         # Workflow Engine
   ├── rules.py            # Business Rules Engine
   ├── theme.py            # Theme Engine
   └── search.py           # Search Engine (Elasticsearch)

├── auth/                    # Аутентификация
   ├── providers.py        # OAuth providers
   ├── jwt.py              # JWT tokens
   ├── session.py          # Session management
   └── 2fa.py              # Two-Factor Auth

├── security/                # Безопасность
   ├── rbac.py             # Role-Based Access Control
   ├── abac.py             # Attribute-Based Access Control
   ├── rls.py              # Row-Level Security
   ├── encryption.py       # Data encryption
   └── audit.py            # Audit logging

├── modules/                 # Встроенные модули
   ├── auth/               # Auth Module
   ├── contacts/           # Contacts Module
   ├── deals/              # Deals Module
   ├── products/           # Products Module
   ├── orders/             # Orders Module
   ├── tasks/              # Tasks Module
   ├── media/              # Media Library
   ├── taxonomies/         # Taxonomies
   ├── views/              # Views (SQL builder)
   └── comments/           # Comments

├── ui/                      # UI Components
   ├── admin/              # Admin Panel
   ├── themes/             # Themes
   ├── components/         # Reusable components
   └── builder.py          # UI Builder

├── cli/                     # CIFRA CLI
   ├── init.py             # cifra init
   ├── generate.py         # cifra generate
   ├── run.py              # cifra run
   ├── migrate.py          # cifra migrate
   └── deploy.py           # cifra deploy

├── studio/                  # CIFRA Studio (GUI)
   ├── designer/           # Visual Designer
   ├── preview/            # Real-time Preview
   └── api.py              # Studio API

└── integrations/            # Интеграции
    ├── stripe/
    ├── sendgrid/
    ├── twilio/
    ├── kafka/
    └── s3/

3. Паттерны проектирования:

CREATIONAL:
  - Factory: EntityFactory, ModuleFactory
  - Builder: QueryBuilder, UIBuilder
  - Singleton: Registry, Config

STRUCTURAL:
  - Adapter: OAuthAdapter, PaymentAdapter
  - Decorator: @entity, @permission, @cached
  - Facade: EntityAPI, ModuleAPI
  - Proxy: LazyLoader (для связей)

BEHAVIORAL:
  - Observer: Event System
  - Strategy: ValidationStrategy, ThemeStrategy
  - Chain of Responsibility: Middleware chain
  - Template Method: BaseEntity, BaseModule
  - State: Workflow states

ARCHITECTURAL:
  - Repository: EntityRepository
  - Unit of Work: Transaction management
  - CQRS: Command/Query separation
  - Event Sourcing: Audit log
  - Saga: Distributed transactions

4. Модульность:

MODULE = {
  entities: [Entity classes],
  api: [FastAPI routers],
  ui: [UI components],
  processes: [BPMN processes],
  migrations: [Alembic versions]
}

# Модуль изолирован
# Модуль переиспользуемый
# Модуль клонируемый (один модуль → разные экземпляры)

Пример модуля:

# cifra/modules/contacts/__init__.py
class ContactsModule(BaseModule):
    name = "contacts"
    version = "1.0.0"

    entities = [Contact, Company]

    def get_api_router(self):
        from .api import router
        return router

    def get_ui_components(self):
        from .ui import ContactList, ContactForm
        return [ContactList, ContactForm]

5. Plugin System:

# Плагин расширяет существующую Entity
@plugin('Contact', priority=10)
class SocialMediaPlugin:
    """Добавляет поля соц.сетей к Contact"""

    fields = {
        'facebook': StringField(),
        'twitter': StringField(),
        'linkedin': StringField()
    }

    def preprocess_save(self, instance):
        # Валидация перед сохранением
        ...

# Регистрация
PluginRegistry.register(SocialMediaPlugin)

Срез 6: ТЕХНОЛОГИЧЕСКИЙ (Technology View)

Назначение

Описывает НА ЧЁМ РАБОТАЕТ система - технологический стек, библиотеки, инструменты.

Ключевые вопросы

Содержание

1. Технологический стек:

BACKEND:
  language: Python 3.10+
  framework: FastAPI 0.100+
  orm: SQLAlchemy 2.0+
  validation: Pydantic 2.0+
  migrations: Alembic 1.11+
  async: asyncio, aiohttp
  templating: Jinja2
  serialization: msgpack, orjson

FRONTEND:
  framework: React 18+ / Vue 3+
  ui_library: Ant Design / Material-UI
  state: Redux Toolkit / Pinia
  forms: React Hook Form / VeeValidate
  charts: Recharts / Chart.js
  build: Vite
  typescript: TypeScript 5+

DATABASE:
  primary: PostgreSQL 15+
  cache: Redis 7+
  search: Elasticsearch 8+ / Meilisearch
  queue: Redis (RQ) / Celery

API:
  rest: FastAPI + OpenAPI 3.1
  graphql: Strawberry GraphQL
  websocket: FastAPI WebSockets
  events: Server-Sent Events (SSE)

AUTH:
  oauth: Authlib
  jwt: PyJWT
  2fa: pyotp
  password: bcrypt, argon2

TESTING:
  unit: pytest
  integration: pytest + TestClient
  e2e: Playwright
  coverage: pytest-cov
  mocking: pytest-mock

DEVOPS:
  container: Docker 24+
  orchestration: Docker Compose / Kubernetes
  ci_cd: GitHub Actions / GitLab CI
  monitoring: Prometheus + Grafana
  logging: Loguru / structlog
  tracing: OpenTelemetry

DOCUMENTATION:
  api_docs: OpenAPI (Swagger UI, ReDoc)
  code_docs: Sphinx
  user_docs: MkDocs
  diagrams: PlantUML, Mermaid

КАЧЕСТВО КОДА:
  linter: ruff, pylint
  formatter: black, isort
  type_check: mypy, pyright
  security: bandit, safety
  quality: SonarQube

2. Ключевые библиотеки:

# Core
fastapi==0.100.0
sqlalchemy[asyncio]==2.0.19
pydantic==2.0.3
alembic==1.11.1

# Database
asyncpg==0.28.0
psycopg2-binary==2.9.6
redis==4.6.0

# Auth
authlib==1.2.1
python-jose[cryptography]==3.3.0
passlib[bcrypt]==1.7.4
python-multipart==0.0.6

# Validation
email-validator==2.0.0
phonenumbers==8.13.18

# API
python-multipart==0.0.6
orjson==3.9.2
msgpack==1.0.5

# Process/Workflow
celery[redis]==5.3.1
flower==2.0.0

# Search
elasticsearch==8.9.0
# OR
meilisearch==0.28.0

# Integrations
stripe==5.5.0
sendgrid==6.10.0
twilio==8.6.0
boto3==1.28.17  # AWS S3

# Frontend build
nodeenv==1.8.0

# Dev/Test
pytest==7.4.0
pytest-cov==4.1.0
pytest-asyncio==0.21.1
httpx==0.24.1
faker==19.2.0

# Docs
mkdocs==1.5.0
mkdocs-material==9.1.21

# Code Quality
black==23.7.0
ruff==0.0.280
mypy==1.4.1

3. Архитектурные решения:

Задача Решение Почему
Web Framework FastAPI Async, OpenAPI, Performance
ORM SQLAlchemy 2.0 Async, Зрелость, Мощь
Validation Pydantic Type Safety, Performance
Database PostgreSQL JSONB, Full-text, Reliability
Cache Redis Speed, Pub/Sub, Structures
Search Elasticsearch Full-text, Aggregations, Scale
Queue Celery + Redis Mature, Distributed, Reliable
Auth Authlib OAuth 2.0, OpenID Connect
Frontend React/Vue Ecosystem, Community
Build Vite Speed, Modern
Test Pytest Fixtures, Plugins, Async
Container Docker Standard, Portability
CI/CD GitHub Actions Integrated, Free

4. Альтернативы (рассмотрены и отклонены):

Django:
  плюсы: Зрелость, Admin, ORM
  минусы: Не async, Монолит, Медленнее
  решение: FastAPI лучше для API-first

Flask:
  плюсы: Простота, Гибкость
  минусы: Нет async, Мало из коробки
  решение: FastAPI = Flask + async + validation

GraphQL-first (Hasura):
  плюсы: Auto-generated GraphQL
  минусы: Lock-in, Сложность, Оверкилл
  решение: FastAPI + Strawberry = гибкость

MongoDB:
  плюсы: Flexible schema, JSON
  минусы: Нет ACID, Нет JSONB like PG
  решение: PostgreSQL JSONB = лучшее из двух миров

MySQL:
  плюсы: Популярность
  минусы: Нет JSONB, Меньше фич
  решение: PostgreSQL мощнее

Срез 7: ФИЗИЧЕСКИЙ (Physical/Deployment View)

Назначение

Описывает ГДЕ РАЗВЁРНУТО и КАК РАБОТАЕТ в production.

Ключевые вопросы

Содержание

1. Deployment архитектура:

┌──────────────────────────────────────────────────┐
│  CDN (Cloudflare, AWS CloudFront)                │
│  Static files, Images, CSS, JS                   │
└──────────────────────────────────────────────────┘
                    ↓ HTTPS
┌──────────────────────────────────────────────────┐
│  LOAD BALANCER (nginx, HAProxy, AWS ALB)         │
│  SSL Termination, Rate Limiting                  │
└──────────────────────────────────────────────────┘
                    ↓
      ┌─────────────┴─────────────┐
      ↓                           ↓
┌─────────────┐           ┌─────────────┐
│  APP 1      │           │  APP 2      │
│  FastAPI    │←─ scale ─→│  FastAPI    │
│  (stateless)│           │  (stateless)│
└─────────────┘           └─────────────┘
      ↓                           ↓
┌──────────────────────────────────────────────────┐
│  CACHE (Redis Cluster)                           │
│  Session, Cache, Pub/Sub                         │
└──────────────────────────────────────────────────┘
      ↓
┌──────────────────────────────────────────────────┐
│  DATABASE (PostgreSQL Primary)                   │
│  + Replica (read-only)                           │
└──────────────────────────────────────────────────┘
      ↓
┌──────────────────────────────────────────────────┐
│  STORAGE (S3, Minio)                             │
│  Media files, Backups                            │
└──────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────┐
│  WORKERS (Celery)                                │
│  Background jobs, Email, Reports                 │
└──────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────┐
│  MONITORING (Prometheus + Grafana)               │
└──────────────────────────────────────────────────┘

2. Docker Compose (Development):

version: '3.8'

services:
  app:
    build: .
    ports:
      - "8000:8000"
    environment:
      DATABASE_URL: postgresql://user:pass@db:5432/cifra
      REDIS_URL: redis://redis:6379/0
    depends_on:
      - db
      - redis

  db:
    image: postgres:15
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: cifra

  redis:
    image: redis:7
    volumes:
      - redis_data:/data

  celery:
    build: .
    command: celery -A cifra.worker worker -l info
    depends_on:
      - redis

  elasticsearch:
    image: elasticsearch:8.9.0
    environment:
      - discovery.type=single-node
    volumes:
      - es_data:/usr/share/elasticsearch/data

volumes:
  postgres_data:
  redis_data:
  es_data:

3. Kubernetes (Production):

# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: cifra-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: cifra
  template:
    spec:
      containers:
      - name: app
        image: cifra/app:latest
        ports:
        - containerPort: 8000
        env:
        - name: DATABASE_URL
          valueFrom:
            secretKeyRef:
              name: cifra-secrets
              key: database-url
        resources:
          requests:
            memory: "256Mi"
            cpu: "250m"
          limits:
            memory: "512Mi"
            cpu: "500m"
        livenessProbe:
          httpGet:
            path: /health
            port: 8000
        readinessProbe:
          httpGet:
            path: /ready
            port: 8000

---
# service.yaml
apiVersion: v1
kind: Service
metadata:
  name: cifra-service
spec:
  selector:
    app: cifra
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8000
  type: LoadBalancer

4. Окружения:

DEVELOPMENT:
  domain: localhost:8000
  database: SQLite / PostgreSQL (local)
  cache: Redis (local)
  email: Console backend
  storage: Local filesystem
  debug: true
  ssl: false

STAGING:
  domain: staging.cifra.io
  database: PostgreSQL (small instance)
  cache: Redis (small)
  email: Mailhog / Mailtrap
  storage: S3 (staging bucket)
  debug: true
  ssl: true (Let's Encrypt)

PRODUCTION:
  domain: app.cifra.io
  database: PostgreSQL (HA cluster)
  cache: Redis (cluster mode)
  email: SendGrid
  storage: S3 (production bucket)
  debug: false
  ssl: true (Wildcard cert)
  replicas: 3+
  cdn: Cloudflare

5. Масштабирование:

VERTICAL (больше ресурсов):
  - CPU: 2 → 4 → 8 cores
  - RAM: 4GB → 8GB → 16GB
  - Disk: SSD, NVMe

HORIZONTAL (больше инстансов):
  - App: 1 → 3 → 10+ pods
  - DB: Primary + 2 replicas
  - Redis: Cluster mode (3 masters, 3 replicas)
  - Celery Workers: 3 → 10+

AUTO-SCALING:
  - HPA (Horizontal Pod Autoscaler) на CPU/Memory
  - Scale на основе queue length
  - Scale на основе response time

6. Backup & DR:

BACKUP:
  database:
    - Full backup: ежедневно (3AM)
    - Incremental: каждый час
    - Retention: 30 дней
    - Location: S3 + separate region

  files:
    - Media: синхронизация в S3
    - Configs: Git
    - Logs: CloudWatch / ELK

DISASTER RECOVERY:
  - RTO (Recovery Time Objective): 1 hour
  - RPO (Recovery Point Objective): 1 hour
  - DR region: Separate AWS region
  - Automated failover

Срез 8: БЕЗОПАСНОСТЬ (Security View)

Назначение

Описывает КАК ЗАЩИЩЕНА система.

Ключевые вопросы

Содержание

1. Authentication (Аутентификация):

EMAIL_PASSWORD:
  - Bcrypt / Argon2 хеширование
  - Min 8 символов
  - Password reset через email
  - Account lockout после 5 попыток

OAUTH_2.0:
  providers:
    - Google
    - GitHub
    - Microsoft
    - Facebook
  flow: Authorization Code + PKCE

OPENID_CONNECT:
  - ID Token (JWT)
  - UserInfo endpoint
  - Claims: email, name, picture

TWO_FACTOR:
  - TOTP (Google Authenticator, Authy)
  - Backup codes
  - SMS (optional, Twilio)

SSO:
  - SAML 2.0 (для Enterprise)
  - LDAP / Active Directory integration

2. Authorization (Авторизация):

RBAC (Role-Based Access Control):
  roles:
    - admin: "*" (все права)
    - manager: [read:*, create:*, update:own, delete:own]
    - user: [read:own, update:own]

  permissions:
    format: "action:resource:scope"
    examples:
      - read:contacts:*
      - update:deals:own
      - delete:products:company

ABAC (Attribute-Based Access Control):
  rules:
    - allow: user.role == "sales_rep" AND resource.owner == user.id
    - allow: user.department == resource.department AND action == "read"

RLS (Row-Level Security):
  - PostgreSQL RLS policies
  - Automatic filtering: WHERE tenant_id = current_user_tenant_id
  - Применяется на уровне БД

FIELD_LEVEL_SECURITY:
  Contact:
    email: [read: all, write: admin]
    phone: [read: all, write: admin, manager]
    notes: [read: owner, write: owner]

3. Data Security:

ENCRYPTION:
  at_rest:
    - Database: PostgreSQL pgcrypto
    - Files: S3 Server-Side Encryption
    - Backups: GPG encrypted
    - Algorithm: AES-256

  in_transit:
    - HTTPS (TLS 1.3)
    - Database: SSL/TLS
    - Redis: TLS (optional)

  application:
    - Sensitive fields: EncryptedField
    - Passwords: Bcrypt/Argon2 (never reversible)
    - API keys: Hashed in DB

PII (Personal Identifiable Information):
  - GDPR compliance
  - Right to be forgotten (soft delete)
  - Data export (JSON, CSV)
  - Audit log всех доступов к PII

SECRETS_MANAGEMENT:
  - Environment variables
  - Vault (HashiCorp Vault, AWS Secrets Manager)
  - NEVER в коде
  - NEVER в git

4. Protection (Защита от атак):

OWASP_TOP_10:
  SQL_Injection:
    - SQLAlchemy ORM (parameterized queries)
    - НИКОГДА не строить SQL строками

  XSS (Cross-Site Scripting):
    - Jinja2 auto-escaping
    - Content-Security-Policy header
    - HTTPOnly cookies

  CSRF (Cross-Site Request Forgery):
    - CSRF tokens
    - SameSite cookies
    - Origin header check

  Command_Injection:
    - Никогда не использовать shell=True
    - Whitelist input

  Path_Traversal:
    - Validация file paths
    - Chroot для uploads

  Insecure_Deserialization:
    - JSON только (не pickle)
    - Schema validation (Pydantic)

RATE_LIMITING:
  - slowapi (429 Too Many Requests)
  - По IP: 100 req/min
  - По user: 1000 req/min
  - По endpoint: custom limits

DDOS_PROTECTION:
  - Cloudflare
  - Rate limiting
  - Connection limits
  - Request size limits

INPUT_VALIDATION:
  - Pydantic schemas
  - Max length checks
  - Type validation
  - Regex validation
  - Whitelist > Blacklist

5. Audit & Compliance:

AUDIT_LOG:
  - Все изменения данных (кто, что, когда)
  - API calls (endpoint, user, IP, timestamp)
  - Authentication events (login, logout, failed)
  - Permission changes
  - Retention: 1 год

COMPLIANCE:
  GDPR:
    - Consent management
    - Right to access
    - Right to be forgotten
    - Data portability
    - Privacy by design

  SOC_2:
    - Security controls
    - Availability monitoring
    - Processing integrity
    - Confidentiality
    - Privacy

  HIPAA (optional):
    - PHI encryption
    - Access controls
    - Audit logs
    - Business Associate Agreements

Срез 9: ИНТЕГРАЦИИ (Integration View)

Назначение

Описывает С ЧЕМ СВЯЗАНО и как взаимодействует с внешними системами.

Ключевые вопросы

Содержание

1. Типы интеграций:

INBOUND (входящие):
  - REST API (FastAPI endpoints)
  - GraphQL API
  - Webhooks (принимаем от других систем)
  - Event Bus (Kafka, RabbitMQ)
  - File Import (CSV, JSON, XML)

OUTBOUND (исходящие):
  - REST API Client (к другим API)
  - GraphQL Client
  - Webhooks (отправляем в другие системы)
  - Event Bus (publish events)
  - File Export (CSV, JSON, XML)

BIDIRECTIONAL:
  - OAuth providers (Google, GitHub)
  - Payment gateways (Stripe, PayPal)
  - Email services (SendGrid, Mailgun)
  - SMS services (Twilio, Vonage)
  - Cloud storage (AWS S3, Google Cloud Storage)

2. Коннекторы (встроенные):

PAYMENTS:
  - Stripe: payments, subscriptions, invoices
  - PayPal: payments, payouts
  - Сбербанк: acquiring (для РФ)
  - ЮKassa: payments (для РФ)

EMAIL:
  - SendGrid: transactional email
  - Mailgun: email API
  - AWS SES: cheap, reliable
  - SMTP: fallback

SMS:
  - Twilio: SMS, WhatsApp
  - Vonage (Nexmo): SMS
  - SMS.ru: для РФ

CLOUD_STORAGE:
  - AWS S3: files, backups
  - Google Cloud Storage
  - Azure Blob Storage
  - Minio: self-hosted S3

MESSAGING:
  - Slack: notifications
  - Telegram Bot API
  - Discord webhooks

ANALYTICS:
  - Google Analytics
  - Mixpanel
  - Amplitude

CRM:
  - Salesforce API
  - HubSpot API

ACCOUNTING:
  - QuickBooks API
  - Xero API
  - 1C (для РФ)

MAPS:
  - Google Maps API
  - Яндекс.Карты API

DELIVERY:
  - DHL API
  - FedEx API
  - СДЭК API (для РФ)
  - Почта России API

3. Event-Driven Architecture:

EVENTS:
  entity.created:
    - entity: Contact
    - payload: {id, email, name}

  entity.updated:
    - entity: Deal
    - payload: {id, changes: {stage: won}}

  entity.deleted:
    - entity: Product
    - payload: {id}

  process.started:
    - process: order_fulfillment
    - payload: {order_id}

  process.completed:
    - process: order_fulfillment
    - payload: {order_id, result: success}

EVENT_BUS:
  - Internal: Python asyncio queues
  - External: Kafka, RabbitMQ, Redis Pub/Sub

SUBSCRIBERS:
  - Modules подписываются на события
  - Webhooks отправляются при событиях
  - Integrations триггерятся событиями

4. API Design:

REST_API:
  version: /api/v1
  format: JSON
  authentication: Bearer JWT
  pagination: cursor-based
  filtering: ?field=value
  sorting: ?sort=-created_at
  rate_limiting: 1000 req/min

  endpoints:
    GET    /api/v1/contacts          # List
    POST   /api/v1/contacts          # Create
    GET    /api/v1/contacts/{id}     # Get
    PUT    /api/v1/contacts/{id}     # Update
    DELETE /api/v1/contacts/{id}     # Delete

GRAPHQL_API:
  endpoint: /graphql
  introspection: enabled (dev), disabled (prod)
  playground: enabled (dev), disabled (prod)

  queries:
    contacts(filter: ContactFilter, limit: Int): [Contact]
    contact(id: UUID!): Contact

  mutations:
    createContact(input: ContactInput!): Contact
    updateContact(id: UUID!, input: ContactInput!): Contact
    deleteContact(id: UUID!): Boolean

  subscriptions:
    contactCreated: Contact
    contactUpdated(id: UUID): Contact

WEBHOOKS:
  format: JSON
  method: POST
  authentication: HMAC signature
  retry: 3 attempts (exponential backoff)
  timeout: 30 seconds

  payload:
    event: "contact.created"
    timestamp: "2025-11-10T15:30:00Z"
    data: {...}
    signature: "sha256=..."

Срез 10: UI/UX (User Experience View)

Назначение

Описывает КАК ВЫГЛЯДИТ и как пользователь взаимодействует с системой.

Ключевые вопросы

Содержание

1. Типы интерфейсов:

ADMIN_PANEL:
  - CRUD интерфейс для всех Entity
  - Таблицы с фильтрами, сортировкой
  - Формы создания/редактирования
  - Bulk operations
  - Export/Import

CRM_UI:
  - Dashboard с метриками
  - Kanban доска для deals
  - Contact list с поиском
  - Timeline активностей
  - Calendar для задач

CMS_UI:
  - WYSIWYG редактор (TinyMCE, CKEditor)
  - Media manager
  - Page builder (drag-and-drop)
  - Preview режим

E_COMMERCE_UI:
  - Catalog с фильтрами
  - Shopping cart
  - Checkout wizard
  - Order tracking

MOBILE_UI:
  - Responsive design
  - Touch-friendly
  - Swipe gestures
  - Bottom navigation

2. Темы:

BASE_THEME:
  - Базовые компоненты
  - Design tokens (цвета, шрифты, отступы)
  - CSS variables
  - No branding

ADMIN_THEMES:
  - admin_classic: Bootstrap-style
  - admin_material: Material Design
  - admin_sleek: Modern, минимализм
  - admin_dark: Dark mode

WEB_THEMES:
  - minimal_light: Чистый, светлый
  - corporate_blue: Корпоративный
  - modern_gradient: Градиенты
  - creative_bold: Яркий, креативный

MOBILE_THEMES:
  - mobile_light: iOS-style
  - mobile_dark: Dark mode
  - mobile_cupertino: iOS native look
  - mobile_material: Android native look

3. Design System:

TYPOGRAPHY:
  font_family:
    - primary: Inter, -apple-system, system-ui
    - monospace: 'JetBrains Mono', monospace

  font_sizes:
    xs: 12px
    sm: 14px
    base: 16px
    lg: 18px
    xl: 20px
    2xl: 24px
    3xl: 30px

  line_heights:
    tight: 1.25
    normal: 1.5
    relaxed: 1.75

COLORS:
  primary:
    50: '#f0f9ff'
    500: '#3b82f6'
    900: '#1e3a8a'

  semantic:
    success: '#10b981'
    warning: '#f59e0b'
    error: '#ef4444'
    info: '#3b82f6'

SPACING:
  unit: 4px
  xs: 4px
  sm: 8px
  md: 16px
  lg: 24px
  xl: 32px
  2xl: 48px

RADIUS:
  sm: 4px
  md: 6px
  lg: 8px
  xl: 12px
  full: 9999px

SHADOWS:
  sm: '0 1px 2px rgba(0,0,0,0.05)'
  md: '0 4px 6px rgba(0,0,0,0.1)'
  lg: '0 10px 15px rgba(0,0,0,0.1)'

4. Components:

LAYOUT:
  - Container
  - Grid
  - Stack
  - Divider

NAVIGATION:
  - Navbar
  - Sidebar
  - Breadcrumbs
  - Tabs
  - Pagination

FORMS:
  - Input
  - Textarea
  - Select
  - Checkbox
  - Radio
  - Switch
  - DatePicker
  - FilePicker
  - WYSIWYG

DATA_DISPLAY:
  - Table
  - Card
  - List
  - Tag
  - Badge
  - Avatar
  - Tooltip

FEEDBACK:
  - Alert
  - Toast/Notification
  - Modal
  - Drawer
  - Progress
  - Skeleton
  - Spinner

CHARTS:
  - LineChart
  - BarChart
  - PieChart
  - AreaChart
  - Gauge

CIFRA_SPECIFIC:
  - EntityTable (auto-generated)
  - EntityForm (auto-generated)
  - EntityDetail (auto-generated)
  - Dashboard (configurable)
  - KanbanBoard
  - Calendar
  - Timeline

5. User Flows:

AUTHENTICATION:
  1. Landing page
  2. Login form (или OAuth buttons)
  3. Dashboard

CRUD_ENTITY:
  1. Entity list (table)
  2. Click "Create" → Form
  3. Fill form → Submit
  4. Back to list (toast notification)

WORKFLOW:
  1. Deal в stage "Lead"
  2. Click "Move to Qualified"
  3. Confirmation modal
  4. Deal перемещена → Kanban обновлён

REPORT:
  1. Analytics page
  2. Select date range, filters
  3. Click "Generate Report"
  4. Charts обновляются
  5. "Export to PDF" button

6. Responsive Design:

BREAKPOINTS:
  xs: 0-575px      # Mobile portrait
  sm: 576-767px    # Mobile landscape
  md: 768-991px    # Tablet
  lg: 992-1199px   # Desktop
  xl: 1200px+      # Large desktop

MOBILE:
  - Hamburger menu
  - Bottom navigation
  - Full-width forms
  - Swipe gestures
  - Touch targets 44x44px

TABLET:
  - Sidebar collapsible
  - 2-column layouts
  - Larger touch targets

DESKTOP:
  - Fixed sidebar
  - 3-column layouts
  - Hover states
  - Keyboard shortcuts

Матрица связей между срезами

┌──────────┬──────┬────────┬──────────┬───────────┬──────────┐
│  Срез    │ Конц │ Бизнес │ Функцион │ Информац  │ Приложен │
├──────────┼──────┼────────┼──────────┼───────────┼──────────┤
│ Концепт  │  ✓   │   ✓    │    ✓     │           │          │
│ Бизнес   │  ✓   │   ✓    │    ✓     │    ✓      │          │
│ Функцион │  ✓   │   ✓    │    ✓     │    ✓      │    ✓     │
│ Информац │      │   ✓    │    ✓     │    ✓      │    ✓     │
│ Приложен │      │        │    ✓     │    ✓      │    ✓     │
│ Технолог │      │        │          │    ✓      │    ✓     │
│ Физическ │      │        │          │           │    ✓     │
│ Безопасн │  ✓   │   ✓    │    ✓     │    ✓      │    ✓     │
│ Интеграц │      │   ✓    │    ✓     │    ✓      │    ✓     │
│ UI/UX    │  ✓   │   ✓    │    ✓     │    ✓      │          │
└──────────┴──────┴────────┴──────────┴───────────┴──────────┘

✓ = Срезы взаимодействуют напрямую

Как использовать срезы

При проектировании новой функции:

  1. Концептуальный: Зачем нужна функция? Какую проблему решает?
  2. Бизнес: Кто будет использовать? Какой use case?
  3. Функциональный: Какие возможности добавляются?
  4. Информационный: Какие данные нужны? Какие Entity?
  5. Приложение: Какие компоненты? Где код?
  6. Технологический: Какие библиотеки? Какой стек?
  7. Физический: Где развёрнуто? Как масштабируется?
  8. Безопасность: Кто имеет доступ? Как защищено?
  9. Интеграции: Связь с внешними системами?
  10. UI/UX: Как выглядит? Как пользователь взаимодействует?

При анализе существующей архитектуры:


Следующие шаги

  1. DONE: Определены 10 срезов
  2. ⏭️ TODO: Проанализировать существующие документы по срезам
  3. ⏭️ TODO: Выявить противоречия и дублирования
  4. ⏭️ TODO: Создать единую карту архитектуры
  5. ⏭️ TODO: Дополнить пробелы

Версия: 1.0
Дата: 2025-11-10
Стандарты: ISO/IEC/IEEE 42010, ArchiMate 3.1, 4+1 View Model