A content management system can store a user's content library remotely from the user and provide access to the content library from a variety of client devices. Some content management systems may synchronize the content library across multiple client devices, such as when the user is associated with multiple devices or multiple users share at least a portion of the content library. A conventional content management system may treat synchronization passively and require a user to manually designate a content item for synchronization before the system synchronizes the content item across the user's devices and other users' devices sharing the content item. This can be onerous for the user and can lead to inconsistencies for her content library. For example, to synchronize the content item between two client devices, the user must upload changes made to the content item on a first client device to replace a previous version of the content item stored by the conventional content management system and download the changed content item to the second client device to replace the previous version of the content item stored on the second client device. If the user makes revisions to the content item stored on the second client device without first downloading the changed content item, the revisions made to the content item on the first client device may not be reflected in a version of the content item stored on the second client device, and vice versa. These difficulties can be exacerbated when the user is associated with additional client devices.
Another implementation of a content management system can use an active approach to synchronization and automatically update a content library across all client devices authorized by a user account. This design improves upon the passive, conventional content management system by alleviating the user of the burden of having to manually designate her content library for synchronization and separately manage synchronization for her multiple devices. A potential drawback to active or automatic synchronization techniques, however, can be less customization for apportioning the user account's content library across authorized client devices. One known approach for supporting “selective” synchronization (e.g., the capability of designating the exact content items of a content library to be synchronized within an automated synchronization scheme) relies entirely on the client device. Although client-side selective synchronization is viable in certain respects, it is an incomplete solution because synchronization is still limited to customization on a per device basis.