In this article
Overview
Use this Snap to retrieve the Share Permissions existing on a driveItem in a OneDrive or Shared Library (document library) location, at a given point in time. Each permission has a unique alpha-numeric case-sensitive ID.
Prerequisites
- A valid application in Azure Portal with appropriate permissions.
- A valid Microsoft OneDrive license.
- Read access to the folder/file mentioned in the Source Relative Path/ID.
Support for Ultra Pipelines
Works in Ultra Pipelines.
Limitations
None.
Known Issues
Snaps in the Microsoft OneDrive Snap Pack have an in-built retry mechanism for failing connections and requests; but, a high volume of requests from a client might reach the throttling threshold. In such scenarios, the Microsoft Graph limits further requests from that client for a period of time and returns an HTTP status code 429 (Too many requests), thereby causing the requests to fail. Hence, we recommend you to keep a check on the number of requests emanating from your client instance.
Snap Input and Output
Input/Output | Type of View | Number of Views | Examples of Upstream and Downstream Snaps | Description |
---|---|---|---|---|
Input | Document |
|
| A document containing the driveItem location details to retrieve the list of Share Permissions currently available on it. |
Output | Document |
|
| A document containing the list of Share Permissions existing on the selected driveItem. |
Snap Settings
Parameter Name | Data Type | Description | Default Value | Example |
---|---|---|---|---|
Label | String | Specify a name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your pipeline. | Get Share Permissions | Get Share Permissions |
Drive Type | Drop-down list | Required. Select a drive type from the following list of permitted drive types in this drop-down list (to locate driveItems and get their share permissions) and specify the corresponding details needed:
| OneDrive | documentLibrary |
User | String/Expression/Suggestion | Required for Drive Type options - OneDrive and All. Not needed for Drive and documentLibrary. Select a user from the suggested list of users to get the share permissions on a driveItem from that user's OneDrive location. The list of users displayed varies based on your access to their OneDrive locations. This option is meant for administrator users who are authorized to manage other users' drives, as well. | N/A | Snap Team:snap@snaplogic.net |
Shared Library | String/Expression/Suggestion | Required for Drive Type option - documentLibrary. Not needed for OneDrive, Drive, and All. Select a Shared Library from the suggested list of libraries to get the share permissions on the driveItem in that library location. The list of shared libraries displayed varies based on your access to them. This option is meant for users who have write access on both the source and target shared libraries. | N/A | NewSharedLibrary |
Drive | String/Expression/Suggestion | Required for all Drive Type options. Specify the name of the drive to get the share permissions on the driveItem in it. The suggestions for this field are based on the Snap account and the User or Shared Library selected. For the Drive Type Drive, specify/pass the ID of the drive to get the share permissions on a driveItem in it, typically from the upstream Snap. For the drive type All, select a drive from the OneDrive or a Shared Library drive. Specify the Source Relative Path/ID of the driveItem, next. | N/A | OneDrive |
Source Relative Path/ID | String/Expression | Required for all Drive Type options. Enter the relative path for the driveItem to get the share permissions, beginning with root:/. Alternatively, pass the item ID in this field. Relative Path and ID
| root:/ | /Pictures/Tour1/Image01.png |
Select Fields | String/Expression | Enter the list of different parameters, separated by a comma, that you want to retrieve for each Share permission existing on the selected driveItem. The Snap returns all the available information on the selected driveItem, if this field is left blank. | N/A | id, email, roles |
Number Of Retries | String/Expression | Specify an integer value to set the maximum number of reconnection attempts that the Snap must perform, in case of connection failure or timeout. | 0 | 3 |
Retry Interval (Seconds) | String/Expression | Enter, in seconds, the duration for which the Snap must wait between two reconnection attempts, until the number of retries is reached. | 1 | 2 |
Snap Execution | Drop-down list | Select one of the three following modes in which the Snap executes:
| Validate & Execute | Execute only |
Troubleshooting
<TBU>
Error | Reason | Resolution |
---|---|---|
Examples
Example 1: Retrieving Share Permissions on a Drive Item
This Pipeline demonstrates how you can retrieve the share permissions existing on a drive item. It assumes that you have configured your Azure application and the Snap accounts already. The Pipeline uses the following parameters.
Let us use a Create Folder Snap to create a folder in a OneDrive location and inspect its permissions.
Create Folder Snap |
---|
Output |
We connect a Get Shared Permissions Snap to this Snap to inspect the share permissions on the new folder. We can expect that the current user (Owner) has all permissions on the folder (read and write). In addition to these permissions, this Snap retrieves permissions that the folder inherits from its parent folder/driveItem. See its output below.
Get Share Permissions Snap |
---|
Output |
In this scenario, the driveItem (new folder) has not inherited any permissions from its parent item. We can use a Mapper Snap to view a simplified output that contains only fields that we want to analyze.
Mapper Snap |
---|
Output |
Example 2:
Working with Share Permissions in OneDrive
This Pipeline demonstrates how you can share an item and how we can get/update/delete the share permissions existing on a drive item. It assumes that you have configured your Azure application and the Snap accounts already. The Pipeline uses the following parameters.
We start with creating a new folder using the Create Folder Snap and then, share it with a recipient using Share Item Snap. Next, we update the share permissions for the item and delete them after use.
Create Folder Snap |
---|
Output |
To share the item, we need to define the type of share, the recipients, roles, scope of share, expiry period, and so on, depending on our need. If you have selected the Share Type as Invite, you can update the share permissions on the item later.
Share Item Snap | Output |
---|---|
After sharing the item, we use a Mapper to extract the Permission ID and the path of the shared item.
Mapper Snap |
---|
Output |
We pass this information to the Get Share Permissions Snap to fetch all the existing shared permissions on this folder (including the inherited share permissions).
Get Share Permissions Snap |
---|
Output |
Now, we pass these permission Ids retrieved to Update Shared Permissions Snap to change the permissions from read to write.
Update Shared Permissions Snap |
---|
Output |
Using the Update Share Permissions Snap, we have updated all the existing share permissions to write access on the driveItem. We can now retrieve these permissions and delete them as and when needed. To do this, we use another Mapper Snap to capture the updated permission IDs, relative paths and delete them using the Delete Share Permissions Snap.
Mapper Snap |
---|
Output |
Delete Shared Permissions Snap |
---|
Output |
This Snap deletes the share permissions on the driveItem and displays the result of the operation for each permission ID.
Downloads
Important Steps to Successfully Reuse Pipelines
- Download and import the Pipeline into SnapLogic.
- Configure Snap accounts as applicable.
- Provide Pipeline parameters as applicable.