---
title: Структура события
seo:
  description: Как устроено событие аудита Holst API и какие типы объектов и действий оно может содержать.
---

## Поля события

Каждое событие содержит следующие поля:

- `id` — уникальный идентификатор события.
- `occurredAt` — время события в формате RFC 3339.
- `action` — сведения о действии, зафиксированном в журнале аудита.
  - `type` — тип действия, например `workspace_create` или `user_sign_in`. Список типов приведён в разделе [«Типы действий»](#типы-действий).
  - `details` — дополнительные данные о действии. Набор полей зависит от типа действия.
- `actor` — сведения о том, кто выполнил действие.
  - `type` — показывает, кем выполнено действие: пользователем (`user`), анонимным пользователем (`anonymous`), системой (`system`) или неизвестным инициатором (`unknown`).
  - `id` — идентификатор.
  - `name` — имя, если доступно.
  - `email` — электронная почта, если доступна.
- `context` — данные о запросе, связанном с событием. Для системных событий поля могут отсутствовать.
  - `requestId` — идентификатор запроса.
  - `sessionId` — идентификатор сессии.
  - `requestIp` — IP-адрес источника запроса.
- `scope` — указывает организацию, рабочее пространство и канал, к которым относится событие. Любое из полей может отсутствовать.
  - `organizationId` — идентификатор организации.
  - `workspaceId` — идентификатор рабочего пространства.
  - `workspaceName` — название рабочего пространства.
  - `channelId` — идентификатор канала.
- `entity` — объект, затронутый действием.
  - `type` — тип объекта, определяющий набор остальных полей. Возможные значения перечислены в разделе [«Типы объектов»](#типы-объектов).
  - `subtype` — уточняющий тип объекта, если применимо.
  - `id` — идентификатор объекта.
  - `name` — имя объекта.
  - `email` — электронная почта пользователя.

## Пример события

<div className="audit-event-example">

```json
{
  "id": "46b44beb-b585-4598-a241-6bacea128799",
  "occurredAt": "2026-08-31T09:20:35.213Z",
  "action": {
    "type": "workspace_create",
    "details": {
      "fields": {
        "name": "Маркетинг"
      }
    }
  },
  "actor": {
    "type": "user",
    "id": "87736cf6-ca84-4519-8fc2-81c815b76c63",
    "name": "Иван Петров",
    "email": "ivan@example.com"
  },
  "context": {
    "requestId": "4f7f8a01-3a71-42f9-b7b2-71dca2cb55c8",
    "sessionId": "c192570a-3c98-464f-9e78-0cee7fddc864",
    "requestIp": "203.0.113.10"
  },
  "scope": {
    "organizationId": "d311fcba-32ba-417c-aabb-221a819f2ea4",
    "workspaceId": "069018a1-f7ae-42f7-adc7-d6684364abca",
    "workspaceName": "Маркетинг"
  },
  "entity": {
    "type": "workspace",
    "id": "069018a1-f7ae-42f7-adc7-d6684364abca",
    "name": "Маркетинг"
  }
}
```

</div>

## Типы объектов

Поле `entity.type` указывает тип объекта:

| Тип объекта | Описание |
| --- | --- |
| `channel` | Канал. Поля: `subtype`, `id`, `name`. Поле `subtype` уточняет тип канала: `board` — доска, `folder` — папка. |
| `workspace` | Рабочее пространство. Поля: `id`, `name`. |
| `organization` | Организация. Поля: `id`, `name`. |
| `user` | Пользователь. Поля: `id`, `name`, `email`. |

## Типы действий

Тип действия указан в поле `action.type`.

### Каналы

| Тип действия |
| --- |
| `channel_create` |
| `channel_delete` |
| `channel_duplicate` |
| `channel_duplicate_from_board_shared_as_template` |
| `channel_move` |
| `channel_restore` |
| `channel_transfer_ownership` |
| `channel_update` |
| `channel_update_sharing_settings` |
| `channel_user_add` |
| `channel_user_remove` |
| `channel_user_role_change` |

### Рабочие пространства

| Тип действия |
| --- |
| `workspace_attach_to_organization` |
| `workspace_create` |
| `workspace_delete` |
| `workspace_domain_add` |
| `workspace_domain_delete` |
| `workspace_domain_verify` |
| `workspace_invite_link_accept` |
| `workspace_invite_link_create` |
| `workspace_invite_link_revoke` |
| `workspace_join_request_accept` |
| `workspace_join_request_cancel` |
| `workspace_join_request_close` |
| `workspace_join_request_create` |
| `workspace_join_request_reject` |
| `workspace_role_mapping_create` |
| `workspace_role_mapping_delete` |
| `workspace_role_mapping_update` |
| `workspace_saml_idp_update` |
| `workspace_transfer_ownership` |
| `workspace_update` |
| `workspace_user_add` |
| `workspace_user_remove` |
| `workspace_user_role_change` |

### Организации

| Тип действия |
| --- |
| `organization_managed_users_sign_out` |
| `organization_update` |
| `organization_user_add` |
| `organization_user_remove` |
| `organization_user_role_change` |

### Пользователи и токены доступа

| Тип действия |
| --- |
| `user_sign_in` |
| `user_sign_out` |
| `personal_access_token_create` |
| `personal_access_token_revoke` |

### Лицензии

| Тип действия |
| --- |
| `subscription_license_mapping_create` |
| `subscription_license_mapping_delete` |
| `subscription_license_mapping_update` |
| `subscription_license_settings_update` |
| `subscription_license_request_approve` |
| `subscription_license_request_cancel` |
| `subscription_license_request_create` |
| `subscription_license_request_reject` |
| `subscription_user_license_issue` |
| `subscription_user_license_revoke` |
