------------------
**Protocol**
- Allow buckets to store arbitrary properties. (239, 462)
- Delete every (writable) buckets using ``DELETE /v1/buckets``
- Delete every (writable) collections using ``DELETE /v1/buckets/<bucket-id>/collections``
- Clients are redirected to URLs without trailing slash only if the current URL
does not exist (656)
- Partial responses can now be specified for nested objects (445)
For example, ``/records?_fields=address.street``.
- List responses are now sorted by last_modified descending by default (434,
thanks ayusharma)
- Server now returns 415 error response if client cannot accept JSON response (461, mozilla-services/cliquet667)
- Server now returns 415 error response if client does not send JSON request (461, mozilla-services/cliquet667)
- Add the ``__lbheartbeat__`` endpoint, for load balancer membership test.
- Add the ``flush_endpoint``, ``schema`` and ``default_bucket`` to the capabilities
if enabled in settings (270)
Protocol is now in version **1.4**. See `API changelog`_.
**Breaking changes**
- ``kinto.plugins.default_bucket`` plugin is no longer assumed. We invite users
to check that the ``kinto.plugins.default_bucket`` is present in the
``includes`` setting if they expect it. (ref 495)
- ``kinto start`` must be explicitly run with ``--reload`` in order to
restart the server when code or configuration changes (ref 490).
- Errors are not swallowed anymore during the execution of ``ResourceChanged``
events subscribers.
Subscribers are still executed within the transaction like before.
Subscribers are still executed even if the transaction is eventually rolledback.
Every subscriber execution succeeds, or none.
Thus, subscribers of these events should only perform operations that are reversed
on transaction rollback: most likely database storage operations.
For irreversible operations see the new ``AfterResourceChanged`` event.
**New features**
- Event subscribers are now ran synchronously and can thus alter responses (421)
- Resource events are now merged in batch requests. One event per resource and
per action is emitted when a transaction is committed (mozilla-services/cliquet634)
- Monitor time of events listeners execution (mozilla-services/cliquet503)
- Added a new ``AfterResourceChanged`` event, that is sent only when the commit
in database is done and successful.
`See more details <https://cliquet.readthedocs.io/en/latest/reference/notifications.html>`_.
- Track execution time on StatsD for each authentication sub-policy (mozilla-services/cliquet639)
- Default console log renderer now has colours (mozilla-service/cliquet671)
- Output Kinto version with ``kinto --version`` (thanks ayusharma)
**Bug fixes**
- Fix PostgreSQL backend timestamps when collection is empty (433)
- ``ResourceChanged`` events are not emitted if a batch subrequest fails (mozilla-services/cliquet634)
There are still emitted if the whole batch transaction is eventually rolledback.
- Fix a migration of PostgreSQL schema introduced that was never executed (mozilla-services/cliquet604)
- Fix statsd initialization on storage (mozilla-services/cliquet637)
- Providing bad last modified values on delete now returns 400 (mozilla-services/cliquet665)
- Providing last modified in the past for delete now follows behaviour create/update (mozilla-services/cliquet665)
- Do not always return 412 errors when request header ``If-None-Match: *``
is sent on ``POST /collection`` (fixes 489, mozilla-service/cliquet673)
- Fix secret in ini on Python 3 (fixes 341)
- Error when trying to create an empty directory (fixes 475)
- Text plain body should be rejected with an error (461)
**Documentation**
- Additions in troubleshooting docs (thanks ayusharma)
- Add uwsgi bind error to troubleshooting (fixes 447)
- Mention python plugin for Uwsgi (448)
- Add how to troubleshoot psql encoding problems. (453)
- Add mini checklist for CDN deployment (450)
- Replace subjective ligthweight by minimalist (fixes 417)
- Improve synchronisation docs (451)
- Add the requirements in the Readme (465)
- Add docs about architecture (fixes 430)
- Add a 'why' paragraph to the docs (Kinto value proposition) (482)
- Update docs: how to choose the backend (485, thanks Enguerran)
- Add a custom id generator tutorial (464)
**Internal changes**
- Changed default duration between retries on error (``Retry-After`` header)
from 30 to 3 seconds.
- Speed-up startup (ref 490)
- Optimized (and cleaned) usage of (un)authenticated_userid (424, mozilla-services/cliquet641)
- Fixed usage of virtualenv in Makefile (443)
- Add a badge for the irc channel (459)
- Change phrasing for backend selection (470)
- Add a CONTRIBUTING file (471, thanks magopian)
- Add a contribute.json file (478, 480, thanks magopian)