Создание схемы домена со связями и ссылками

В этом руководстве мы расширим базовую схему домена, созданную ранее в статье Создание базовой схемы домена. Теперь мы добавим в домен еще две сущности, настроим ссылки и связи между сущностями, а также отображение связей и ссылок в интерфейсе.

Для моделирования сложных систем с разными типами объектов вам может понадобиться несколько сущностей в одном домене. Чтобы отразить отношения между объектами, используйте ссылки и связи сущностей:

  • Ссылка задается атрибутом сущности с типом Reference и хранит идентификатор объекта другой сущности. Можно также задать атрибут типа Array — массив, элементами которого являются атрибуты Reference:

    • Связанные объекты отображаются в компактном представлении объекта как теги. Нажав на тег, можно перейти к компактному представлению объекта по ссылке.

    • Список объектов можно фильтровать по значению этого атрибута, но не по атрибутам объекта по ссылке.

  • Связь — это отдельный элемент схемы, описывающий отношения между сущностями:

    • Связанные объекты отображаются в компактном представлении объекта в редакторе связей — компактного, в виде списка тегов, либо расширенного, в виде таблицы.

    • Список объектов можно фильтровать как по атрибутам самой связи, так и по атрибутам связанного объекта.

Таким образом, атрибут-ссылка хранит только идентификатор объекта и лишь указывает на объект. Связь же описывает отношения сами по себе и может иметь собственные атрибуты.

Настройка ссылок на объекты

Чтобы настроить создание и просмотр ссылки на объект, нужно:

Создание сущности Источник индикатора

Добавим новую сущность Источник индикатора (IocSource) в поле entities:

Пример описания сущности
entities:
  ...
  # Сущность Источник индикатора
  - id: IocSource
    name: Источник индикатора
    # Шаблон со ссылкой на атрибут названия, описанный далее.
    label: "{sourceName}"
    description: Источник индикатора компрометации

Настройка атрибутов источника

Сущность будет иметь следующие атрибуты:

  • sourceName — название источника;

  • sourceDescription — описание.

Опишем их в поле attributes:

Пример описания атрибутов
entities:
  ...
  # Сущность Источник индикатора.
  - id: IocSource
    ...
    attributes:
      - id: sourceName
        name: Название
        description: Название источника индикатора
        # Тип - строка.
        dataType: String

      - id: sourceDescription
        name: Описание
        description: Описание источника индикатора
        # Тип - строка.
        dataType: String

Настройка действий с источником

Опишем в поле actions базовые действия с объектом: создание, просмотр и удаление.

Пример описания действий
actions:
  ...
  # Действия с источником индикатора.
  - id: actions_createIocSource
    name: Добавить
    type: open_modal
    # Ссылка на модальное окно, которое будет описано в поле views.
    modal: forms_newIocSource
    operation: create
    # Ссылка на сущность Источника индикатора.
    entity: IocSource
    description: Открыть модальное окно создания источника

  - id: actions_openIocSourcePanel
    name: Детали
    type: open_panel
    # Ссылка на панель, которая будет описана в поле views.
    panel: panels_infoIocSource
    entity: IocSource
    description: Открыть панель с информацией

  - id: actions_bulkRemoveIocSources
    name: Удалить
    type: bulk
    # Ссылка на сущность Источника индикатора.
    entity: IocSource
    operation: remove
    description: Удалить индикаторы

Настройка представления объекта источника

Создадим в поле views представление объекта источника:

Пример описания интерфейса объекта
views:
  ...
  # Представление Источника индикатора.
  - id: viewIocSource
    type: entity
    # Ссылка на сущность Источник индикатора.
    entity: IocSource
    widgets:
      # Виджеты атрибутов.
      - id: editors_iocSourceName
        type: attribute
        # Ссылка на атрибут названия.
        attribute: sourceName
        description: Поле для ввода названия источника

      - id: editors_iocSourceDescription
        type: attribute
        # Ссылка на атрибут значения.
        attribute: sourceDescription
        description: Поле для ввода описания источника

      # Виджеты действий.
      - id: buttons_createIocSource
        type: action
        # Ссылка на действие.
        action: actions_createIocSource
        description: Кнопка, которая запускает действие создания источника. Действие открывает модальную форму создания записи.
        control:
          type: regular_button
          label: Добавить

      - id: buttons_removeIocSources
        type: action
        # Ссылка на действие удаления.
        action: actions_bulkRemoveIocSources
        description: Кнопка для удаления источников индикаторов
        control:
          type: regular_button
          label: Удалить

    groups:
      # Группа блока Форма создания.
      - id: blocks_forms_newIocSource
        description: Блок формы для создания источника индикатора
        type: form
        layout:
          direction: column
        components:
          # Ссылки на виджеты атрибутов Источника индикатора.
          - widget: editors_iocSourceName
          - widget: editors_iocSourceDescription

      # Группа Блока информации.
      - id: blocks_infoIocSource
        description: Информация об источнике индикатора
        type: block
        layout:
          direction: column
        components:
          # Ссылки на виджеты атрибутов Источника индикатора.
          - widget: editors_iocSourceName
          - widget: editors_iocSourceDescription

      # Группа Вкладки информации.
      - id: tabs_infoIocSource
        description: Информация об источнике индикатора
        type: tab
        label: Детали
        components:
          # Ссылка на Блок информации.
          - block: blocks_infoIocSource

    views:
      # Модальное окно с формой создания.
      - id: forms_newIocSource
        description: Форма создания источника индикатора
        type: modal
        # Ссылка на группу Формы создания.
        form: blocks_forms_newIocSource
        label: Добавление индикатора

      # Панель просмотра.
      - id: panels_infoIocSource
        description: Детали источника индикатора
        type: panel
        # Шаблон для подстановки значений атрибутов.
        label: "Источник {sourceName}"
        tabs:
          # Ссылка на вкладку Информации.
          - tab: tabs_infoIocSource
  ...

Настройка представления списка источников

Создадим в поле views представление списка источников:

Пример описания интерфейса списка объектов
views:
  ...
  # Представление Списка источников.
  - id: lists_iocSources
    type: list
    source:
      type: operational
      # Ссылка на сущность Источник индикатора.
      entity: IocSource
    label: Источники индикаторов

    # Таблица со списком.
    table:
      # Столбцы таблицы.
      columns:
        - id: name
          # Ссылка на атрибут названия
          attribute: sourceName
          label: Название
          layout:
            width:
              default: 100
              min: 50
              max: 100

        - id: description
          # Ссылка на атрибут описания.
          attribute: sourceDescription
          label: Описание
          layout:
            width:
              default: 100
              min: 50
              max: 150

      # Действия в таблице.
      actions:
        - type: row_click
          # Ссылка на действие открытия панели просмотра.
          action: actions_openIocSourcePanel

      # Выбор объектов в таблице разрешен.
      selection: true

    # Панель действий.
    actionPanel:
      # Ссылка на кнопку создания источника.
      - widget: buttons_createIocSource
      # Ссылка на кнопку удаления источников.
      - widget: buttons_removeIocSources

Настройка пункта меню

Создадим пункт со списком индикаторов в поле menus:

Пример описания пункта меню
menus:
  - id: menus_iocs
    ...
    items:
      ...
      # Идентификатор записи элемента меню для нового подраздела
      - id: IocSourceMenu
        # Компонент адреса, относящийся к подразделу сущности в домене
        route: /iocs/sources
        # Название пункта меню для подраздела Источники.
        label: Источники
        # Тип - пункт меню.
        type: menu
        # Ссылка на представление Списка источников.
        view: lists_iocSources
        # Описание пункта меню.
        description: Меню раздела Источники

Добавление массива атрибутов типа Reference

Создадим атрибут с типом Array в описании сущности Индикатор. Элементы массива будут иметь тип Reference и ссылаться на сущность Источник индикатора.

Пример описания атрибута Array с элементами типа Reference
entities:
  # Сущность Индикатор.
  - id: Ioc
    ...
    attributes:
      ...
      - id: refIocSourcesArray
        name: Источник индикатора
        dataType: Array
        item:
         dataType: Reference
         # Ссылка на сущность Источник индикатора.
         entity: IocSource
  ...

Настройка виджета атрибута

Создадим виджет атрибута со ссылками и добавим его в панель и модельное окно сущности Индикатор:

Пример описания виджета атрибута со ссылками
views:
  # Представление Индикатор.
  - id: viewIoc
    ...
    widgets:
      ...
      - id: editors_iocSource
        type: attribute
        # Ссылка на атрибут Array с элементами Reference.
        attribute: refIocSourcesArray
        description: Поле для выбора источников индикатора
      ...
    groups:
      # Группа Блок формы создания Индикатора.
      - id: blocks_forms_newIoc
        ...
        components:
          ...
          # Ссылка на виджет атрибута Array с элементами Reference.
          - widget: editors_iocSource
      ...
      # Группа Блок информации об индикаторе.
      - id: blocks_infoIoc
        ...
        components:
          ...
          # Ссылка на виджет атрибута Array с элементами Reference.
          - widget: editors_iocSource
      ...
  ...

Настройка связи между объектами

Чтобы настроить создание и просмотр связей, нужно:

Создание сущности Инцидент

Добавим новую сущность Инцидент (Incident) в поле entities:

Пример описания сущности
entities:
  ...
  # Сущность Инцидент
  - id: Incident
    name: Инцидент
    # Шаблон со ссылкой на атрибут темы описанный далее.
    label: "{incidentSubject}"
    ...

Настройка атрибутов инцидентов

Сущность Инцидент имеет следующие атрибуты:

  • incidentSubject — тема;

  • incidentDescription — описание;

  • Urgency — срочность.

Опишем их в поле attributes:

Пример описания атрибутов
entities:
  ...
  # Сущность Инцидент.
  - id: Incident
    ...
    attributes:
      - id: incidentSubject
        name: Тема
        dataType: String
      - id: incidentDescription
        name: Описание
        dataType: String
      - id: Urgency
        name: Срочность
        # Ссылка на пользовательский тип данных.
        dataType: IncUrgency

dataTypes:
  ...
  # Перечисление уровней критичности.
  - id: IncUrgency
    name: Критичность
    description: Критичность
    dataType: Enum
    values:
      - id: criticalityHigh
        name: Высокая
        value: 1
      - id: criticalityMedium
        name: Средняя
        value: 2
      - id: criticalityLow
        name: Низкая
        value: 3

Настройка действий с инцидентом

Опишем в поле actions действия с объектом: создание, просмотр и удаление.

Пример описания действий
actions:
  ...
  # Действия с источником индикатора.
  - id: actions_createIncident
    name: Добавить
    type: open_modal
    # Ссылка на модальное окно, которое будет описано в поле views.
    modal: forms_newIncident
    operation: create
    # Ссылка на сущность Инцидент.
    entity: Incident
    description: Открыть модальное окно создания инцидента

  - id: actions_openIncidentPanel
    name: Детали
    type: open_panel
    # Ссылка на панель, которая будет описана в поле views.
    panel: panels_infoIncident
    entity: Incident
    description: Открыть панель с информацией об инциденте

  - id: actions_bulkRemoveIncidents
    name: Удалить
    type: bulk
    # Ссылка на сущность Инцидента.
    entity: Incident
    operation: remove
    description: Удалить инциденты

Настройка представления объекта инцидента

Создадим в поле views представление объекта инцидента:

Пример описания интерфейса объекта
views:
  ...
  # Представление Инцидента.
  - id: viewIncident
    type: entity
    # Ссылка на сущность Инцидента.
    entity: Incident
    widgets:
      # Виджеты атрибутов.
      - id: editors_incidentSubject
        type: attribute
        # Ссылка на атрибут темы.
        attribute: incidentSubject
        description: Поле для темы
      - id: editors_incidentDescription
        type: attribute
        # Ссылка на атрибут описания.
        attribute: incidentDescription
        description: Поле для описания
      - id: editors_Author
        type: attribute
        # Ссылка на системный атрибут создателя.
        attribute: createdBy
        description: Поле для указания автора инцидента
      - id: editors_Opened
        type: attribute
        # Ссылка на системный атрибут даты создания.
        attribute: createdAt
        description: Поле для указания даты создания инцидента
      - id: editors_Urgency
        type: attribute
        # Ссылка на атрибут срочности.
        attribute: Urgency
        description: Поле для указания срочности

      # Виджеты действий.
      - id: buttons_createIncident
        type: action
        # Ссылка на действие.
        action: actions_createIncident
        description: Кнопка, которая запускает действие создания инцидента. Действие открывает модальную форму создания записи.
        control:
          type: regular_button
          label: Добавить

      - id: buttons_removeIncidents
        type: action
        # Ссылка на действие удаления.
        action: actions_bulkRemoveIncidents
        description: Кнопка для удаления инцидентов
        control:
          type: regular_button
          label: Удалить

    groups:
      # Группа блока Форма создания.
      - id: blocks_forms_newIncident
        description: Блок формы для создания инцидента
        type: form
        layout:
          direction: column
        components:
          # Ссылки на виджеты атрибутов Инцидента
          - widget: editors_incidentSubject
          - widget: editors_incidentDescription
          - widget: editors_Urgency

      # Группа Блока информации.
      - id: blocks_infoIncident
        description: Информация об инциденте
        type: block
        layout:
          direction: column
        components:
          # Ссылки на виджеты атрибутов Инцидента.
          - widget: editors_incidentSubject
          - widget: editors_incidentDescription
          - widget: editors_Urgency
          - widget: editors_Author
          - widget: editors_Opened

      # Группа Вкладки информации.
      - id: tabs_infoIncident
        description: Информация об инциденте
        type: tab
        label: Детали
        components:
          # Ссылка на Блок информации.
          - block: blocks_infoIncident

    views:
      # Модальное окно с формой создания.
      - id: forms_newIncident
        description: Форма создания инцидента
        type: modal
        # Ссылка на группу Формы создания.
        form: blocks_forms_newIncident
        label: Добавление инцидента

      # Панель просмотра.
      - id: panels_infoIncident
        description: Детали источника индикатора
        type: panel
        # Шаблон для подстановки значений номера.
        label: "{incidentSubject}"
        tabs:
          # Ссылка на вкладку Информации.
          - tab: tabs_infoIncident
  ...

Настройка представления списка инцидентов

Создадим в поле views представление списка инцидентов:

Пример описания интерфейса списка объектов
views:
  ...
  # Представление Списка инцидентов.
  - id: lists_Incidents
    type: list
    source:
      type: operational
      # Ссылка на сущность Инцидент.
      entity: Incident
    label: Источники индикаторов

    table:
      columns:
        # Ссылка на атрибут темы.
        - id: incidentSubject
          attribute: incidentSubject
          label: Тема
          layout:
            width:
              default: 100
              min: 100
              max: 150
        # Ссылка на атрибут описания.
        - id: incidentDescription
          attribute: incidentDescription
          label: Описание
          layout:
            width:
              default: 200
              min: 200
              max: 250
        # Ссылка на системный атрибут даты создания.
        - id: Opened
          attribute: createdAt
          label: Дата регистрации
          layout:
            width:
              default: 100
              min: 100
              max: 150
        # Ссылка на атрибут срочности.
        - id: Urgency
          attribute: Urgency
          label: Срочность
          layout:
            width:
              default: 100
              min: 100
              max: 150
        # Ссылка на системный атрибут создателя.
        - id: Author
          attribute: createdBy
          label: Автор
          layout:
            width:
              default: 100
              min: 100
              max: 150

      actions:
        - type: row_click
          # Ссылка на действие открытия панели просмотра.
          action: actions_openIncidentPanel

      selection: true

    actionPanel:
      - widget: buttons_createIncident
      - widget: buttons_removeIncidents

Настройка пункта меню

Создадим пункт со списком инцидентов в поле menus:

Пример описания пункта меню
menus:
  - id: menus_iocs
    ...
    items:
      ...
      - id: IncidentMenu
        route: /iocs/incidents
        label: Инциденты
        type: menu
        # Ссылка на представление Списка инцидентов.
        view: lists_Incidents
        description: Меню раздела Инциденты.

Создание связи между сущностями Индикатор и Инцидент

Создадим связь, которая позволит соединять индикаторы компрометации с инцидентами.

Линейные связи различаются по следующим параметрам:

  • Сила связи: какое количество объектов может быть с каждой стороны связи. По этому параметру выделяют связи "один — к одному", "один — ко многим" и "многие — ко многим". Индикатор компрометации может быть связан с несколькими инцидентами, а инцидент содержать разные индикаторы, поэтому здесь подходит связь "многие — ко многим".

  • Направленность связи: есть ли строго заданное направление связи. В данном случае связь ненаправленная.

Заполните следующие поля в поле linkages:

  • id: уникальный идентификатор связи;

  • name (опционально): название связи;

  • description (опционально): описание связи;

  • side1: левая сторона связи — сущность, от которой идет связь;

  • side2: правая сторона связи — сущность, к которой идет связь

  • type: сила связи, укажите n_n;

  • undirected: направленность, укажите true;

  • nameFrom: глагольное описание связей для обеих сторон;

    • side1: для левой стороны;

    • side2: для правой стороны.

Пример описания связи
linkages:
  - id: Incident_Ioc
    name: Инцидент связан с индикатором компрометации
    description: В данных инцидента обнаружен индикатор компрометации
    # Ссылка на сущность Инцидент.
    side1: Incident
    # Ссылка на сущность Индикатор компрометации.
    side2: Ioc
    type: n_n
    undirected: true
    nameFrom:
      side1: Содержит индикатор
      side2: Связан с инцидентом

Настройка виджета связи

Создадим в компактном представлении индикатора виджет для просмотра и добавления связанных инцидентов. Заполните следующие поля в описании виджета:

  • id: уникальный идентификатор виджета;

  • type: тип виджета, укажите linkage;

  • linkage: ссылка на идентификатор связи;

  • label (опционально): отображаемое название виджета;

  • description (опционально): описание;

  • side: отображаемая сторона связи;

  • control: элемент управления:

    • type: тип элемента. Для более удобного управления рекомендуется указать тип table — таблица.

    • addLinksView: отображаемое в виджете представление;

    • columns (для типа table): список столбцов таблицы:

      • id — идентификатор столбца;

      • attribute — ссылка на атрибут связанного объекта.

Пример описания виджета связи
views:
  # Представление Индикатора.
  - id: viewIoc
    widgets:
      ...
      - id: editors_link_Ioc_Incident
        type: linkage
        linkage: Incident_Ioc
        label: Инциденты
        description: Связанные инциденты
        side: 1
        control:
          type: table
          # Ссылка на представление Списка инцидентов
          addLinksView: lists_Incidents
          columns:
            - id: incidentSubject
              # Ссылка на атрибут связанного объекта.
              attribute: incidentSubject

    groups:
      # Группа Блок формы создания Индикатора.
      - id: blocks_forms_newIoc
        ...
        components:
          ...
          # Ссылка на виджет связи.
          - widget: editors_link_Ioc_Incident
      ...
      # Группа Блока информации.
      - id: blocks_infoIoc
        ...
        components:
          ...
          # Ссылка на виджет связи.
          - widget: editors_link_Ioc_Incident

Пример схемы домена

Пример схемы со связями и ссылками
id: iocs.test
type: domain
version: 0.0.2
name: IOCs Domain
description: Домен индикаторов компрометации
status: test
date: 2025-08-01
author: John Doe
tags: [iocs]

entities:
  - id: Ioc
    name: Индикатор
    label: "{type}: {value}"
    description: Индикатор компрометации

    attributes:
      - id: value
        name: Значение
        description: Значение индикатора компрометации
        dataType: String

      - id: type
        name: Тип
        description: Тип индикатора компрометации
        dataType: enumIocTypes

      - id: refIocSourcesArray
        name: Источник индикатора
        dataType: Array
        item:
         dataType: Reference
         # Ссылка на сущность Источник индикатора.
         entity: IocSource

  - id: IocSource
    name: Источник индикатора
    label: "{sourceName}"
    description: Источник индикатора компрометации

    attributes:
      - id: sourceName
        name: Название
        description: Название источника индикатора
        dataType: String

      - id: sourceDescription
        name: Описание
        description: Описание источника индикатора
        dataType: String


  - id: Incident
    name: Инцидент
    label: "{incidentSubject}"
    attributes:
      - id: incidentSubject
        name: Тема
        dataType: String
      - id: incidentDescription
        name: Описание
        dataType: String
      - id: Urgency
        name: Срочность
        dataType: IncUrgency

dataTypes:
  - id: enumIocTypes
    name: Типы индикаторов компрометации
    dataType: Enum
    values:

    - id: Account
      name: Аккаунт
    - id: File
      name: Файл
    - id: Domain
      name: Домен
    - id: URL
      name: URL
    - id: Email
      name: Email
    - id: IP
      name: IP
    - id: IPv6
      name: IPv6
    - id: MD5Hash
      name: Хэш MD5
    - id: SHA1Hash
      name: Хэш SHA-1
    - id: SHA256Hash
      name: Хэш SHA-256

  - id: IncUrgency
    name: Критичность
    description: Критичность
    dataType: Enum
    values:
      - id: criticalityHigh
        name: Высокая
        value: 1
      - id: criticalityMedium
        name: Средняя
        value: 2
      - id: criticalityLow
        name: Низкая
        value: 3

linkages:
  - id: Incident_Ioc
    name: Инцидент связан с индикатором компрометации
    description: В данных инцидента обнаружен индикатор компрометации
    side1: Incident
    side2: Ioc
    type: n_n
    undirected: true
    nameFrom:
      side1: Содержит индикатор
      side2: Связан с инцидентом

menus:
  - id: menus_iocs
    route: /iocs
    label: "Индикаторы компрометации"
    type: root_group
    description: Меню домена Индикаторы
    placement: top
    items:
      - id: IndicatorsMenu
        route: /iocs/indicators
        label: Индикаторы компрометации
        type: menu
        view: lists_iocs
        description: Меню раздела Индикаторы.

      - id: IocSourceMenu
        route: /iocs/sources
        label: Источники
        type: menu
        view: lists_iocSources
        description: Меню раздела Источники

      - id: IncidentMenu
        route: /iocs/incidents
        label: Инциденты
        type: menu
        view: lists_Incidents
        description: Меню раздела Инциденты.

actions:

  - id: actions_createIoc
    name: Добавить
    type: open_modal
    modal: forms_newIoc
    entity: Ioc
    operation: create
    description: Открыть модальное окно создания индикатора

  - id: actions_openIocPanel
    name: Детали
    type: open_panel
    panel: panels_infoIoc
    entity: Ioc
    description: Открыть панель с информацией об индикаторе

  - id: actions_bulkRemoveIocs
    name: Удалить
    type: bulk
    entity: Ioc
    operation: remove
    description: Удалить индикатор

  - id: actions_createIocSource
    name: Добавить
    type: open_modal
    modal: forms_newIocSource
    operation: create
    entity: IocSource
    description: Открыть модальное окно создания источника

  - id: actions_openIocSourcePanel
    name: Детали
    type: open_panel
    panel: panels_infoIocSource
    entity: IocSource
    description: Открыть панель с информацией об индикаторе

  - id: actions_bulkRemoveIocSources
    name: Удалить
    type: bulk
    entity: IocSource
    operation: remove
    description: Удалить индикаторы

  - id: actions_createIncident
    name: Добавить
    type: open_modal
    modal: forms_newIncident
    operation: create
    entity: Incident
    description: Открыть модальное окно создания инцидента

  - id: actions_openIncidentPanel
    name: Детали
    type: open_panel
    panel: panels_infoIncident
    entity: Incident
    description: Открыть панель с информацией об инциденте

  - id: actions_bulkRemoveIncidents
    name: Удалить
    type: bulk
    entity: Incident
    operation: remove
    description: Удалить инциденты

views:
  - id: viewIoc
    type: entity
    entity: Ioc

    widgets:
      - id: editors_iocType
        type: attribute
        attribute: type
        description: Поле для ввода типа индикатора

      - id: editors_iocValue
        type: attribute
        attribute: value
        description: Поле для ввода значения индикатора

      - id: editors_iocSource
        type: attribute
        attribute: refIocSourcesArray
        description: Поле для выбора источников индикатора

      - id: buttons_createIoc
        type: action
        action: actions_createIoc
        description: Кнопка, которая запускает действие создания индикатора. Действие открывает модальную форму создания записи.
        control:
          type: regular_button
          label: Добавить
      - id: buttons_removeIocs
        type: action
        action: actions_bulkRemoveIocs
        description: Кнопка для удаления индикаторов
        control:
          type: regular_button
          label: Удалить

      - id: editors_link_Ioc_Incident
        type: linkage
        linkage: Incident_Ioc
        label: Инциденты
        description: Связанные инциденты
        side: 1
        control:
          type: table
          addLinksView: lists_Incidents
          columns:
            - id: incidentSubject
              attribute: incidentSubject

    groups:
      - id: blocks_infoIoc
        description: Информация об индикаторе
        type: block
        layout:
          direction: column
          expandable: false
        components:
          - widget: editors_iocType
          - widget: editors_iocValue
          - widget: editors_iocSource
          - widget: editors_link_Ioc_Incident

      - id: tabs_infoIoc
        description: Информация об индикаторе
        type: tab
        label: Детали
        components:
          - block: blocks_infoIoc
      - id: blocks_forms_newIoc
        description: Блок формы для создания индикатора
        type: form
        layout:
          direction: column
        components:
          - widget: editors_iocType
          - widget: editors_iocValue
          - widget: editors_iocSource
          - widget: editors_link_Ioc_Incident

    views:
      - id: panels_infoIoc
        description: Детали индикатора
        type: panel
        label: "Ioc {type}: {value}"
        tabs:
          - tab: tabs_infoIoc

      - id: forms_newIoc
        description: Форма создания индикатора
        type: modal
        form: blocks_forms_newIoc
        label: Добавление индикатора

  - id: lists_iocs
    type: list
    source:
      type: operational
      entity: Ioc
    label: Индикаторы компрометации
    actionPanel:
      - widget: buttons_createIoc
      - widget: buttons_removeIocs
    table:
      columns:
        - id: type
          attribute: type
          label: Тип
          layout:
            width:
              default: 100
              min: 50
              max: 100

        - id: value
          attribute: value
          label: Значение
          layout:
            width:
              default: 100
              min: 50
              max: 150

        - id: createdAt
          attribute: createdAt
          label: Дата создания
          type: timestamp
          layout:
            width:
              default: 100
              min: 50
              max: 100

        - id: updatedAt
          attribute: updatedAt
          label: Дата изменения
          type: timestamp
          layout:
            width:
              default: 100
              min: 50
              max: 100

      actions:
        - type: row_click
          action: actions_openIocPanel

      selection: true

  - id: viewIocSource
    type: entity
    entity: IocSource
    widgets:
      - id: editors_iocSourceName
        type: attribute
        attribute: sourceName
        description: Поле для ввода названия источника

      - id: editors_iocSourceDescription
        type: attribute
        attribute: sourceDescription
        description: Поле для ввода описания источника

      - id: buttons_createIocSource
        type: action
        action: actions_createIocSource
        description: Кнопка, которая запускает действие создания источника. Действие открывает модальную форму создания записи.
        control:
          type: regular_button
          label: Добавить

      - id: buttons_removeIocSources
        type: action
        action: actions_bulkRemoveIocSources
        description: Кнопка для удаления источников индикаторов
        control:
          type: regular_button
          label: Удалить

    groups:
      - id: blocks_forms_newIocSource
        description: Блок формы для создания источника индикатора
        type: form
        layout:
          direction: column
        components:
          - widget: editors_iocSourceName
          - widget: editors_iocSourceDescription

      - id: blocks_infoIocSource
        description: Информация об источнике индикатора
        type: block
        layout:
          direction: column
        components:
          # Ссылки на виджеты атрибутов Источника индикатора.
          - widget: editors_iocSourceName
          - widget: editors_iocSourceDescription

      - id: tabs_infoIocSource
        description: Информация об источнике индикатора
        type: tab
        label: Детали
        components:
          - block: blocks_infoIocSource

    views:
      - id: forms_newIocSource
        description: Форма создания источника индикатора
        type: modal
        form: blocks_forms_newIocSource
        label: Добавление индикатора

      - id: panels_infoIocSource
        description: Детали источника индикатора
        type: panel
        label: "Источник {sourceName}"
        tabs:
          - tab: tabs_infoIocSource

  - id: lists_iocSources
    type: list
    source:
      type: operational
      entity: IocSource
    label: Источники индикаторов
    table:
      columns:
        - id: name
          attribute: sourceName
          label: Название
          layout:
            width:
              default: 100
              min: 50
              max: 100
        - id: description
          attribute: sourceDescription
          label: Описание
          layout:
            width:
              default: 100
              min: 50
              max: 150
      actions:
        - type: row_click
          action: actions_openIocSourcePanel

      selection: true

    actionPanel:
      - widget: buttons_createIocSource
      - widget: buttons_removeIocSources

  - id: viewIncident
    type: entity
    entity: Incident
    widgets:
      - id: editors_incidentSubject
        type: attribute
        attribute: incidentSubject
        description: Поле для темы
      - id: editors_incidentDescription
        type: attribute
        attribute: incidentDescription
        description: Поле для описания
      - id: editors_Author
        type: attribute
        attribute: createdBy
        description: Поле для указания автора инцидента
      - id: editors_Opened
        type: attribute
        attribute: createdAt
        description: Поле для указания даты создания инцидента
      - id: editors_Urgency
        type: attribute
        attribute: Urgency
        description: Поле для указания срочности

      - id: buttons_createIncident
        type: action
        action: actions_createIncident
        description: Кнопка, которая запускает действие создания инцидента. Действие открывает модальную форму создания записи.
        control:
          type: regular_button
          label: Добавить

      - id: buttons_removeIncidents
        type: action
        action: actions_bulkRemoveIncidents
        description: Кнопка для удаления инцидентов
        control:
          type: regular_button
          label: Удалить

    groups:
      - id: blocks_forms_newIncident
        description: Блок формы для создания инцидента
        type: form
        layout:
          direction: column
        components:
          - widget: editors_incidentSubject
          - widget: editors_incidentDescription
          - widget: editors_Urgency

      - id: blocks_infoIncident
        description: Информация об инциденте
        type: block
        layout:
          direction: column
        components:
          - widget: editors_incidentSubject
          - widget: editors_incidentDescription
          - widget: editors_Urgency
          - widget: editors_Author
          - widget: editors_Opened

      - id: tabs_infoIncident
        description: Информация об инциденте
        type: tab
        label: Детали
        components:
          - block: blocks_infoIncident

    views:
      - id: forms_newIncident
        description: Форма создания инцидента
        type: modal
        form: blocks_forms_newIncident
        label: Добавление инцидента

      - id: panels_infoIncident
        description: Детали источника индикатора
        type: panel
        label: "{incidentSubject}"
        tabs:
          - tab: tabs_infoIncident

  - id: lists_Incidents
    type: list
    source:
      type: operational
      entity: Incident
    label: Источники индикаторов

    table:
      columns:
        - id: incidentSubject
          attribute: incidentSubject
          label: Тема
          layout:
            width:
              default: 100
              min: 100
              max: 150
        - id: incidentDescription
          attribute: incidentDescription
          label: Описание
          layout:
            width:
              default: 200
              min: 200
              max: 250
        - id: Opened
          attribute: createdAt
          label: Дата регистрации
          layout:
            width:
              default: 100
              min: 100
              max: 150
        - id: Urgency
          attribute: Urgency
          label: Срочность
          layout:
            width:
              default: 100
              min: 100
              max: 150
        - id: Author
          attribute: createdBy
          label: Автор
          layout:
            width:
              default: 100
              min: 100
              max: 150
      actions:
        - type: row_click
          action: actions_openIncidentPanel

      selection: true

    actionPanel:
      - widget: buttons_createIncident
      - widget: buttons_removeIncidents

Была ли полезна эта страница?

Обратная связь