Объекты
Что это
Объект — элемент архитектурной диаграммы на доске системы. Каждый объект имеет тип, положение на доске, размеры и набор свойств.
Типы объектов
| Тип | Описание |
|---|---|
| Сервис | API-сервис: REST, gRPC, GraphQL, SOAP, WebSocket и др. |
| База данных | Хранилище данных: PostgreSQL, MongoDB, Redis и др. |
| Очередь сообщений | Брокер сообщений: Kafka, RabbitMQ, NATS и др. |
| Пользователь | Внешний пользователь или актор в архитектуре |
| Группа | Сворачиваемый контейнер для группировки объектов |
| Рамка | Визуальная граница для выделения области на диаграмме |
Атрибуты объекта
Набор атрибутов зависит от типа объекта.
Сервис, база данных, очередь сообщений
| Вкладка | Содержание |
|---|---|
| Свойства | Название (до 50 символов), тип объекта |
| Детали | Описание, адреса, теги, технологии |
| Связи | Список связей с другими объектами |
| API | Контракты — описание API объекта. Можно создать вручную или импортировать из спецификации |
| Обсуждения | Обсуждения, привязанные к объекту |
Пользователь
| Вкладка | Содержание |
|---|---|
| Свойства | Название (до 50 символов), тип объекта |
| Детали | Описание, теги |
| Связи | Список связей с другими объектами |
Группа, рамка
| Вкладка | Содержание |
|---|---|
| Свойства | Название (до 50 символов), тип объекта |
| Детали | Описание, технологии, теги |
| Связи | Список связей с другими объектами |
Адреса
Адрес указывает, где развёрнут объект (доступен для сервисов, баз данных и очередей).
| Свойство | Описание |
|---|---|
| Название | Имя размещения (например, «Основной сервер») |
| IP | IPv4 или IPv6-адрес |
| Порт | Номер порта |
Контракты и импорт
Контракт описывает API объекта — набор операций с их параметрами. Контракты можно создавать вручную или импортировать из спецификаций. Доступные форматы импорта зависят от типа объекта:
| Тип объекта | Формат | Расширения | Протоколы |
|---|---|---|---|
| Сервис | OpenAPI | .yaml, .yml, .json | REST |
| Сервис | Protobuf | .proto | gRPC |
| Сервис | GraphQL | .graphql, .gql | GraphQL |
| Сервис | WSDL | .wsdl, .xml | SOAP |
| Очередь сообщений | AsyncAPI | .yaml, .yml, .json | Kafka, AMQP, MQTT |
| База данных | SQL DDL | .sql, .ddl | PostgreSQL, MySQL, MariaDB, MS SQL, Oracle DB, ClickHouse |
| База данных | Prisma | .prisma | PostgreSQL, MySQL, MariaDB, MongoDB |
| База данных | JSON Schema | .json, .schema.json | MongoDB, DynamoDB, Elasticsearch |
| База данных | Avro | .avsc, .avro | Kafka, Cassandra, PostgreSQL |
| База данных | DBML | .dbml | PostgreSQL, MySQL, MariaDB, MS SQL |
| База данных | Redis Schema | .yaml, .yml, .json | Redis |
| База данных | GraphQL | .graphql, .gql | Neo4j |
Подробнее см. Контракты и Импорт и экспорт.
Поля протоколов
Каждый протокол определяет собственный набор полей для описания операций в контрактах и действиях связей.
| Протокол | Поле 1 | Поле 2 | Тело |
|---|---|---|---|
| REST | Метод (GET, POST, PUT, DELETE, PATCH) | Путь (/api/resource) | JSON, XML |
| gRPC | Сервис | Метод | JSON |
| GraphQL | Тип (Query, Mutation, Subscription) | Операция | JSON |
| Kafka | Топик | Партиция | JSON |
| PostgreSQL | Тип запроса (SELECT, INSERT, UPDATE, DELETE) | Таблица | SQL |
Группа и рамка
Группа — сворачиваемый контейнер. Объекты внутри группы можно скрыть, свернув её. Используется для логической организации связанных объектов (например, «Платёжный модуль», «Кластер авторизации»).
Рамка — визуальный контейнер большего масштаба. В отличие от группы, рамка не сворачивается. Используется для высокоуровневого разделения (например, «Фронтенд», «Бэкенд», «Инфраструктура»).
Группы и рамки поддерживают вложенность — внутри группы или рамки можно размещать другие группы, рамки и объекты.
При перетаскивании группы или рамки все вложенные объекты перемещаются вместе с контейнером, сохраняя своё относительное расположение.
Действия
Создание объекта
Участник команды с ролью редактора или выше может добавить объект на доску системы. При создании указывается тип, название и положение на доске.
Редактирование объекта
Участник команды с ролью редактора или выше может изменить свойства объекта: название, описание, а также управлять контрактами, адресами, тегами и технологиями.
Перемещение и изменение размера
Объекты можно перетаскивать по доске и изменять их размер. Поддерживается массовое перемещение нескольких выделенных объектов.
Группировка
Объект можно поместить внутрь группы или рамки, перетащив его в контейнер. Для извлечения объекта из группы достаточно перетащить его за пределы контейнера.
Удаление объекта
Участник команды с ролью редактора или выше может удалить объект. Поддерживается массовое удаление нескольких выделенных объектов.
Внимание
При удалении объекта удаляются все его связи, контракты, теги и технологии. При удалении группы или рамки удаляются также все вложенные объекты.
Права доступа
| Действие | Наблюдатель | Редактор | Администратор | Владелец команды | Владелец организации |
|---|---|---|---|---|---|
| Просмотр объектов | ✓ | ✓ | ✓ | ✓ | ✓ |
| Создание объекта | ✓ | ✓ | ✓ | ✓ | |
| Редактирование свойств | ✓ | ✓ | ✓ | ✓ | |
| Перемещение и изменение размера | ✓ | ✓ | ✓ | ✓ | |
| Удаление объекта | ✓ | ✓ | ✓ | ✓ | |
| Управление контрактами | ✓ | ✓ | ✓ | ✓ | |
| Управление тегами и технологиями | ✓ | ✓ | ✓ | ✓ |