destination_filtering

The destination filtering mechanism let you select a default behavior for every files and more specifically at publish time the volumes that will be delivered.

Filter Mechanism Description

A general boolean switch syncEverywhere in rsyncGlobalParameters tells the default behavior of the synchronization for every files:

{
    "_id": "rsyncGlobalParameters",
    "syncEverywhere": true
}

The default behavior can be overridden for each file, setting the syncEverywhere key to the desired boolean value directly on the files' records:

{
    "_id": "/filepath",
    "origin": "site1",
    "syncEverywhere": false
}

This won't synchronize this specific file anywhere. You can then specify the sites that will receive the file using the sync_<sitename> boolean switches:

{
    "_id": "/filepath",
    "origin": "site1",
    "sync_site4": true,
    "syncEverywhere": false
}

Using the same way, you can remove a site from the expected destinations specifying false in the sync_<sitename> key:

{
    "_id": "/filepath",
    "origin": "site1",
    "sync_site4": false
}

This will synchronize this file on every sites but site4.

Verify Waiting Lists

The tracker has 2 operations /api/listup and /api/listdown to evaluate and communicate to the agents the next elements to transfer. Get 10 elements to upload from source to target:

https://trackername.syncplanet.io/api/listup/source/target/10

Get 10 elements to download from source to target:

https://trackername.syncplanet.io/api/listdown/source/target/10

Notes

Depending on your synchronization setup, some sites may behave like hubs to other sites:

site1 -> site2 -> site3

This means that the site2 must get a file in order to transfer this file to site3. Therefore you must set the keys accordingly.

The mechanism was described in this issue.