Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Background

To share a folder in G Suite you can

  1. Explicitly share by inviting people on your enterprise to the folder.
  2. Implicitly share by creating content within a shared folder or enabling a link public to your enterprise.

Users can then move shared content to any unshared folder in their drive. Once moved to their drive, it is visible by SkySync.

SkySync interprets G Suite sharing as follows

  1. If you are the sharer, both the shared folder and its contents, including implicitly shared items with the sharer, will be seen as shared by you.
  2. If you are the sharee and move a shared folder to your drive, both the shared folder and its contents will be seen as shared to you, except content explicitly shared by you.

SkySync transfers G Suite shared content as follows

During transfer, while excluding shared content, including both initial transfer and subsequent transfers (e.g. events within that shared folder):

  1. The sharer's job will be responsible for transferring all content and permissions on the shared folder hierarchy.
  2. The sharee's job will skip the folder shared to them (and its hierarchy).

Example

You have two users, UserA and UserB in both G Suite and Box.

You setup a SkySync user mapping copy job to transfer their G Suite drives over to Box. The job has 

Limitations

...

Terminology

TermWhat it means
sharerThe user that shares content
shareeThe user whose content is shared with
assign permissionssame as "share content"
disinheritanceto override the parent folder's permissions
explicit sharingto add permissions using the sharee's account directly
implicit sharingto share folder to the enterprise using a link or create content within a shared folder

On Sharing

SkySync transfers content and migrates permissions in that sequence. This is mainly because platforms expose shared content differently. In other words, we transfer content first, then apply permissions after the content is transferred. Applying permissions can have unintended consequences at the destination depending on how the destination exposes shared content after the destinations are applied. This is why we have the ability to exclude shared content from the source so that content is not duplicated on the destination after permissions are applied.

Let me give you some background on Box and Google folder sharing before diving into how SkySync interprets and transfe.

Box

In Box, when a sharer shares a folder with someone, the folder appears on the sharee's Box root (once the invite is accepted manually or automatically). Subfolders within that folder is owned by the sharer. You can add new sharees to other subfolders but cannot modify the permissions that are already there. This is called "disinheritance"; the ability to override the parent folder's permissions. In other words, Box does NOT support disinheritance.

G Suite

In G Suite, when a sharer shares a folder with someone, the sharee will either have a link to access the content with or, if explicitly shared, shows up in their "Shared With Me" bucket. The sharee can then choose to "Add to My Drive". The shared folder can be dragged to any folder within the sharee's "My Drive", including both private or other shared folders. The sharee can even move the shared folder to a folder they are sharing with the sharer. This means that the sharer can then have the folder they shared in their "My Drive" in multiple places. Content created on a shared folder is, unlike Box, owned by the creator and considered shared to the sharer of the folder. The sharer of the parent folder can also move the subfolder created by the sharee out of the folder into a private folder in their drive. This will cause the subfolder to be orphaned on the sharee's side. Since the sharee owns the subfolder he can search for it but it is no longer in his "My Drive". Confused yet?

G Suite, unlike Box, supports full disinheritance. This means that the sharee can create a subfolder on a shared folder then remove the sharer from its permission list. The sharer will no longer see that subfolder in his folder. The sharee will.

How SkySync Interprets Shared Folders

Box

In Box, since sharing is limited to the root and all content within a shared folder is owned by the sharer, SkySync behaves as expected; the sharer DOES NOT see the folder and its content as shared, the sharee DOES see the folder and its content as shared.

G Suite

In G Suite, things are not as straightforward. Shared behavior is driven by an application setting called GoogleDrive.AllowSharedWithMe (set to false by default) and based on how the folder was shared in the first place and whether it is already inheriting its parent folder's sharing.

Lets walk through by using an example.

We have two users, Juan and Lynn. In SkySync, we open two connections, one for each account, respectively.

Juan has two folders in his "My Drive": JuanFolder1 and JuanFolder2. 

Lynn has one folder in her "My Drive": LynnFolder1

Juan shares JuanFolder1 with Lynn explicitly and shares JuanFolder2 as a link to the entire enterprise. Lynn adds the two shared folder into her "My Drive"

Lynn shares LynnFolder1 with Juan explicitly. Juan adds LynnFolder1 into his "My Drive".

In SkySync, using Juan's account, JuanFolder1, JuanFolder2 are not considered shared and LynnFolder1 is considered shared. Using Lynn's account, JuanFolder1, JuanFolder2 are considered shared and LynnFolder1 is not considered shared.

So far so good...

Lynn creates a subfolder: JuanFolder1/SubfolderByLynn and moves JuanFolder2 to JuanFolder1.

Juan moves LynnFolder1 to JuanFolder1.

In SkySync, using Lynn's account and regardless of GoogleDrive.AllowSharedWithMe value:

  1. JuanFolder1, JuanFolder1/LynnFolder1, JuanFolder1/JuanFolder2 and JuanFolder1/SubfolderByLynn are all considered shared. This keeps consistency with Box's behavior.

In SkySync, using Juan's account:

  1. When GoogleDrive.AllowSharedWithMe is false, JuanFolder1, JuanFolder1/SubfolderByLynn are not considered shared, JuanFolder1/LynnFolder1 and JuanFolder1/JuanFolder2 are considered shared.
  2. When GoogleDrive.AllowSharedWithMe is true, JuanFolder1, JuanFolder1/JuanFolder2, JuanFolder1/SubfolderByLynn and JuanFolder1/LynnFolder1 are not considered shared.

LynnFolder1 is considered a "shared with me" container thus its share state is on the sharer's side is driven by GoogleDrive.AllowSharedWithMe. The issue is, from Juan's standpoint, we cannot determine whether LynnFolder1 is also located somewhere else on Lynn's drive. The flag gives you the opportunity to decide whether to consider it shared or not so that it can be included or excluded on Juan's transfer job.

JuanFolder2 is a bit more problematic. Even though Juan owns it and it is not shared with him, the folder has two parents, one of which is a folder Juan shares. So we consider it a "shared with me" folder to give you the opportunity to decide whether to consider it shared or not so that it can be included or excluded on Juan's transfer job.

The risk with using GoogleDrive.AllowSharedWithMe is you can either end up with skipped transfers or duplicate transfers because "shared with me" items most likely have multiple parents within the scope of the sharer's account.