Metadata-Version: 1.1
Name: kinto-changes
Version: 3.1.1
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)
Description: 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** shows the list of collection timestamps, allowing to poll changes
        on several collections with one HTTP request.
        
        
        Install
        -------
        
        ::
        
            pip install kinto-changes
        
        Setup
        -----
        
        In the `Kinto <http://kinto.readthedocs.io/>`_ settings:
        
        .. code-block :: ini
        
            kinto.includes = kinto_changes
        
            # List of buckets/collections to show:
            kinto.changes.resources = /buckets/settings
                                      /buckets/blocklists/collections/certificates
        
        
        Cache Control
        '''''''''''''
        
        Like `cache control in Kinto collections <https://kinto.readthedocs.io/en/stable/api/1.x/collections.html#collection-caching>`_, it is possible to configure ``Cache-Control`` headers via some settings:
        
        .. code-block:: ini
        
            kinto.monitor.changes.record_cache_expires_seconds = 60
        
        If cache busting query parameters then responses can be cached more agressively.
        If the setting below is set then a different cache control expiration will be set:
        
        .. code-block:: ini
        
            kinto.monitor.changes.record_cache_maximum_expires_seconds = 3600
        
        
        Advanced options
        ''''''''''''''''
        
        **host**
        
        The changes entries will have a ``host`` attribute, that can be used to
        distinguish changes from several Kinto instances.
        
        .. code-block :: ini
        
            kinto.changes.http_host = website.domain.tld
        
        By default, it will rely on the global setting ``kinto.http_host``.
        
        
        **_since sanetizing**
        
        When reaching the monitor/changes collection, if the provided ``_since`` query parameter
        is too old, we redirect the clients to the full list of changes (ie. without ``_since``).
        
        Set this setting to control the maximum age allowed. Set to ``-1`` to disable redirection.
        
        .. code-block :: ini
        
            kinto.changes.since_max_age_days = 21
        
        
        Endpoints
        ---------
        
        * ``GET /v1/buckets/monitor/collections/changes/records``.
        
        Returns the list of timestamps.
        
        * ``GET /v1/buckets/{bid}/collections/{cid}/changeset?_expected={timestamp}``.
        
        Returns the following response for the collection:
        
        - ``changes``: list of records, optionnally filtered with ``?_since="{timestamp}"``
        - ``metadata``: collection attributes
        - ``timestamp``: records timestamp
        
        Note: the ``_expected={}`` querystring parameter is mandatory but can contain any
        arbitrary value (used for cache busting).
        
        
        Changelog
        =========
        
        3.1.1 (2020-09-28)
        ------------------
        
        **Bug fixes**
        
        - Bypass storage when redirecting on old ``_since``
        
        
        3.1.0 (2020-09-22)
        ------------------
        
        **New features**
        
        - Redirect clients whose ``?_since`` value is too old (21 days by default)
        - Add support for monitor/changes in changeset endpoints (fixes #173)
        
        **Bug fixes**
        
        - Fix validation rule for ``_since`` query parameter
        
        
        3.0.2 (2020-06-02)
        ------------------
        
        **Bug fixes**
        
        - Include tombstones in changeset endpoint (fixes #175)
        
        
        3.0.1 (2020-05-26)
        ------------------
        
        - Sort changes explicitly by `last_modified` descending
        
        3.0.0 (2020-04-20)
        ------------------
        
        **Breaking changes**
        
        - Switch changeset timestamp from ETag to integer (#168)
        
        
        2.2.0 (2020-03-26)
        ------------------
        
        **New features**
        
        - Add changeset endpoint (#154)
        
        **Bug fixes**
        
        - Fix crash with ``If-None-Match: *`` (fixes #158)
        
        
        2.1.1 (2019-12-23)
        ------------------
        
        **Bug fixes**
        
        - Use explicit resource timestamp from DB instead of event payload
        
        
        2.1.0 (2019-02-20)
        ------------------
        
        **New feature**
        
        - Send ``Cache-Control`` headers if cache busting query parameters or concurrency control request headers are sent (#66)
        
        2.0.0 (2019-01-15)
        ------------------
        
        **Breaking changes**
        
        - Requires Kinto >= 12
        
        
        1.3.0 (2018-10-15)
        ------------------
        
        **New feature**
        
        - Add ability to configure cache control headers (#47)
        
        
        1.2.1 (2018-09-17)
        ------------------
        
        **Bug fixes**
        
        - Don't do anything during a ``migrate`` command (fixes #43).
        
        
        1.2.0 (2018-09-06)
        ------------------
        
        **New feature**
        
        - Events are now generated on the monitor/changes collection (#41).
        
        
        1.1.1 (2018-04-17)
        ------------------
        
        **Internal changes**
        
        - Get rid of six
        
        
        1.1.0 (2017-11-16)
        ------------------
        
        **Breaking changes**
        
        - Upgrade to Kinto 7
        
        
        **Bug fixes**
        
        - Disable reify to always get the most accurate timestamp. (#36)
        
        
        1.0.0 (2017-02-14)
        ------------------
        
        **Bug fixes**
        
        - Accessing the monitoring collection when no changes occured don't fail anymore (fixes #23)
        - The timestamps shown in the monitoring endpoint are now **exactly equal** (never superior anymore)
          to the timestamps of the monitored collections.
        
        **Breaking changes**
        
        * The change endpoint **location is now hard-coded** (``/buckets/monitor/collections/changes/records``)
          and cannot be configured.
        * The permissions principals cannot be specified anymore.
          The change endpoint is now **always public**.
        * The ``monitor`` bucket and ``changes`` collection are not required anymore and
          are not created anymore.
        * ``POST`` and ``DELETE`` are not supported on the changes endpoint anymore.
        * Individual entries (eg. ``/buckets/monitor/collections/changes/records/{id}``)
          cannot be accessed anymore.
        * The listener was dropped. Configuration must be changed:
        
        Before:
        
        .. code-block :: ini
        
            kinto.event_listeners = changes
            kinto.event_listeners.changes.use = kinto_changes.listener
            kinto.event_listeners.changes.http_host = website.domain.tld
            kinto.event_listeners.changes.collections = /buckets/settings
                                                        /buckets/blocklists/collections/certificates
        
        Now:
        
        .. code-block :: ini
        
            kinto.changes.http_host = website.domain.tld
            kinto.changes.resources = /buckets/settings
                                      /buckets/blocklists/collections/certificates
        
        
        0.5.0 (2017-01-16)
        ------------------
        
        - Do not force the timestamp of monitored entries (#27)
        
        
        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.
        
        
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 :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
