Работа с журналами аудита

Обзор

Frame.io поддерживает и ведет журналы аудита для подавляющего большинства действий, выполняемых в его приложениях. Включены как основные операции CRUD с базовыми ресурсами, так и некоторые специальные абстракции (например, AssetVersioned).

Журналы аудита усекаются через 30 дней.

Журналы аудита Frame.io доступны через API-интерфейс в течение 30 дней, после чего они перемещаются в холодное хранилище. Поэтому, если вы хотите сохранить длительную историю событий Frame.io, убедитесь, что вы храните исторические данные журналов по-отдельности.

Область доступа и разрешения

Доступ к журналам аудита учетной записи имеют только администраторы учетной записи, и все вызовы к конечной точке журналов аудита должны быть ограничены account_id следующим образом:

GET https://api.frame.io/v2/accounts/:id/audit_logs

Ответы

Все ответы журналов аудита имеют похожий формат:

1{
2 "_type": "audit",
3 "account_id": "<account-id>",
4 "action": "<ActionTaken>",
5 "actor": {
6 "_type": "user",
7 "id": "<user-id>",
8 },
9 "actor_id": "<user-id>",
10 "id": "<audit-id>",
11 "inserted_at": "<ISO-8601-datetime>",
12 "item_id": "<resource-id>",
13 "item_type": "<ResourceType>",
14 "resource": {...},
15 "team_id": "<team-id>",
16 "updated_at": "<ISO-8601-datetime>"
17}
Не забудьте о разбивке на страницы!

Данные ответов журналов аудита могут быть довольно подробными, поэтому убедитесь, что вы знаете, как выполнять разбивку на страницы!

Фильтры

Журналы аудита поддерживают различные фильтры, включая диапазоны дат. В отличие от конечных точек поиска Frame.io, фильтры можно отправить только в виде параметров строки запроса GET.

Все фильтры следуют одинаковому форматированию:

GET + строка запроса

1GET
2https://api.frame.io/accounts/:id/audit_logs?filter[filter_type1]=value1&filter[filter_type2]=value2
Одно значение на тип фильтра

В настоящее время журналы аудита поддерживают одно значение на тип фильтра. Если вы предоставите два фильтра одного типа (например, filter[action]=ActionOne&amp;filter[action]=ActionTwo), второй фильтр будет иметь приоритет.

Ключевые типы фильтров

Ключевые типы фильтров для отбора и навигации по журналам аудита:

Тип фильтраОписаниеПримеры значений
item_typeФильтры для всех ресурсов одного типа.Presentation, Comment, ReviewLink, Asset
item_idФильтры для одного конкретного ресурса, например ресурса или презентации.<asset-id>, <presentation-id>
actionФильтры для одного действия, обычно связанного с item_typeProjectCreated, AssetVersioned, CommentDeleted
actor_idФильтры для идентификатора конкретного пользователя (действующего пользователя).<user-id>
team_idФильтры для действий, связанных с одной командой. Этот фильтр полезен только для команд, в которых есть несколько команд.<team-id>
inserted_atФильтры для событий аудита, происходящих до или после определенной даты и времени. Должно быть в формате ISO-8601, UTC.2022-08-25T00:00:00Z

Типы элементов и действия

РесурсДействия
Учетная записьAccountCreated, AccountUpdate, AccountLocked
РесурсAssetCopied, AssetCreated, AssetDeleted, AssetUpdated, AssetVersioned, AssetUnversioned, AssetLabelUpdated, AssetMoved, AssetPreserved, AssetPrivatized, AssetPublicized, AssetRestored
СоавторCollaboratorCreated, CollaboratorDeleted
КомментарийCommentCreated, CommentCompleted, CommentDeleted, CommentLiked, CommentUncompleted, CommentUnliked, CommentUpdated, ReplyCreated
ПрезентацияPresentationCreated, PresentationDeleted, PresentationUpdated
ПроектProjectCreated, ProjectDeleted, ProjectMoved, ProjectRestored, ProjectUpdated
ReviewLinkReviewLinkCreated, ReviewLinkDeleted, ReviewLinkUpdated
КомандаTeamCreated, TeamUpdated, TeamDeleted
TeamMemberTeamMemberCreated, TeamMemberAccepted, TeamMemberDeclined, TeamMemberRemoved, TeamMemberUpdated

Примеры фильтров

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

СценарийСтрока запроса
Действия, выполненные одним пользователем.?filter[actor_id]=<user-id>
Все действия по конкретной презентации.?filter[item_id]=<presentation-id>
Комментарии, оставленные пользователем.?filter[action]=CommentCreated&amp;filter[actor_id]=<user-id>
Все действия со ссылкой для рецензирования в команде.?filter[item_type]=ReviewLink&amp;filter[team_id]=<team-id>

Диапазоны дат

Диапазоны дат — это особый случай, поскольку необходимо указать как значение даты и времени inserted_at, так и операцию, применяемую к этой дате и времени. Соответственно, запросы диапазона дат всегда будут иметь два элемента фильтра, каждый из которых будет вложен рядом с параметром [inserted_at].

Поддерживаемые операции включают:

  • gt — более чем
  • gte — более чем или равно
  • lt — менее чем
  • lte — менее чем или равно

Примеры диапазонов дат

СценарийСтрока запроса
Все записи журнала аудита с определенной даты.?filter[inserted_at][op]=gt&amp;filter[inserted_at][value]=2019-03-25T00:00:00Z
Все ресурсы, добавленные конкретным пользователем до определенной даты.?filter[inserted_at][op]=lt&amp;filter[inserted_at][value]=2019-03-25T00:00:00Z&amp;filter[actor_id]=<user-id>&amp;filter[action]=AssetCreated