Skip to content

Releases: SoftInstigate/restheart

3.2.2

12 Feb 09:27
Compare
Choose a tag to compare

RESTHeart release 3.2.2

Minor addition to entrypoint.sh for Docker containers.

  • e6be8a3 - Add -Dfile.encoding=UTF-8 to Docker's entrypoint.sh

Binaries are also available from the Maven repository:

Docker images are here.

3.2.1

17 Dec 19:30
Compare
Choose a tag to compare

Release notes - Restheart - Version 3.2.1

What's new in this release

This is a minor refactoring that just allows to override the DbIdentityManager class. It could be useful only in case one wants to implement a custom accountIdTrasformer method (let's say you want the user id to always be lowercase, for example). For this reason, you don't really have to upgrade from 3.2.0.

You can download binaries form the Maven repository.

  • ccc0754 - (tag: 3.2.1) Release 3.2.1 (2 minutes ago)
  • 69f90da - class DbIdentityManager extends AbstractDbIdentityManager (4 minutes ago)
  • 026ccf8 - Revert "Minor refactoring of travis-ci.yml" (10 days ago)
  • c99cd35 - Remove branch check from bin/before-deploy.sh script (10 days ago)
  • 08dbc6e - Improve log messages in scripts (10 days ago)
  • 8209d3e - Minor refactoring of travis-ci.yml (10 days ago)
  • 80774fc - Remove "set -e" from script (10 days ago)
  • b0a21c3 - modified: deploy-settings.xml (10 days ago)
  • 04d9b0d - Version 3.2.1-SNAPSHOT (10 days ago)

3.2.0

07 Dec 13:04
Compare
Choose a tag to compare

Release notes - Restheart - Version 3.2.0

What's new in this release

Binaries

As usual, RESTHeart server can be downloaded and executed as is or available is other formats:

The Maven dependencies are meant to create custom extensions, such as Application Logic Handlers and Request Hooks.

3.2.0-beta-2

02 Nov 14:14
Compare
Choose a tag to compare
3.2.0-beta-2 Pre-release
Pre-release

7ec202e - fixed regression bug, rawContent was not set if request Content-Type was not application/json

3.2.0-beta-1

25 Oct 15:29
Compare
Choose a tag to compare
3.2.0-beta-1 Pre-release
Pre-release

Release notes - Restheart - Version 3.2.0-beta-1

Bug

  • [RH-249] - UnsupportedDocumentIdException writing documents with _id of type document
  • [RH-251] - wrong return code on PATCH not existing document
  • [RH-252] - response code 500 creating a schema with a property definition whose name is a bson type
  • [RH-254] - GET/bucket.files/<id>/binary does not send 404 Not Found if file does not exist

Story

  • [RH-250] - As a user, I want to enable or disable the ANSI console for colored logging

New Feature

  • [RH-241] - file property contentType is null and actual value goes to metadata.contentType

Improvement

  • [RH-232] - DbIdentityManager configuration option to create a default user if none exists
  • [RH-253] - AbstractSimpleSecurityManager cannot resolve config file paths with spaces

Dropwizard metrics support

It adds support for metrics to restheart and behaves as follows:

There are a few new endpoints:

  • /_metrics
  • /$DBNAME/_metrics
  • /$DBNAME/$COLLECTIONNAME/_metrics.

You can query them to get metrics information; each upper level contains all the information from the lower levels, aggregated. There are two output formats: classic dropwizard metrics JSON format (see https://github.com/iZettle/dropwizard-metrics/blob/master/metrics-json/src/main/java/io/dropwizard/metrics/json/MetricsModule.java for the format) and Prometheus (see https://prometheus.io/docs/instrumenting/exposition_formats/).

Prometheus is the default format and will be selected if you do not specify anything. This allows easier integration into a k8s stack (e.g. for auto-scaling by response time).
For the JSON format, there are 2 options: Use the rep query parameter set to PJ or PLAIN_JSON (as you know it from classic restheart), or use HTTP content negotiation using Accept headers (see https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1). If you give both, the query parameter wins.

Whether restheart will collect metrics at all depends on the metrics-gathering-level defined in the config file (default is ROOT). You can set it to OFF, ROOT, DATABASE or COLLECTION, which will in turn collect from least to most metrics. If metrics do not get gathered at a given level, the answer from the respective endpoint will be 404 NOT FOUND.

Merge Commit 78c6428

Editing metadata for binary files

Although GridFS will treat binary data as immutable the metadata stored in the files collection can still be changed. This was raised under https://softinstigate.atlassian.net/browse/RH-64 as first encountered in issue #60

Support for this has been added for both PUT and PATCH. The new code is triggered by:

  • Sending a PATCH request with Content-Type of application/[hal+]json to an endpoint of type FILE
  • Sending a PUT request with Content-Type of application/[hal+]json to an endpoint of type FILE

The body of the request can be any of:

  • { metadata: { keys: values } }
  • { properties: { keys: values } }
  • { keys: values }

Whichever is submitted, it will be stored in the metadata document. In addition:

  • Filename updates (values for a key of filename) will be propagated to the parent document.
  • _id present in the metadata will be removed

In order to support PATCHing of existing metadata DAOUtils now supports a method to flatten nested BsonDocuments using dot notation. Although this is currently only used when updating file metadata it might be a useful addition for PATCHing other documents too.

Notes:

  1. Bulk operations are not supported for metadata updates.
  2. Upserting is disabled for metadata updates (doesn't make sense)
  3. contentType determined during binary file POST/PUT is stored in the metadata, as a result it will be lost when PUTting a new metadata document unless explicitly added. No attempt is made to keep this. A consideration might be to move this field up to the main document level.

Merge Commit e90d09b

3.1.4

25 Oct 17:04
Compare
Choose a tag to compare

Release notes - Restheart - Version 3.1.4

Bug

  • [RH-254] - GET/bucket.files/<id>/binary does not send 404 Not Found if file does not exist

3.1.3

21 Sep 13:43
Compare
Choose a tag to compare

Release notes - Restheart - Version 3.1.3

Bug

  • [RH-252] - response code 500 creating a schema with a property definition whose name is a bson type

3.1.2

16 Sep 11:40
Compare
Choose a tag to compare

Release notes - Restheart - Version 3.1.2

Bug

  • [RH-251] - wrong return code on PATCH not existing document

Story

  • [RH-250] - As a user, I want to enable or disable the ANSI console for colored logging

Improvement

  • [RH-232] - DbIdentityManager configuration option to create a default user if none exists

3.0.4

16 Sep 12:12
Compare
Choose a tag to compare

Minor refactoring, you can safely skip this release. This is probably going to be the last of the 3.0 branch, please move to 3.1.

3.1.1

14 Jun 09:07
Compare
Choose a tag to compare

Docker images are available here.

Highlights for this release

  • increased batchSize to 1000 (equals to highest valid pagesize) for better performances
  • return "409 Conflict" if write request results in error due to duplicate key
  • filter qparam applies also to PATCH and PUT requests
  • updated mongodb java driver to v3.4.2
  • allow to pass arguments to hooks, transformers and checkers via configuration file
  • application logic handler to import CSV data directly into collections
  • added support for 2 ways SSL
  • DbIdentityManager configuration option to create a default user if none exists
  • Many bug fixes...

Note: we skipped release 3.1.0 because of a small error in a build script found just after tagging.

Commits

Read more