This document describes changes between each past release.
- Upgrade the kinto-admin to v1.12.0.
- Upgrade the kinto-admin to v1.11.2.
- Fix Memory backend sometimes show empty permissions (#1045)
- Allow to create default bucket with a PUT request and an empty body (fixes #1080)
- Fix PostgreSQL backend when excluding a list of numeric values (fixes #1093)
- Fix ignore_conflict storage backend create method parameter to
keep the existing rather than overriding it. (#1134)
- Fix impacted records of events generated by implicit creation in default
- Remove Python 2.7 support and upgrade to Python 3.5. (#1050)
- Upgraded minimal PostgreSQL support to PostgreSQL 9.5 (#1056)
- The --ini parameter is now after the subcommand name (#1095)
- Fixed If-Match behavior to match the RFC 2616 specification (#1102).
- A 409 Conflict error response is now returned when some backend integrity
constraint is violated (instead of 503) (ref #602)
Protocol is now at version 1.15. See API changelog.
- Prevent injections in the PostgreSQL permission backend (#1061)
- Fix crash on If-Match: * (#1064)
- Handle Integer overflow in querystring parameters. (#1076)
- Flush endpoint now returns an empty JSON object instad of an HTML page (#1098)
- Fix nested sorting key breaks pagination token. (#1116)
- Remove deleted field from PUT requests over tombstones. (#1115)
- Fix crash when preconditions are used on the permission endpoint (fixes #1066)
- Fixed resource timestamp upsert in PostgreSQL backend (#1125)
- Fix pserve argument ordering with Pyramid 1.8 (#1095)
- Update the upsert query to use an INSERT or UPDATE on CONFLICT behavior (fixes #1055)
- Remove pypy supports. (#1049)
- Permission schema children fields are now set during initialization instead of on
- Request schemas (including validation and deserialization) are now isolated by method
and endpoint type (#1047).
- Move generic API schemas (e.g TimeStamps and HeaderFields) from kinto.core.resource.schema
to a sepate file on kinto.core.schema. (#1054)
- Upgraded the kinto-admin to version 1.10.0 (#1086, #1128)
- Upgrade to Pyramid 1.8 (#1087)
- Replace old loadtests with functional tests (#1085)
- Use Cornice Swagger rather than
merging YAML files to generate the OpenAPI spec.
- Gracefully handle UnicityError with the default_bucket plugin and
the PostgreSQL backend using PostgreSQL 9.5+ ON CONFLICT clause. (#1122)
- Retries to set value in PostgreSQL cache backend in case of BackendError (fixes #1052)
- Retries to set value in PostgreSQL cache backend in case of IntegrityError (fixes #1035)
- Remove JSON Patch content-type from accepted types on the viewset, since it is handled
in a separate view (#1031).
- Upgraded to Kinto-Admin 1.8.1
- Configure the Kinto Admin auth methods from the server configuration (#1042)
- Fix crash with batch endpoint when list of requests contains trailing comma (fixes #1024)
- Cache backend transactions are not bound to the request/response cycle anymore (fixes #879)
- Quick mention of PostgreSQL commands to run tests locally in contributing docs.
- Use YAML safe_load for the swagger file. (#1022)
- Request headers and querystrings are now validated using cornice schemas (#873).
- JSON Patch format is now validated using cornice (#880).
- Upgraded to Kinto-Admin 1.8.0
Protocol is now at version 1.14. See API changelog.
- When admin is enabled, /v1/admin does not return 404 anymore, but now redirects to
/v1/admin/ (with trailing slash).
- Add missing Total-Records field on DELETE header with plural endpoints (fixes #1000)
- Changed default listening address from 0.0.0.0 to 127.0.0.1 (#949, thanks @PeriGK)
- Upgrade to Kinto-Admin 1.7.0
- Add a basicauth capability when activated on the server. (#937)
- Add ability to delete history entries using DELETE (#958)
Protocol is now at version 1.13. See API changelog.
- Permissions are now correctly removed from permission backend when a parent
object is deleted (fixes #898)
- Heartbeat of storage backend does not leave tombstones (fixes #985)
- Fix record_id attribute in history entries when several records are
modified via a batch request (fixes #942)
- Fix crash on redirection when path contains control characters (fixes #962)
- Fix crash on redirection when path contains unicode characters (#982)
- Fix performance issue when fetching shared objects from plural endpoints (fixes #965)
- Fix JSON-Merge validation (fixes #979)
- Fix crash when If-Match or If-None-Match headers contain invalid
unicode data (fixes #983)
- Add missing ETag and Last-Modified headers on POST and DELETE
- Return 404 on non-existing objects for users with read permissions (fixes #918)
- Fix pagination with DELETE on plural endpoints (fixes #987)
- Activate basicauth in admin by default. (#943)
- Add a setting to limit the maximum number of bytes cached in the memory backend. (#610)
- Add a setting to exclude certain resources from being tracked by history (fixes #964)
- storage.delete_all() now accepts sorting, pagination_rules and limit
- permissions.get_accessible_objects() does not support Regexp and now accepts
a with_children parameter (#975)
- cache.set() now logs a warning if ttl is None (#967)
- Remove usage of assert (fixes #954)
- The delete_object_permissions() of the permission backend now supports
URI patterns (eg. /bucket/id*)
- Refactor handling of prefixed user id among request principals
- Add a warning when a cache entry is set without TTL (ref #960)
- Replaced insecure use of random.random() and random.choice(...) with
more secure random.SystemRandom().random() and
- Removed usage of pattern matching in PostgreSQL when not necessary (ref #907, fixes #974)
- Insist about authentication in concepts documentation (ref #976)
- Upgrade to Kinto-Admin 1.6.0
- Upgraded to Cornice 2.0 (#790)
Protocol is now at version 1.12. See API changelog.
- Added a new built-in plugin kinto.plugins.admin to serve the kinto admin.
- Added a new parse_resource utility to kinto.core.utils
- Fixed showing of backend type twice in StatsD backend keys (fixes #857)
- Fix crash when querystring parameter contains null string (fixes #882)
- Fix crash when redirection path contains CRLF character (fixes #887)
- Fix response status for OPTION request on version redirection (fixes #852)
- Fix crash in PostgreSQL backend when specified bound permissions is empty (fixes #906)
- Permissions endpoint now exposes the user permissions defined in settings (fixes #909)
- Fix bug when two subfields are selected in partial responses (fixes #920)
- Fix crash in permission endpoint when merging permissions from settings and from
permissions backend (fixes #926)
- Fix crash in authorization policy when object ids contain unicode (fixes #931)
- Resource mapping attribute is now deprecated, use schema instead (#790)
- Clarify implicit permissions when allowed to create child objects (#884)
- Upgrade built-in admin plugin to Kinto Admin 1.5.0
- Do not bump timestamps in PostgreSQL storage backend when non-data columns
- Add some specifications for the permissions endpoint with regards to inherited
- Add deletion of multiple groups in API docs (#928)
Thanks to all contributors, with a special big-up for @gabisurita!
- Make sure we redirect endpoints with trailing slashes with the default bucket plugin. (#848)
- Fix group association when members contains system.Authenticated (fixes #776)
- Raise an error when members contains system.Everyone or a group ID (#850)
- Fix StatsD view counter with 404 responses (#853)
- Fixes filtering on ids with numeric values. (fixes #851)
- Fix error response consistency with safe creations if the create permission
is granted (fixes #792). The server now returns a 412 instead of a 403 if
the If-None-Match: * header is provided and the create permission is granted.
- The permissions attribute is now empty in the response if the user has not the permission
to write on the object (fixes #123)
- Filtering records now works the same on the memory and postgresql backends:
if we’re comparing to a number, the filter will now filter out records that
don’t have this field. If we’re comparing to anything else, the record
without such a field is treated as if it had ” as the value for this field.
- Parent attributes are now readable if children creation is allowed. That means for example
that collection attributes are now readable to users with record:create permission.
Same applies to bucket attributes and collection:create and group:create (fixes #803)
- Return an empty list on the plural endpoint instead of 403 if the create
permission is allowed
Protocol is now at version 1.11. See API changelog.
- Fix crash in history plugin when target had no explicit permission defined (fixes #805, #842)
- The storage backend now allows parent_id pattern matching in kinto.core.storage.get_all. (#821)
- The history and quotas plugins execution time is now monitored on StatsD (kinto.plugins.quotas
and kinto.plugins.history) (#832)
kinto.version_json_path settings (fixes #830)
- Fixed a failing pypy test by changing the way it was mocking
transaction.manager.commit (fixes #755)
- Moved storage/cache/permissions base tests to kinto.core.*.testing (fixes #801)
- Now fails with an explicit error when StatsD is configured but not installed.
- Remove redundant fields from data column in PostgreSQL records table (fixes #762)
- Support for filtering records based on a text search (#791)
Protocol is now at version 1.10. See API changelog.
- Fix concurrent writes in the memory backend (fixes #759)
- Fix heartbeat transaction locks with PostgreSQL backends (fixes #804)
- Fix crash with PostgreSQL storage backend when filtering with integer on
a missing field (fixes #813)
- Fix links to comparison table in docs
- Fix kinto init input function (#796)
- Show warning when http_scheme is not set to https (#706, thanks @Prashant-Surya)
- Fix sorting/filtering history entries by date field
- On subobject filtering, return a 400 error response only if first level field
is unknown (on resources with strict schema)
- Permissions endpoint (GET /permissions) can now be filtered, sorted and paginated.
- Return 400 error response when history is filtered with unknown field
- Fix crash on permissions endpoint when history is enabled (#774)
- Fix crash on history when interacting via the bucket plural endpoint (/buckets) (fixes #773)
- Fix documentation of errors codes (fixes #766)
- kinto.id_generator was removed from documentation since it does not
behave as expected (fixes #757, thanks @doplumi)
folder and a kinto.core.testing module was introduced for tests helpers
- In documentation, link the notion of principals to the permissions page instead
- Add details about PATCH behaviour (fixes #566)
- kinto --version was renamed kinto version
- ResourceChanged and AfterResourceChanged events now return
old and new records for the delete action. (#751)
- Redis backends are not part of the core anymore. (#712).
Use kinto_redis.cache instead of kinto.core.cache.redis
Use kinto_redis.storage instead of kinto.core.storage.redis
Use kinto_redis.permission instead of kinto.core.permission.redis
- Redis listener is not part of the core anymore. (#712)
Use kinto.event_listeners.redis.use = kinto_redis.listeners instead of
kinto.event_listeners.redis.use = kinto.core.listeners.redis
- Notion of unique fields was dropped from kinto.core resources.
- Added a /__version__ endpoint with the version that has been deployed. (#747)
- Allow sub-object filtering on plural endpoints (e.g ?person.name=Eliot) (#345)
- Allow sub-object sorting on plural endpoints (e.g ?_sort=person.name) (#345)
Protocol is now at version 1.9. See API changelog.
- Added a new built-in plugin kinto.plugins.history that keeps track of every action
that occured within a bucket and serves a stream of changes that can be synced.
See API documentation.
- Added a new --dry-run option to command-line script migrate that will simulate
migration operation without executing on the backend (thanks @lavish205! #685)
- Added ability to plug custom StatsD backend implementations via a new kinto.statsd_backend
setting. Useful for Datadogâ˘ integration for example (fixes #626).
- Added a delete-collection action to the kinto command. (#727)
- Added verbosity options to the kinto command. (#745)
- Added a built-in plugin that allows to define quotas per bucket or collection. (#752)
- Fix bug where the resource events of a request targetting two groups/collection
from different buckets would be grouped together.
- Fix crash when an invalid UTF-8 character is provided in URL
- Fix crash when provided last_modified field is not divisible (e.g. string)
- Huge rework of documentation after the merge of Cliquet into kinto.core (#731)
- Improve the documentation about generating docs (fixes #615)
- Switch from cliquet-pusher to kinto-pusher in Dockerfile and tutorial.
- List posssible response status on every endpoint documentation (#736)
- Remove duplicated and confusing docs about generic resources
- Replace the term protocol by API in documentation (fixes #664)
- Add load tests presets (exhaustive, read, write) in addition to the existing random. Switched integration test make loadtest-check-simulation to run the exhaustive one (fixes #258)
- Remove former Cliquet load tests (#733)
- Add a flag to to run simulation load tests on default bucket. Uses blog
bucket by default (#733)
- Add command-line documentation (#727)
- The --backend command-line option for kinto init is not accepted as first
- Improved parts of the FAQ (#744)
- Improve 404 and 403 error handling to make them customizable. (#748)
- kinto.core resources are now schemaless by default (fixes #719)
- Fix heartbeat transaction locks with PostgreSQL backends (fixes #804)
- Fix Redis get_accessible_object implementation (#725)
- Fix bug where the resource events of a request targetting two groups/collection
from different buckets would be grouped together.
- Add the permissions_endpoint capability when the kinto.experimental_permissions_endpoint is set. (#722)
- Add new experimental endpoint GET /v1/permissions to retrieve the list of permissions
granted on every kind of object (#600).
Requires setting kinto.experimental_permissions_endpoint to be set to true.
Protocol is now at version 1.8. See API changelog.
- Fix crash in authorization policy when requesting GET /buckets/collections (fixes #695)
- Fix crash with PostgreSQL storage backend when provided id in POST is an integer (#688).
Regression introduced in 3.2.0 with #655.
- Fix crash with PostgreSQL storage backend is configured as read-only and reaching
the records endpoint of an unknown collection (fixes #693, related #558)
- Fix events payloads for actions in the default bucket (fixes #704)
- Fix bug in object permissions with memory backend
- Make sure the tombstone is deleted when the record is created with PUT. (#715)
- Allow filtering and sorting by any attribute on buckets, collections and groups list endpoints
- Fix crash in memory backend with Python3 when filtering on unknown field
- Resource events constructors signatures were changed. The event payload is now
built immediately when event is fired instead of during transactoin commit (#704).
- Fix crash when a resource is registered without record path.
- Changed behaviour of accessible objects in permissions backend when list of
bound permissions is empty.
- Bump last_modified on record when provided value is equal to previous
in storage update() method (#713)
- Add ability to delete records and purge tombstones with just the parent_id
- Buckets deletion is now a lot more efficient, since every sub-objects are
deleted with a single operation on storage backend (#711)
- Added get_objects_permissions() method in permission backend (#714)
- Changed get_accessible_objects(), get_authorized_principals() methods
in permission backend (#714)
- Simplified and improved the code quality of kinto.core.authorization,
mainly by keeping usage of get_bound_permissions callback in one place only.
- Allow record IDs to be any string instead of just UUIDs (fixes #655).
Protocol is now at version 1.7. See API changelog.
- kinto start now accepts a --port option to specify which port to listen to.
Important: Because of a limitation in Pyramid tooling,
it won’t work if the port is hard-coded in your existing .ini file. Replace
it by %(http_port)s or regenerate a new configuration file with kinto init.
- Add support for pool_timeout option in Redis backend (fixes #620)
- Add new setting kinto.heartbeat_timeout_seconds to control the maximum duration
of the heartbeat endpoint (fixes #601)
- Ability to define ID generators per object type via the settings
- Fix loss of data attributes when permissions are replaced with PUT (fixes #601)
- Fix 400 response when posting data with id: "default" in default bucket.
- Fix 500 on heartbeat endpoint when a check does not follow the specs and raises instead of
- Renamed some permission backend methods for consistency with other classes (fixes #608)
- Removed some deprecated code that had been in kinto.core for too long.
- Mention in groups documentation that the principal of a group to be used in a permissions
definition is the full URI (e.g. "write": ["/buckets/blog/groups/authors"])
- Fix typo in Github tutorial (thanks @SwhGo_oN, #673)
- New Kinto logo (thanks @AymericFaivre, #676)
- Add a slack badge to the README (#675)
- Add new questions on FAQ (thanks @enguerran, #678)
- Fix links to examples (thanks @maxdow, #680)
- Added the GET /contribute.json endpoint for open-source information (fixes #607)
Protocol is now at version 1.6. See API changelog.
- Fix internal storage filtering when an empty list of values is provided.
- Authenticated users are now allowed to obtain an empty list of buckets on
GET /buckets even if no bucket is readable (#454)
- Fix enabling flush enpoint with KINTO_FLUSH_ENDPOINT_ENABLED environment variable (fixes #588)
- Fix reading settings for events listeners from environment variables (fixes #515)
- Fix principal added to write permission when a publicly writable object
is created/edited (fixes #645)
- Prevent client to cache and validate authenticated requests (fixes #635)
- Fix bug that prevented startup if old Cliquet configuration values
were still around (#633)
- Improved documentation about running in production with uWSGI (#543, #545)
- Fix crash when a cache expires setting is set for a specific bucket or collection. (#597)
- Mark old cliquet backend settings as deprecated (but continue to support them). (#596)
- Major version update. Merged cliquet into kinto.core. This is
intended to simplify the experience of people who are new to Kinto.
- Removed initialize_cliquet(), which has been deprecated for a while.
- Removed cliquet_protocol_version. Kinto already defines
incompatible API variations as part of its URL format (e.g. /v0,
/v1). Services based on kinto.core are free to use
http_api_version to indicate any additional changes to their
- Simplify settings code. Previously, public_settings could be
prefixed with a project name, which would be reflected in the output
of the hello view. However, this was never part of the API
specification, and was meant to be solely a backwards-compatibility
hack for first-generation Kinto clients. Kinto public settings
should always be exposed unprefixed. Applications developed against
kinto.core can continue using these names even after they transition
clients to the new implementation of their service.
- Add an explicit message when the server is configured as read-only and the
collection timestamp fails to be saved (ref Kinto/kinto#558)
- Prevent the browser to cache server responses between two sessions. (#593)
- Redirects version prefix to hello page when trailing_slash_redirect is enabled. (#700)
- Fix crash when setting empty permission list with PostgreSQL permission backend (fixes Kinto/kinto#575)
- Fix crash when type of values in querystring for exclude/include is wrong (fixes Kinto/kinto#587)
- Fix crash when providing duplicated principals in permissions with PostgreSQL permission backend (fixes #702)
- Add app.wsgi to the manifest file. This helps address #543.
- Fix crash in JSON schema validation when additional properties are provided (fixes #548)
- Strip internal fields before validating JSON schema (fixes #549)
- Fix migration of triggers in PostgreSQL storage backend when upgrading from Kinto<2.0.
Run the migrate command will basically re-create them (fixes #559)
- Fix typo in RHEL installation instructions (#552, thanks @enkidulan!)
- Link to english version of kinto presentation article (#553, thanks @glasserc!)
- Document basics about PostgreSQL privileges (#547)
- Change links from readthedocs.org to readthedocs.io (#557)
- Fix Parse server license in docs (#571, thanks @revolunet!)
- Relax content-type validation when no body is posted (fixes #507)
- Fix creation events not sent for implicit creation of objects in the default
bucket (fixes #529)
- Fix the Dockerfile pip install (#522)
- Fix concurrency control request headers to recreate deleted objects (#512)
- Allow groups to store arbitrary properties. (#469)
- A cache_prefix setting was added for cache backends. (mozilla-services/cliquet#680)
- Put the cloud provider links in a comparison table (#514)
- Fix the module name of Redis event listener (thanks @happy-tanuki, #516)
- Add Makefile Documentation (thanks @ayusharma, #483)
- Document how to run Docker with custom config file (#525)
- Fix API version title (#523)
- Add a ‘upgrade pip’ command in the getting-started docs (#531)
- Document how to configure the postgresql backend (#533)
- Document how to upgrade Kinto (#537, #538)
Protocol is now in version 1.5. See API changelog.
- 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,
- Server now returns 415 error response if client cannot accept JSON response (#461, mozilla-services/cliquet#667)
- Server now returns 415 error response if client does not send JSON request (#461, mozilla-services/cliquet#667)
- 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.
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
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.
- 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/cliquet#634)
- Monitor time of events listeners execution (mozilla-services/cliquet#503)
- Added a new AfterResourceChanged event, that is sent only when the commit
in database is done and successful.
See more details.
- Track execution time on StatsD for each authentication sub-policy (mozilla-services/cliquet#639)
- Default console log renderer now has colours (mozilla-service/cliquet#671)
- Output Kinto version with kinto --version (thanks @ayusharma)
- Fix PostgreSQL backend timestamps when collection is empty (#433)
- ResourceChanged events are not emitted if a batch subrequest fails (mozilla-services/cliquet#634)
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/cliquet#604)
- Fix statsd initialization on storage (mozilla-services/cliquet#637)
- Providing bad last modified values on delete now returns 400 (mozilla-services/cliquet#665)
- Providing last modified in the past for delete now follows behaviour create/update (mozilla-services/cliquet#665)
- Do not always return 412 errors when request header If-None-Match: *
is sent on POST /collection (fixes #489, mozilla-service/cliquet#673)
- 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)
- 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)
- 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/cliquet#641)
- 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)
- Expose the ETag header in 304 responses for default bucket (ref mozilla-services/cliquet#631)
- Add Scalingo one-click deploy button (#418, thanks @yannski)
- Improve introduction of notifications tutorial (#419, thanks @tarekziade)
- Fix typos (thanks @magopian)
- Fix wheels for Python 3 that were requiring the functools32 package that is
for Python 2 only (fixes #303).
- Fix a broken hyperlink in the overview section. (#406, thanks William Hoang)
- Talk about tokens rather than user:password (#393)
- Forward slashes (/) are not escaped anymore in JSON responses (mozilla-services/cliquet#537)
- Fields can be filtered in GET requests using _fields=f1,f2 in querystring (#399)
- New collections can be created via POST requests (thanks John Giannelos)
- The API capabilities can be exposed in a capabilities attribute in the
root URL (#628). Clients can rely on this to detect optional features on the
server (e.g. enabled plugins)
Protocol is now version 1.3. See API changelog.
- Add a Heroku single-clic deploy button (#362)
- Install PostgreSQL libraries on kinto init (fixes #313)
- Smaller Docker container image (#375, #376, #383)
- Install major plugins in Dockerfile (fixes #317)
- The policy name used to configure authentication in settings is now used for
the user id prefix and StatsD authn_type counters.
- Check backends configuration at startup (#228)
- Output message for config file creation (#351, thanks Aditya Basin)
- Trigger internal event on server flush (#354)
- Fix validation of collection id in default bucket (fixes #260)
- Fix kinto init failure when the config folder already exists (#349)
- Fix Docker compose startup (fixes #325)
- Run migrate command when Docker container starts (fixes #363)
- Fix listener name logging during startup (#626)
- Do not log batch subrequests twice (#264)
- Fix hmac digest with Python 3 (#288)
- Add explicit dependency for functools32 when Kinto is installed with an old
pip version (fixes #303)
- Add tutorials about notifications (ref #353)
- Add tutorial how to write a plugin (#382)
- Add tutorial how to setup Github authentication (#390)
- Move default values to dedicated column in docs (fixes #255)
- Move run-kinto to get-started and remove platform specific installation
- Update features table in overview
- Update overview comparisons (#294, #324, #328)
- Update FAQ (#397, #398)
- Simplify some aspects of the settings page (#374)
- Sharding documentation (#381)
- Added missing DELETE endoint for list of records (fixes #238)
- Mention how to restrict private URLs with NGinx (fixes #250)
- Fix link to the freenode #kinto channel in the docs (#333)
- Remove Firefox Account mention from README (fixes #326)
- Move application examples page to wiki (ref #321)
- Move PostgreSQL server docs to wiki (fixes #321)
- Change colors of logo (#359)
- Add invitation for community to point their demos/use cases (fixes #356)
- Remove duplicate glossary in docs (#372)
- Remove troubleshooting paragraph from contributing page (#385)
- Fix wrong groups name and permissions names in the documentation (#389)
- Improve formatting of code block in tutorials (#391, #396)
- Default bucket feature is now a built-in plugin (fixes #277, fixes #311, #380)
- Do not require cliquet master branch in dev (#341, #400). Now moved as tox env in TravisCI
- Fix kinto init when containing folder does not exist (fixes #302)
- Added Hoodie in the comparison matrix (#282, thanks @Niraj8!)
- Added a get started button in documentation (#315, thanks @Niraj8!)
- When using cliquet-fxa, the setting multiauth.policy.fxa.use must now
be explicitly set to cliquet_fxa.authentication.FxAOAuthAuthenticationPolicy
- Fields in the root view were renamed (mozilla-services/cliquet#600)
- Fix redis default host in kinto init (fixes #289)
- Fix DockerFile with default configuration (fixes #296)
- Include plugins after setting up components (like authn/authz) so that plugins
can register views with permissions checking
- Remove __permissions__ from impacted records values in ResourceChanged
Changed the naming in the root URL (hello view) (mozilla-services/cliquet#600)
- Added http_api_version
- Renamed hello to project_name
- Renamed protocol_version to cliquet_protocol_version
- Renamed documentation to project_docs
- Renamed version to project_version
- New options in configuration of listeners to specify filtered actions and
resource names (mozilla-services/cliquet#492, mozilla-services/cliquet#555)
- Add ability to be notified on read actions on a resource (disabled by
- Clarified how Kinto is versionned in the documentation (#305)
- Upgraded to Cliquet 2.11.0
- For PostgreSQL backends, it is recommended to specify postgresql://.
In the hello view:
- Add a bucket attribute in user mapping allowing clients
to obtain the actual id of their default bucket
- Add the protocol_version to tell which protocol version is
implemented by the service. (#324)
_since and _before now accepts an integer value between quotes ",
as it would be returned in the ETag response header.
A batch request now fails if one of the subrequests fails
(mozilla-services/cliquet#510) (see new feature about
- Add a Kinto command for start and migrate operation. (#129)
- Add a Kinto command to create a configuration file. (#278)
- A transaction now covers the whole request/response cycle (#194).
If an error occurs during the request processing, every operation performed
is rolled back. Note: This is only enabled with PostgreSQL backends. In
other words, the rollback has no effect on backends like Redis or Memory.
- New settings for backends when using PostgreSQL: *_max_backlog,
*_max_overflow, *_pool_recycle, *_pool_timeout to
control connections pool behaviour.
- Fix 500 error response (instead of 503) when storage backend fails during
implicit creation of objects on default bucket. (fixes #236)
- Fixed Dockerfile for PostgreSQL backends.
- Fix JSON schema crash when no field information is available.
- Optimization for retrieval of user principals (#263)
- Do not build the Docker container when using Docker Compose.
- Add Python 3.5 on TravisCI
- Add schema validation loadtest (fixes #201)
- Multiple documentation improvements.
- The PostgreSQL backends now use SQLAlchemy sessions.
See also *Cliquet* changes
- Upgraded to Cliquet 2.10.0
Protocol breaking changes
- Moved userid attribute to a dedicated user mapping in the hello
- Follow redirections in batch subrequests (fixes mozilla-services/cliquet#511)
- Set cache headers only when anonymous (fixes mozilla-services/cliquet#449)
- Add a readonly setting to run the service in read-only mode. (#241)
- If no client cache is set, add Cache-Control: no-cache by default,
so that clients are forced to revalidate their cache against the server
- Fixed 503 error message to mention backend errors in addition to unavailability.
- When recreating a record that was previously deleted, status code is now 201
- Fix PostgreSQL error when deleting an empty collection in a protected
resource (fixes mozilla-services/cliquet#528)
- Fix PUT not using create() method in storage backend when tombstone exists
- Delete tombstone when record is re-created (fixes mozilla-services/cliquet#518)
- Fix crash with empty body for PATCH (fixes mozilla-services/cliquet#477,
- Fix english typo in 404 error message (fixes mozilla-services/cliquet#527)
- Upgraded to Cliquet 2.9.0
- Update cliquet-fxa configuration example for cliquet-fxa 1.4.0
- Improve the documentation to get started
- Added Pyramid events, triggered when the content of a resource has changed. (#488)
- Added kinto.includes setting allowing loading of plugins once Kinto
is initialized (unlike pyramid.includes). (#504)
- Remove the broken git revision commit field in the hello page. (#495).
Please read the full Cliquet 2.9.0 changelog for more information
- Handle 412 details with default bucket (#226)
- Upgraded to Cliquet 2.8.2
- Return a JSON body for 405 response on the default bucket (#214)
- Improve documentation for new comers (#217)
- Do not force host in default configuration (#219)
- Use tox installed in virtualenv (#221)
- Skip python versions unavailable in tox (#222)
- Upgraded to Cliquet 2.8.1
- Settings prefixed with cliquet. are now deprecated, and should be replaced
with non prefixed version instead.
- In the root url response, public settings are exposed without prefix too
- Upgraded to Cliquet 2.7.0
- Add Disqus comments to documentation (fixes #159)
- Allow POST to create buckets (fixes #64)
- Control client cache headers from settings or collection objects (#189)
- Remove dead code (#187, ref #53)
- Add pytest-capturelog for better output on test failures (#191)
- Install cliquet middleware (no-op if disabled) (#193)
- Many optimizations on default bucket (#192, #197)
- Many optimizations on number of storage hits (#203)
- Fix contributing docs about tests (#198)
- Added more batched actions to loadtests (#199)
- Partial collection of records when user has no read permission on collection (fixes #76).
Alice can now obtain a list of Bob records on which she has individual read permission!
- Collection can now specify a JSON schema and validate its records (#31).
The feature is marked as experimental and should be explicitly enabled
from settings (#181)
- Accept empty payload on buckets and collections creation (#63)
- Allow underscores in Kinto bucket and collection names (#153, fixes #77)
- Collection records can now be filtered using multiple values (?in_status=1,2,3) (mozilla-services/cliquet#39)
- Collection records can now be filtered excluding multiple values (?exclude_status=1,2,3) (mozilla-services/readinglist#68)
- Current userid is now provided when requesting the hello endpoint with an Authorization
- UUID validation now accepts any kind of UUID, not just v4 (mozilla-services/cliquet#387)
- Querystring parameter _to on collection records was renamed to _before (the former is now
- Allow to configure info link in error responses with cliquet.error_info_link
- Fix consistency in API to modify permissions with PATCH (fixes #155)
The list of principals for each specified permission is now replaced by the one
- Use correct HTTP Headers encoding in both Python2 and Python3 (#141)
- ETag is now returned on every verb (fixes #110)
- When deleting a collection also remove the records tombstones (#136)
- Complete revamp of the documentation (#156 #167 #168 #169 #170)
- Upgraded to Cliquet 2.6.0
- Upgraded to Cliquet 2.3.1
- Make sure the default route only catch /buckets/default and
/buckets/default/* routes. (#131)
- Upgraded to Cliquet 2.3.0
- Handle CORS with the default bucket. (#126, #135)
- Add a test to make sure the tutorial works. (#118)
- List StatsD counters and timers in documentation (fixes #73)
- Update virtualenv dependencies on setup.py modification (fixes #130)
- Upgraded to Cliquet 2.2.1
- Improvements and fixes in the tutorial (#107)
- Querystring handling when using the personal bucket (#119)
- Default buckets ID is now a UUID with dashes (#120)
- Handle unknown permission and fix crash on /buckets (#88)
- Fix permissions handling on PATCH /resource (mozilla-services/cliquet#358)
- Test with the normal Kinto authentication policy and remove the fake one (#121)
- Upgraded to Cliquet 2.2.+
- Add the personal bucket /buckets/default, where collections are created
- Kinto now uses the memory backend by default, which simplifies its usage
for development (#86, #95)
- Add public settings in hello view (mozilla-services/cliquet#318)
- Fix Docker compose file settings (#100)
- Fix version redirection behaviour for unsupported versions (mozilla-services/cliquet#341)
- Fix overriding backend settings in .ini (mozilla-services/cliquet#343)
- Documentation improvements (#75)
- Added tutorial (#79)
- Remove hard dependency on PostgreSQL (#100)
- Add pytest-cache (#98)
- Add Pypy test on Travis (#99)
- Update dependencies on make install (#97)
- Fix URL of readthedocs.io (#90)
- Polish default kinto configuration and default to memory backend. (#81)
- Add the kinto group finder (#78)
- Flush endpoint now returns 404 is disabled (instead of 405) (#82)
- ETag not updated on collection update (#80)
- Use py.test to run tests instead of nose (#85)
- Added notion of buckets, user groups and collections (#48, #58)
- Buckets, collections and records can now have permissions (#59)
- Updated Cliquet to 2.0, which introduces a lot of breaking changes
- Firefox Accounts is not a dependency anymore and should be installed and
included explictly using the python package cliquet-fxa
- API is now served under /v1
- Collections are now managed by bucket, and not by user anymore (#44)
A list of records cannot be manipulated until its parents objects (bucket and
collection) are created.
- Added documentation about deployment and data durability (#50)
- Added load tests (#30)
- Several improvements in documentation (#51)
- Upgraded to cliquet 1.8.+
- PostgreSQL database initialization process is not run automatically in
production. Add this command to deployment procedure:
cliquet --ini config/kinto.ini migrate
- Improved documentation (#29)
- Require 100% coverage during tests (#27)
- Basic Auth is now enabled by default in example config
- Upgraded to cliquet 1.4.1
- Rely on Pyramid API to build pagination Next-Url (#147)
- Fix behaviour of CloudStorage with backslashes in querystring (mozilla-services/cliquet#142)
- Force PostgreSQl session timezone to UTC (mozilla-services/cliquet#122)
- Fix basic auth ofuscation and prefix (mozilla-services/cliquet#128)
- Make sure the paginate_by setting overrides the passed limit
- Fix crash of classic logger with unicode (mozilla-services/cliquet#142)
- Fix crash of CloudStorage backend when remote returns 500 (mozilla-services/cliquet#142)
- Fix python3.4 segmentation fault (mozilla-services/cliquet#142)
- Add missing port in Next-Page header (mozilla-services/cliquet#147)
- Schemaless storage of records
- Firefox Account authentication
- Kinto as a storage backend for cliquet applications