Utilisation des journaux d'audit

Présentation

Frame.io prend en charge et maintient des journaux d’audit pour la grande majorité des activités dans ses applications.Cela inclut les opérations CRUD de base sur les ressources principales et certaines abstractions spéciales (par exemple AssetVersioned).

Les journaux d'audit sont tronqués après 30 jours

Les journaux d’audit Frame.io sont disponibles via API pour une fenêtre glissante de 30 jours, après quoi ils sont déplacés vers un stockage à froid.Par conséquent, si vous souhaitez conserver un historique long des événements Frame.io, veillez à stocker les données historiques des journaux de manière indépendante.

Portée et autorisations

Seuls les administrateurs de compte peuvent accéder aux journaux d’audit d’un compte, et tous les appels au point d’entrée des journaux d’audit doivent être étendus à un account_id comme suit :

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

Réponses

Toutes les réponses des journaux d’audit ont un format similaire :

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}
N'oubliez pas la pagination !

Les données de réponse des journaux d’audit peuvent être assez détaillées, assurez-vous donc de bien connaître la pagination !

Filtres

Les journaux d’audit prennent en charge différents filtres, y compris les périodes.Contrairement aux points d’entrée de recherche de Frame.io, les filtres peuvent être envoyés uniquement comme paramètres de chaîne de requête GET.

Tous les filtres suivent le même formatage :

GET + chaîne de requête

1GET
2https://api.frame.io/accounts/:id/audit_logs?filter[filter_type1]=value1&filter[filter_type2]=value2
Une valeur par type de filtre

Actuellement, les journaux d’audit prennent en charge une valeur par type de filtre.Si vous fournissez deux filtres du même type (par exemple filter[action]=ActionOne&amp;filter[action]=ActionTwo), le second filtre prévaudra.

Types de filtres clés

Les types de filtres clés pour filtrer et naviguer dans les journaux d’audit sont :” ] } ```

Type de filtreDescriptionExemples de Valeur
item_typeFiltre toutes les ressources d’un seul type.Presentation, Comment, ReviewLink, Asset
item_idFiltre une seule ressource spécifique, par exemple un asset ou une présentation.<asset-id>, <presentation-id></presentation-id></asset-id>
actionFiltre une seule action, généralement associée à un item_typeProjectCreated, AssetVersioned, CommentDeleted
actor_idFiltre l’ID d’un utilisateur spécifique (acteur).<user-id></user-id>
team_idFiltre les activités associées à une seule équipe.Ce filtre n’est utile que pour les équipes qui ont plusieurs équipes.<team-id></team-id>
inserted_atFiltre les événements d’audit survenant avant ou après une date et heure spécifique.Doit être au format ISO-8601, UTC.2022-08-25T00:00:00Z

Types d’éléments et actions

RessourceActions
CompteAccountCreated, AccountUpdate, AccountLocked
AssetAssetCopied, AssetCreated, AssetDeleted, AssetUpdated, AssetVersioned, AssetUnversioned, AssetLabelUpdated, AssetMoved, AssetPreserved, AssetPrivatized, AssetPublicized, AssetRestored
CollaborateurCollaboratorCreated, CollaboratorDeleted
CommentCommentCreated, CommentCompleted, CommentDeleted, CommentLiked, CommentUncompleted, CommentUnliked, CommentUpdated, ReplyCreated
PresentationPresentationCreated, PresentationDeleted, PresentationUpdated
ProjetProjectCreated, ProjectDeleted, ProjectMoved, ProjectRestored, ProjectUpdated
ReviewLinkReviewLinkCreated, ReviewLinkDeleted, ReviewLinkUpdated
ÉquipeTeamCreated, TeamUpdated, TeamDeleted
TeamMemberTeamMemberCreated, TeamMemberAccepted, TeamMemberDeclined, TeamMemberRemoved, TeamMemberUpdated

Exemples de filtres

Tous les filtres suivent un format similaire, comme décrit ci-dessous.Voici quelques exemples ciblant des cas d’usage spécifiques qui peuvent vous aider à commencer.

ScénarioChaîne de requête
Actions effectuées par un seul Utilisateur.?filter[actor_id]=<user-id></user-id>
Toute l’activité sur une présentation spécifique.?filter[item_id]=<presentation-id></presentation-id>
Commentaires laissés par un Utilisateur.?filter[action]=CommentCreated&amp;filter[actor_id]=<user-id></user-id>
Toute l’activité Review Link sur une équipe.?filter[item_type]=ReviewLink&amp;filter[team_id]=<team-id></team-id>

Périodes

Les périodes constituent un cas légèrement particulier, dans la mesure où il est nécessaire de spécifier à la fois la inserted_at datetime Valeur, et l’opération à appliquer à cette datetime. Par conséquent, les requêtes de période comporteront toujours deux éléments de filtre, dont chacun sera lui-même imbriqué à côté d’un paramètre [inserted_at].

Les opérations prises en charge incluent :

  • gt : supérieur à
  • gte : supérieur ou égal à
  • lt : inférieur à
  • lte : inférieur ou égal à

Exemples de périodes

ScénarioChaîne de requête
Tous les enregistrements du journal d’audit à partir d’une date.?filter[inserted_at][op]=gt&amp;filter[inserted_at][value]=2019-03-25T00:00:00Z
Tous les fichiers chargés par un Utilisateur spécifique jusqu’à une date.?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</user-id>