감사 로그 사용하기

개요

Frame.io는 애플리케이션에서 수행되는 대다수의 활동에 대해 감사 로그를 지원하고 유지 관리합니다. 여기에는 핵심 리소스에 대한 기본 CRUD와 일부 특수 추상화(예: AssetVersioned)가 모두 포함됩니다.

감사 로그는 30일 후 잘림

Frame.io 감사 로그는 30일의 롤링 기간 동안 API를 통해 사용할 수 있으며, 그 이후에는 콜드 스토리지로 이동됩니다. 따라서 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의 Search 엔드포인트와 달리 필터는 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단일 Action에 대한 필터이며, 일반적으로 item_type과 연결됨ProjectCreated, AssetVersioned, CommentDeleted
actor_id특정 사용자(액터)의 ID에 대한 필터.<user-id>
team_id단일 팀과 관련된 활동에 대한 필터. 이 필터는 여러 팀이 속해 있는 조직에서만 유용합니다.<team-id>
inserted_at특정 날짜/시간의 이전 또는 이후에 발생하는 감사 이벤트를 필터링합니다. 반드시 ISO-8601 형식(UTC)이어야 합니다.2022-08-25T00:00:00Z

항목 유형 및 작업

리소스작업
계정AccountCreated, AccountUpdate, AccountLocked
AssetAssetCopied, AssetCreated, AssetDeleted, AssetUpdated, AssetVersioned, AssetUnversioned, AssetLabelUpdated, AssetMoved, AssetPreserved, AssetPrivatized, AssetPublicized, AssetRestored
공동 작업자CollaboratorCreated, CollaboratorDeleted
CommentCommentCreated, CommentCompleted, CommentDeleted, CommentLiked, CommentUncompleted, CommentUnliked, CommentUpdated, ReplyCreated
PresentationPresentationCreated, PresentationDeleted, PresentationUpdated
ProjectProjectCreated, 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 datetime value 및 해당 datetime에 적용할 op를 모두 지정해야 한다는 점에서 약간 특수한 경우입니다. 따라서 날짜 범위 쿼리에는 항상 두 개의 필터 요소가 있으며, 각 필터 요소는 [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