Page tree

How does Project Sync work?

Project Sync is a desktop application, built using Electron, which runs on a Mac or Windows desktop computer and connects to a Chorus server. It runs in the  background at all times, and monitors folders locally for changes, while also listening for new changes on the Chorus server.

When files or folders are changed in Chorus, they are synchronised to the home directory of the user, into a folder named "Chorus". If files or folders are added, edited or deleted on the desktop, those changes are also pushed to Chorus. If multiple users are sharing access to the same files and folders in Chorus, then changes made by one user will also propagate to other users.

Does Project Sync support SSO (e.g. SAML2?)

Yes. Project Sync offers the same login options as Chorus in a web browser. The process of authenticating is completed on initial startup, when the user runs Project Sync for the first time. If SSO is required, a web browser pop-up is used to complete this stage of authentication.

Where does Project Sync store users' credentials?

Everything that Project Sync does is performed using an API key belonging to the user that authenticates with Chorus; the API key is created on the first startup and then stored. The user's credentials are never stored on the local device. Project Sync stores the API key in the macOS Keychain, or in the Credentials Vault on Windows.

Note: if the API key is removed in Chorus, this will log out the Project Sync instance using that key.

How much bandwidth will Project Sync use?

Each file that is added or edited will be uploaded to Chorus, and any changes made in Chorus will result in a download to the desktop devices that have access to that content. The total bandwidth consumed is approximately the sum of uploads and downloads, but there will also be an additional overhead for API communications which take place prior to synchronization.

Project Sync does not use peer-to-peer or LAN communications between clients.

Which TCP ports does Project Sync use?

Project Sync uses HTTPS, port 443. There are no other ports used, and no inbound connections are required for Project Sync to function.

How are updates applied?

New builds are hosted by Third Light at https://updates.thirdlight.com/. Project Sync checks for new builds at startup and when the screen is unlocked. When a new build is found, Project Sync alerts the user. If the user agrees to the update, the new build is then downloaded and installed, and Project Sync restarts automatically.

Note: if the Project Sync build is too old for the server version of Chorus, for example, after a Chorus update has been installed, then the user will be required to update before Project Sync can be used again.

Can Project Sync be deployed centrally on Windows?

There is no option to deploy Project Sync centrally at present. We are planning to support MSI-style installation packages in a future release.

What permissions or privileges does Project Sync use?

Project Sync runs as the user that is logged in. During installation on macOS, the user will be prompted for their admin password in order to move Project Sync to the Applications folder.

What data is collected or shared with Third Light?

Project Sync uses API keys, which are instrumented to count uploads, downloads and API request volumes to assist Third Light with capacity planning and licensing. 

If Project Sync crashes or encounters an error, it will automatically report the details of the fault to Third Light. This report includes:

  1. Chorus user details (email address, username and ID)
  2. Installation ID
  3. Chorus URL
  4. Proxy type (e.g. HTTP, SOCKS or none)
  5. User’s hostname
  6. User’s OS details
  7. Version details
  8. Stack trace from the Project Sync application
  9. Error specific details, which may include: file/folder paths, item IDs, Chorus API request and response details (any password or API key fields are censored), URL of any HTTPS request made internally been parts of Project Sync

To avoid asking users to complete low-level tasks, Project Sync also has the option to produce Support ZIP files which contain low level information about the services and communications between the client and Chorus itself. These ZIP files assist us with debugging and help us to answer support tickets effectively, but do not contain any sensitive information (e.g. credentials). The contents of the Support ZIP files can be inspected before being sent to Third Light. The contents are as follows:

  1. A file containing installation specific information
    1. Chorus user’s username, email address and ID.
    2.  URL of the Chorus Site
    3. Unique ID for the installation (can be used for seeing all errors related to the installation)
    4. Version of the Application and its bundled dependencies
    5. Operating System information: name and version, hostname.
  2. A dump of the layout of the file and folder structure inside the local Chorus folder:
    1.  Names, sizes and file system IDs of the files and folders (but no file contents)
  3. A dump of Project Sync’s database:
    1. A history of syncing that has taken place
    2. The structure of files and folders in the user’s Project Sync folder, including names, IDs, size and revision (but no file contents)
  4. A dump of the process’s various stacks, excluding user- or system-specific data.
  5. Log files, which can include file/folder paths and Chorus IDs, Chorus version, URL and any detected proxy information (excluding passwords).

Does Project Sync support proxy servers?

Project Sync will use your operating system-wide proxy server, including HTTPS or SOCKS5-based proxy servers.

In macOS you can set system-wide proxy server settings via the System Preferences > Network menu (external documentation: https://support.apple.com/en-gb/guide/mac-help/mchlp2591/mac).

In Windows, you can set the system-wide proxy settings via the Settings app (external documentation: https://www.dummies.com/computers/operating-systems/windows-10/how-to-set-up-a-proxy-in-windows-10/).

Which operating system versions are supported?

Project Sync is available for Windows 7 and later (64-bit) and for macOS 10.16 and later. Windows 7 support will be retired when Microsoft withdraw support for this version.


How do I uninstall Project Sync?

Close Project Sync in the task bar. This stops Project Sync running.

On macOS, delete "Project Sync" in the Applications folder. 

On Windows, you may need to override file permissions as follows:

  1. Right-click Chorus folder in Windows Explorer
  2. Select ‘Properties’
  3. Go to the ‘Security’ tab
  4. Click ‘Advanced’
  5. Tick ‘Replace all child object permission entries with inheritable permission entries from this object’
  6. Click ‘OK’ on the modal
  7. Click ‘Yes’ on the alert
  8. Click ‘OK’ on the ‘Chorus Properties’ modal

Next, right-click the Start button and click Control Panel. Go to Programs and Features (if your Control Panel is in Category view, go to Uninstall a Program). Find the program you want to uninstall, click on Project Sync to select it, and then click Uninstall.

Is there a Linux or a CLI version?

Not currently, no. We would be interested in hearing from you if you require one. At the moment Linux lacks some of the file events we need to make an efficient sync possible. 

What happens if the network goes down during a sync?

Project Sync should just continue next time the network comes up again. Please let us know if this isn’t the case.

How do I change to using a different server, or fully reset Project Sync?

  1. Close Project Sync in the task bar. This stops Project Sync running.

  2. Delete or rename the "Chorus" folder in your home directory. On Windows, you may need to override security settings on the Chorus folder, as explained above, under "How do I uninstall Project Sync?".

  3. Restart Project Sync from the Start Menu. You will be asked to login, and the Chorus folder in your home directory will be recreated.

  4. Wait for Project Sync to copy any files that it finds in your Private Space "Sync" folder in the Chorus web server. This might take a while, if there is a lot of data to copy back.

You are here: