Metadata-Version: 2.0
Name: kinto-changes
Version: 0.4.0
Summary: Plug Kinto notifications to a collection endpoint.
Home-page: https://github.com/kinto/kinto-changes
Author: Mozilla Services
Author-email: services-dev@mozilla.com
License: Apache License (2.0)
Keywords: kinto changes notification
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Requires-Dist: kinto (>=4.0.0)

=============
Kinto Changes
=============

.. image:: https://img.shields.io/travis/Kinto/kinto-changes.svg
        :target: https://travis-ci.org/Kinto/kinto-changes

.. image:: https://img.shields.io/pypi/v/kinto-changes.svg
        :target: https://pypi.python.org/pypi/kinto-changes

.. image:: https://coveralls.io/repos/Kinto/kinto-changes/badge.svg?branch=master
        :target: https://coveralls.io/r/Kinto/kinto-changes

**kinto-changes** tracks modifications of records in Kinto and stores the
collection timestamps into a specific bucket and collection.

This plugin is useful to allow for polling on several collections
changes with one HTTP request.


Install
-------

::

    pip install kinto-changes

Setup
-----

In the `Kinto <http://kinto.readthedocs.io/>`_ settings:

::

    kinto.includes = kinto_changes

    kinto.event_listeners = changes
    kinto.event_listeners.changes.use = kinto_changes.listener


Now everytime a record is modified, the list of current timestamps is available
at ``GET /v1/buckets/monitor/collections/changes/records``.


Filter collections
''''''''''''''''''

It is possible to choose which collections are monitored:

::

    kinto.event_listeners.changes.collections = <list of URIs>

For example, to be notified of record updates in the ``certificates`` collection,
or every collections of the ``settings`` bucket:

::

    kinto.event_listeners.changes.collections =
        /buckets/blocklists/collections/certificates
        /buckets/settings


Permissions
'''''''''''

By default the list of timestamps is readable by anonymous users (``system.Everyone``).
But the list of authorized principals can be specified in settings:

::

    kinto.event_listeners.changes.principals =
        system.Authenticated
        group:admins
        twitter:@natim


Advanced options
''''''''''''''''

By default, the list of timestamps is available in the ``changes`` collection in
the ``monitor`` bucket. This can be specified in settings:

::

    kinto.event_listeners.changes.bucket = monitor
    kinto.event_listeners.changes.collection = changes


The changes entries will have a ``host`` attribute, that can be used to
distinguish changes from several Kinto instances.

.. code-block :: ini

    kinto.event_listeners.changes.http_host = website.domain.tld

By default, it will rely on the global setting ``kinto.http_host``.

Changelog
=========


0.4.0 (2016-11-07)
------------------

- Add the plugin version in the capability (#20)
- Add collections in the capability (#18)
- Add a specific setting to override global ``http_host`` value (#24)

0.3.0 (2016-05-19)
------------------

- Update to ``kinto.core`` for compatibility with Kinto 3.0. This
  release is no longer compatible with Kinto < 3.0, please upgrade!


0.2.0 (2016-04-25)
------------------

- Addition of the changes capability

0.1.0 (2015-12-22)
------------------

- Initial code.
- Bucket and collection name configuration.
- Changes read permissions configuration.
- Selection of buckets and collections to follow configuration.



