Skip to main content
All CollectionsPermissions
File Storage Access Control List (ACLs)
File Storage Access Control List (ACLs)

Learn how to manage File Storage ACLs with Merge's unified API

Updated over a week ago

Overview

An ACL (Access Control List) is a security feature used in systems (e.g., networking, file systems, databases) to define rules for what users or systems can access specific resources and what actions they can perform on them.

Key Components of an ACL in Merge's File Storage API

  1. The subject requesting access: Users or Groups

  2. The Object to be Accessed: Files or Folders

  3. The permissions allowed: Read, Write, Owner

How to determine file or folder access

  1. Fetch the file(s) or folder(s) of interest: GET /files and GET /folders

  2. Use the permissions array: File.permissions and Folder.permissions which represents a user's or group's access to a File or Folder.

  3. Determine Users with access provisioned individually (not via a group): “user” in the permissions object will be populated with the Merge user UUID and “type” will equal “USER”

  4. Determine groups with access: “group” in the permissions object will be populated with the Merge group UUID and “type” will equal “GROUP”

  5. Determine the users with access via a group. For each group in the permissions array, GET /groups/{id}. See the array of users that are members of the group: group.users. Additionally, see the array of child groups that are members of the group: group.child_groups. GET /groups/{id} to see the members of the child group. This process must be repeated until child_groups is empty

How to determine available user actions

The Merge permissions.roles array indicates the permissions that a group or user has for a file or folder: Read, Write or Owner

Considerations

Enabling webhooks allows permission changes to be reflected in real-time. This function is only supported by Google Drive and Box. For Sharepoint, OneDrive and Dropbox, permissions will be updated based on your sync frequency plan.

Did this answer your question?