{ "info": { "author": "Mozilla Services", "author_email": "services-dev@mozilla.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application" ], "description": "Syncto\n======\n\n|travis| |master-coverage| |readthedocs|\n\n.. |travis| image:: https://travis-ci.org/mozilla-services/syncto.svg?branch=master\n :target: https://travis-ci.org/mozilla-services/syncto\n\n.. |readthedocs| image:: https://readthedocs.org/projects/syncto/badge/?version=latest\n :target: http://syncto.readthedocs.org/en/latest/\n :alt: Documentation Status\n\n.. |master-coverage| image::\n https://coveralls.io/repos/mozilla-services/syncto/badge.png?branch=master\n :alt: Coverage\n :target: https://coveralls.io/r/mozilla-services/syncto\n\nSyncto is a server allowing you to store and retrieve Firefox Sync\nuser data attached to your Firefox account using a subset of the Kinto\nAPI in order to be able to use Kinto.js for that task.\n\n* `Online documentation `_\n* `Issue tracker `_\n\n\nCHANGELOG\n=========\n\nThis document describes changes between each past release.\n\n\n1.5.0 (2016-01-27)\n------------------\n\n**Protocol**\n\n- Make sure batch always return 200 except for 5xx errors. (#78)\n\n**Bug fixes**\n\n- Fix ``If-None-Match`` header format which doesn't take quote around the ``*`` parameter. (#76)\n\n**Internal changes**\n\n- Add a Dockerfile (#77)\n- Remove documentation warnings (#74)\n\n\n1.4.0 (2015-11-17)\n------------------\n\n- Upgraded to *Cliquet* 2.11.0\n\n**New Features**\n\n- Pass User-Agent header to sync. (#68)\n- Add trusted certificate pinning support. (#72)\n\nSee also `*Cliquet* changes `_\n\n\n1.3.0 (2015-10-27)\n------------------\n\n- Upgraded to *Cliquet* 2.9.0\n\n**Protocol**\n\n- Client-state id should now be provided through the bucket id in the\n URL (#62)\n\n\n1.2.0 (2015-10-22)\n------------------\n\n- Send ``Cache-Control: no-cache`` header (#54)\n- Make sure collection_list return an empty list (#56)\n\n\n1.1.0 (2015-10-14)\n------------------\n\n- Do not install postgresql dependencies by default.\n- Add statsd metrics on SyncClient response status_code. (#49)\n- Handle the new Firefox Sync sort=oldest parameter. (#46)\n- Rename ids to in_ids to reflect the Kinto protocol. (#50)\n- Make sure Next-Page header keeps QueryString parameters. (#47)\n- Add a Token server heartbeat. (#44)\n- Remove the not accurate Total-Records header when paginating. (#43)\n- Expose the now deprecated cliquet.batch_max_requests settings. (#48)\n\n\n1.0.0 (2015-10-06)\n------------------\n\n- First implementation of Syncto server.\n- Connection with Token server and Sync servers.\n- Encrypted credentials caching (#30, #31)\n- Collections are Read-only by default\n- Write permission on collection can be configured.\n- Statsd monitoring for backends calls.\n- Convert Syncto requests headers to Firefox Sync ones.\n- Convert Firefox Sync headers to Syncto ones.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://syncto.readthedocs.org/", "keywords": "web services", "license": "Apache License (2.0)", "maintainer": "", "maintainer_email": "", "name": "syncto", "package_url": "https://pypi.org/project/syncto/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/syncto/", "project_urls": { "Homepage": "https://syncto.readthedocs.org/" }, "release_url": "https://pypi.org/project/syncto/1.5.0/", "requires_dist": [ "PyNaCl (>=1.0,<1.1)", "cliquet[monitoring] (>=2.15,<2.16)", "hkdf (==0.0.3)", "ndg-httpsclient", "pyasn1", "pyopenssl", "syncclient (>=0.8,<0.9)", "waitress (>=0.8,<0.9)" ], "requires_python": "", "summary": "Read Firefox Sync server using Kinto API.", "version": "1.5.0" }, "last_serial": 1929158, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "714ee8fb9e61c68ea5a88ded6aa334a4", "sha256": "7fea38f8a33bfdccc239ed755e377b421baeb59ff567d463e2d60dec53098a31" }, "downloads": -1, "filename": "syncto-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "714ee8fb9e61c68ea5a88ded6aa334a4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 21120, "upload_time": "2015-10-06T22:25:52", "url": "https://files.pythonhosted.org/packages/5f/c1/87155c31f8a9b40ce1e6a4189a4835ebc16e1423c1b42e38ea6f3c6bb394/syncto-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69243b99236d0fcf5ce4eede6091eabd", "sha256": "9fd130bb194da1b4ad2a9e1ea027c1293a1de33b32bf340b368584887eb2f6eb" }, "downloads": -1, "filename": "syncto-1.0.0.tar.gz", "has_sig": false, "md5_digest": "69243b99236d0fcf5ce4eede6091eabd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15904, "upload_time": "2015-10-06T22:25:48", "url": "https://files.pythonhosted.org/packages/4d/10/d52ea1dae01826e07a3455120f99005d2c879cce472aadb0b98a26571ef8/syncto-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "682647308b058b5b695fdda4e9f1293e", "sha256": "9072d0d7f6a89f536de3568019de3acf03a8d96a443dfb6fb01d48e86a3eb2c5" }, "downloads": -1, "filename": "syncto-1.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "682647308b058b5b695fdda4e9f1293e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23764, "upload_time": "2015-10-14T14:39:14", "url": "https://files.pythonhosted.org/packages/3f/8d/9501556aa577e0dcd114de71e19ca16a846283e852c70906caa165c45e28/syncto-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "519abe817e324a989c5c368fe4d7f57e", "sha256": "3be80eefb2bdde1cfdca531f1277ba0c8c252885f6b424c3a630e139c9405ed9" }, "downloads": -1, "filename": "syncto-1.1.0.tar.gz", "has_sig": false, "md5_digest": "519abe817e324a989c5c368fe4d7f57e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18047, "upload_time": "2015-10-14T14:39:18", "url": "https://files.pythonhosted.org/packages/76/7c/b509a56554aea59021aa5dc7cba83956ff7e31907a569c05c0f2a9c6233e/syncto-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "ef12135631792d1f875adf126913983a", "sha256": "b53e9a7fcb8019f995820b5be8e9234a550253827ee94eb001c8c7195e71cdba" }, "downloads": -1, "filename": "syncto-1.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "ef12135631792d1f875adf126913983a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23966, "upload_time": "2015-10-22T12:37:15", "url": "https://files.pythonhosted.org/packages/4c/c1/c42351f15b63c2a7a3a2b8190778af81b0e3a306d750c1f37a0fdfe93b15/syncto-1.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e86e2861523b484d6c4e83006da71b7c", "sha256": "c55f9b595c0a6451762dc239855472cc8fd3f038130ae288e3f510e5c2684243" }, "downloads": -1, "filename": "syncto-1.2.0.tar.gz", "has_sig": false, "md5_digest": "e86e2861523b484d6c4e83006da71b7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18341, "upload_time": "2015-10-22T12:37:19", "url": "https://files.pythonhosted.org/packages/8a/7b/268fa0eedae9855e72af6dcb332410457ed0d169501ec24dc3058081bbb6/syncto-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "04ad6a88b97273b27c719ca977ea9a88", "sha256": "e4175336bff7716633b8f3457ec01b1914aaf35ce47ed7c24618427971c0c452" }, "downloads": -1, "filename": "syncto-1.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "04ad6a88b97273b27c719ca977ea9a88", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 24686, "upload_time": "2015-10-27T15:05:10", "url": "https://files.pythonhosted.org/packages/4f/ed/935cbcbcc2843d68600f81ecba232032a38ff8072c4efa9a6c162613f314/syncto-1.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed0b4f97d2148ac2a81c5a6e41da5dd9", "sha256": "46ba9498dcd7c724390e4cdb2e86afcb82d65641ecad370719e0f80bcb54842a" }, "downloads": -1, "filename": "syncto-1.3.0.tar.gz", "has_sig": false, "md5_digest": "ed0b4f97d2148ac2a81c5a6e41da5dd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18961, "upload_time": "2015-10-27T15:05:20", "url": "https://files.pythonhosted.org/packages/c9/8f/3c38e6cf4b3e24f4da723b0b6fa9a032f07d50d7c3f462a379a5d98cc8f9/syncto-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "5ef25b5dca74967ed9806c6785669509", "sha256": "65f86f877cbce1db8125d7e9cd8665540c5a4290df3add34b5be8c66449d9e7c" }, "downloads": -1, "filename": "syncto-1.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5ef25b5dca74967ed9806c6785669509", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 25740, "upload_time": "2015-11-18T08:03:36", "url": "https://files.pythonhosted.org/packages/a8/ae/3d5fc0bb25dfe99b556223587dac0f128745d8b78e1dc5ec43f150e4cfba/syncto-1.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3dd0aa8ca0b81f72d17d59174ce8e07", "sha256": "42a9435924212a4ef05831fcf320add2842d81f2a05fa8d4303b8b5e71abd86f" }, "downloads": -1, "filename": "syncto-1.4.0.tar.gz", "has_sig": false, "md5_digest": "a3dd0aa8ca0b81f72d17d59174ce8e07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19948, "upload_time": "2015-11-18T08:03:58", "url": "https://files.pythonhosted.org/packages/79/b8/10e3b3c1b20e3723901c2cc96eb44538e68432fcea81e77401e846020260/syncto-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "a072fef0e3dbe50c4cd8a13900566dfd", "sha256": "52b3f7382497c69945cefcaa732ef0c293e08307eb189f085cb58335b9c72d11" }, "downloads": -1, "filename": "syncto-1.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a072fef0e3dbe50c4cd8a13900566dfd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26209, "upload_time": "2016-01-29T11:30:25", "url": "https://files.pythonhosted.org/packages/9e/52/a246c179f8bcb1fc201e10dcd0afc8a375f4b1b2bf13239ad34b57dc443c/syncto-1.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "00b5e9cf8e66cd049f6045977df13224", "sha256": "4741a4296992557db63007b16ad27003a98fc7e38541edc3300ecdd104663bc8" }, "downloads": -1, "filename": "syncto-1.5.0.tar.gz", "has_sig": false, "md5_digest": "00b5e9cf8e66cd049f6045977df13224", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18662, "upload_time": "2016-01-29T11:14:56", "url": "https://files.pythonhosted.org/packages/e7/45/83f9117b8764af5374432822244e1a3d04e05e2d5ffbb339536f68d7e9a2/syncto-1.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a072fef0e3dbe50c4cd8a13900566dfd", "sha256": "52b3f7382497c69945cefcaa732ef0c293e08307eb189f085cb58335b9c72d11" }, "downloads": -1, "filename": "syncto-1.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a072fef0e3dbe50c4cd8a13900566dfd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26209, "upload_time": "2016-01-29T11:30:25", "url": "https://files.pythonhosted.org/packages/9e/52/a246c179f8bcb1fc201e10dcd0afc8a375f4b1b2bf13239ad34b57dc443c/syncto-1.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "00b5e9cf8e66cd049f6045977df13224", "sha256": "4741a4296992557db63007b16ad27003a98fc7e38541edc3300ecdd104663bc8" }, "downloads": -1, "filename": "syncto-1.5.0.tar.gz", "has_sig": false, "md5_digest": "00b5e9cf8e66cd049f6045977df13224", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18662, "upload_time": "2016-01-29T11:14:56", "url": "https://files.pythonhosted.org/packages/e7/45/83f9117b8764af5374432822244e1a3d04e05e2d5ffbb339536f68d7e9a2/syncto-1.5.0.tar.gz" } ] }