Дата создания: 2025-11-10
Версия: 1.0
Статус: Системная архитектура
Архитектура CIFRA Platform описывается через 10 архитектурных срезов (viewpoints) - различных перспектив рассмотрения системы.
Каждый срез отвечает на свой вопрос и описывает систему со своей точки зрения.
Основа: ISO/IEC/IEEE 42010 (Architecture Description Standard) + ArchiMate 3.1 + 4+1 View Model
┌─────────────────────────────────────────────────────────────┐
│ 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. Миссия 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 + переиспользование | Пишут с нуля каждый раз |
Описывает КОГО обслуживает система и КАКИЕ БИЗНЕС-ПРОЦЕССЫ поддерживает.
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
Описывает ЧТО ДЕЛАЕТ система, какие ФУНКЦИИ предоставляет.
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)
Описывает КАКИЕ ДАННЫЕ хранит система и КАК ОНИ СТРУКТУРИРОВАНЫ.
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)
Описывает КАК УСТРОЕНО приложение изнутри - компоненты, модули, слои.
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)
Описывает НА ЧЁМ РАБОТАЕТ система - технологический стек, библиотеки, инструменты.
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 мощнее
Описывает ГДЕ РАЗВЁРНУТО и КАК РАБОТАЕТ в 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
Описывает КАК ЗАЩИЩЕНА система.
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
Описывает С ЧЕМ СВЯЗАНО и как взаимодействует с внешними системами.
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=..."
Описывает КАК ВЫГЛЯДИТ и как пользователь взаимодействует с системой.
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.0
Дата: 2025-11-10
Стандарты: ISO/IEC/IEEE 42010, ArchiMate 3.1, 4+1 View Model