Skip to content

Releases: kuzzleio/kuzzle

0.9.2

12 Jan 13:14
Compare
Choose a tag to compare
  • updated dependencies
  • removed all references to the now deprecated "should-promised" library (included directly in should.js)
  • updated socket.io plugin to 1.0.4 to include bugfixes in kuzzle

0.9.1

12 Jan 13:04
Compare
Choose a tag to compare

This is a minor update concerning retries, when the plugin manager attempts to acquire the mutex to install plugins. Now these retries have a maximum timeout of 1 second.

Explanation:

Before this update, there were up to 1000 retries, with no maximum timeouts between retries, and an exponential backoff strategy.
This means that, if one instance takes some time to install plugins, other instances will probably be waiting several seconds more before retrying to acquire the lock.

This has the following effects:

  • sometimes, other instances won't be up until up to a couple seconds after the 1st instance is ready, maybe more
  • this made some travis build fail if the server instance is the first to be up, as functional tests start as soon as the server is reachable, meaning that functional tests are launched without workers ready.

0.9.0

12 Jan 10:50
Compare
Choose a tag to compare

Refactor the response from Kuzzle in order to have a consistent response like the following object:

  • When we have just one element (e.g with a get):
{
    "action": "get",
    "collection": "user",
    "controller": "read",
    "error": null,
    "index": "mainindex",
    "metadata": {},
    "requestId": "a39f348b-f73d-4518-9cb4-32a4b0dc2040",
    "result": {
        "_id": "AVItAloUTHHcXT3l6WXg",
        "_index": "mainindex",
        "_source": {
            "username": "toto"
        },
        "_type": "user",
        "_version": 1,
        "found": true
    },
    "scope": null,
    "state": "done",
    "status": 200
}
  • When we have a list (e.g getAllStats)
{
    "action": "getAllStats",
    "controller": "admin",
    "error": null,
    "metadata": {},
    "requestId": "608fef72-da25-48e1-8b77-ae351d33bae2",
    "result": {
        "hits": [
            {
                "completedRequests": {
                    "rest": 1
                },
                "connections": {},
                "failedRequests": {},
                "ongoingRequests": {
                    "rest": 0
                },
                "timestamp": "2016-01-10T19:30:06.328Z"
            }
        ],
        "total": 1
    },
    "scope": null,
    "state": "done",
    "status": 200
}

We have now a result directly in result entry with the object requested or with an entry hits which is an array.

_Note:_

  • We have no more hits.hits in result object. All previous entries in hits are now in root object result, i.e:
"result": {
        "_shards": {
            "failed": 0,
            "successful": 5,
            "total": 5
        },
        "hits": [
            {
                "_id": "AVItE6_7THHcXT3l6WZH",
                "_index": "mainindex",
                "_score": 1,
                "_source": {
                    "username": "toto"
                },
                "_type": "user"
            }
        ],
        "max_score": 1,
        "timed_out": false,
        "took": 1,
        "total": 1
    }
  • The error entry can contains a _source to find out which query failed.

0.8.0

12 Jan 09:38
Compare
Choose a tag to compare
  • Implemented protocol plugins support
  • Added a new plugin configuration argument: "loadedBy", taking "all", "server" or "worker". Its purpose is to limit plugin installation & loading only by the corresponding kuzzle instance type
  • Added socket.io plugin as a default plugin
  • removed socket.io dependency
  • updated unit and functional tests
  • updated plugin documentation
  • REST protocol is now linked to the port 7511 instead of 7512
  • Reworked plugin installation so that servers and workers can act independantly. This removes the "normal" errors we got when starting Kuzzle
  • Added a banner to inform users when a Kuzzle instance is up, running, and accepting requests

Others:

  • removed winston dependency

0.7.2

21 Dec 13:09
Compare
Choose a tag to compare

To remove unnecessary Kuzzle dependencies from the router controller and to prepare the incoming protocol plugins, this pull request changes the way the router controller handles worker responses, following @stafyniaksacha suggestion:

  • renamed core/responseListener to core/workerListener to make it easier to understand what it does
  • removed all references to the workerListener from the router controller. Also removed empty promises handling. Promises resulting from calls to the funnel controller now always resolve to the according responseObject
  • the main Kuzzle object now contains a global workerListener instance
  • controllers behind the funnel controller now always return a promise resolving to the awaited response, either directly, or by returning the result of workerListener.add
  • the workerListener now awaits worker responses using the internal broker, and resolve/reject the stored promises, letting the router controller respond to the requesting client. It doesn't notify directly anymore.

0.7.1

18 Dec 15:11
Compare
Choose a tag to compare
  • implemented the possibility to get realtime collections using the existing "listCollections" API method
  • updated unit tests, functional tests and API documentation
  • tidied up the readController unit tests
  • removed remnants of the old roomName argument in the hotelClerk.removeCustomerFromAllRooms unit tests
  • added missing unit tests on the removeRooms method of the adminController

0.7.0

18 Dec 13:32
Compare
Choose a tag to compare
  • Support multi-index (persistent & realtime layers)
  • Add : CRUDL operations on indexes
  • Add : _createIndex role policy
  • Add : _createCollection role policy
  • Add : internal cache for index hierarchy (used by when checking policies)
  • Refactor : ReadEngine & WriteEngine allways fulify promises with a ResponseObject : no need to recreate it in worker when Response is delayed
  • Refactor : Change api route to /api/v1
  • Refactor : Mock elasticsearch in units tests

0.6.5

17 Dec 09:21
Compare
Choose a tag to compare

The admin/putRole REST API method now requires a role identifier

Added a lazy-loading repositories() getter

16 Dec 17:47
Compare
Choose a tag to compare

Useful for authentication plugins, and probably other kinds of plugins in a future.

0.6.3

16 Dec 10:09
Compare
Choose a tag to compare

Optional request arguments are now case insensitive