|
|
Introduction
Pull synchronization allows a feed root path to be pull from an other atom store or "store like" data. In some cases, the store may be a backup represented by an introspection document and a set of feeds and associated data. In other cases, the the store is an actual APP implementation on the web.
Required Information
A pull synchronization process requires three pieces of information:
- a feed root path for the part of the local store being synchronized
- a uri of the introspection document of the remote store to synchronized the local store against
- a base uri of the remote store feeds to calculate relative paths for the local store
If the base uri is not specified, the uri of the introspection document is used as the base uri value.
Currently, only the first workspace is processed for synchronization. In the future, the workspace will be selectable.
The remote store should require authentication. If this is the case, the username, password and authentication scheme is required. Currently, only BASIC authentication is supported.
A pull synchronization process may be marked as a mirror to ensure that only those feeds and entries in the remote store exist in the local store. That means that feeds and entries that do not exist in the remote store are deleted.
The Synchronization Process
The remote store is the current pull synchronization target. For this target, the process start with the introspection document being retrieved from the uri of the introspection document and selection of the first workspace. For each collection in that workspace, the following process is used:
- The base URI is used to calculate a relative path of the feed from the remote store.
- The relative path is used to to calculate a local path by concatenation with the feed root path
- If the feed does not exist, the feed is created with the same atom:id value.
- The remote feed is retrieved via the collection's 'href' attribute value and the following process is used:
- The feed's metadata is synchronized
- For each entry, the entry is created or updated as appropriate. If the entry is a media entry, the entry is created via the media object.
- Optionally, any entry not in feed is deleted.
- Optionally, any feed not in the workspace is deleted.
Sign in to add a comment
