About SYNC ---------- Sync implements an HTTP server that allows clients to backup data. Envisioned use-cases are the creation of backups for Taler wallets and (GnuPG) key rings and other small but essential sensitive information. Accountability: =============== Client accounts are identified by a public key. For each client, at most one backup can be stored at any given point in time. To create an account, the service may require payment using GNU Taler when the first upload is attempted. Availability: ============= The Sync service may impose a limit on the maximum size of the backup that is supported. The /terms API lists the specific terms of service, including the maximum size and the payment required for a year of backup service. Integrity: ========== All uploads must be signed with the respective private key of the account. Clients must know their public key to download the latest backup. Confidentiality: ================ Clients are responsible for confidentiality and key management. All data uploaded should be encrypted by the client first. For key management, please consider Anastasis. Consistency: ============ Uploads that replace an existing backup must acknowledge the previous version by including the hash of the previous version in the backup request. This ensures that multiple clients working on the same account never accidentally overwrite data from another client. Usability: ========== Sync uses a simple REST-based API documented at https://docs.taler.net/. Operation: ========== Sync does at this time not include HTTPS support. While this could be trivially added, we expect Sync to be run behind a reverse proxy that terminates TLS. At this time, Sync only works with a Postgres database. Other database backends could easily be written in the future. Dependencies ============ See INSTALL for generic installation instructions. In addition, Sync requires GNUnet, Taler Exchange, and Taler Merchant libraries. If these are installed in a non-standard place, use the configure script options --with-gnunet=DIR, --with-exchange=DIR, and --with-merchant=DIR, respectively. The following are likewise required: libmicrohttpd --with-microhttpd=DIR PostgreSQL --with-postgresql=PATH-TO-PG-CONFIG Other non-essential dependencies are indicated by --with-FOO in the "./configure --help" output. License: ======== Sync is released under the Affero GPL v3 or later. The primary source code is maintained at https://git.taler.net/sync.git by the GNU Taler team.