監査ログの操作

概要

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
フィルタータイプごとに 1 個の値

現在、監査ログはフィルタータイプごとに 1 個の値をサポートしています。同じタイプのフィルターを 2 個指定した場合(例:filter[action]=ActionOne&amp;filter[action]=ActionTwo)、2 番目のフィルターが優先されます。

重要なフィルタータイプ

監査ログをカリングおよびナビゲートするための重要なフィルタータイプは、次のとおりです。

フィルタータイプ説明値の例
item_type1 つのタイプの、すべてのリソースのフィルター。プレゼンテーション、コメント、レビューリンク、アセット __ __ __ __
item_id1 個の特定リソース(アセットやプレゼンテーションなど)のフィルター。<asset-id>、<presentation-id> __ __
action1 個のアクションのフィルター(通常は、item_type に関連付けられています)。ProjectCreated、AssetVersioned、CommentDeleted __ __ __
actor_id特定ユーザー(アクター)の ID のフィルター。<user-id>
team_id1 つのチームに関連付けられているアクティビティのフィルター。このフィルターは、複数のチームがあるチームにのみ役立ちます。<team-id>
inserted_at特定の日時の前後に発生する監査イベントのフィルター。ISO-8601 形式(UTC)である必要があります。2022-08-25T00:00:00Z

項目タイプおよびアクション

リソースアクション
アカウントAccountCreatedAccountUpdateAccountLocked
アセットAssetCopiedAssetCreatedAssetDeletedAssetUpdatedAssetVersionedAssetUnversionedAssetLabelUpdatedAssetMovedAssetPreservedAssetPrivatizedAssetPublicizedAssetRestored
共同作業者CollaboratorCreatedCollaboratorDeleted
コメントCommentCreatedCommentCompletedCommentDeletedCommentLikedCommentUncompletedCommentUnlikedCommentUpdatedReplyCreated
プレゼンテーションPresentationCreatedPresentationDeletedPresentationUpdated
プロジェクトProjectCreatedProjectDeletedProjectMovedProjectRestoredProjectUpdated
レビューリンクReviewLinkCreatedReviewLinkDeletedReviewLinkUpdated
チームTeamCreatedTeamUpdatedTeamDeleted
TeamMemberTeamMemberCreatedTeamMemberAcceptedTeamMemberDeclinedTeamMemberRemovedTeamMemberUpdated

フィルターの例

フィルターはすべて、上記のように同様の形式に従います。開始に役立つ、特定のユースケースでのターゲットの例を、以下にいくつか示します。

シナリオクエリ文字列
1 人のユーザーによって実行されたアクション。?filter[actor_id]=<user-id>
特定のプレゼンテーションでのすべてのアクティビティ。?filter[item_id]=<presentation-id>
ユーザーによって残されたコメント。?filter[action]=CommentCreated&filter[actor_id]=<user-id>
チームでのすべてのレビューリンクアクティビティ。?filter[item_type]=ReviewLink&filter[team_id]=<team-id>

日付範囲

日付範囲は、inserted_at 日時 value とその日時に適用する操作の両方を指定する必要があるという点で、わずかに特殊なケースです。op

したがって、日付範囲クエリには常に 2 つのフィルター要素があり、それぞれが [inserted_at] パラメーターの横にネストされます。

サポートされている操作には、次が含まれます。

  • gt:より大きい
  • gte:以上
  • lt:より小さい
  • lte:以下

日付範囲の例

シナリオクエリ文字列
特定の日からの、すべての監査ログレコード。?filter[inserted_at][op]=gt&filter[inserted_at][value]=2019-03-25T00:00:00Z
特定の日までに、特定のユーザーによってアップロードされた、すべてのアセット。?filter[inserted_at][op]=lt&filter[inserted_at][value]=2019-03-25T00:00:00Z&filter[actor_id]=<user-id>&filter[action]=AssetCreated