28 Febuary 2018

QvarnLabs Ab is happy to announce version 0.91 of qvarn-jsonb, the version Qvarn that uses the Postgres JSONB data type. The new version's highlight feature is support for fine-grained access control. Where previously access control was based on resource type and HTTP method, it can now be specified at the granularity of a single resource as well.

Version 0.91, released 2018-02-28

  • Qvarn can now do fine-grained access control. Needs to be enabled with the enable-fine-grained-access-control configuration variable. (No documentation yet.)

  • ./check can now optionally only ran unit and style tests, yarns, or yarns against a remote Qvarn.

  • A bug in how files get stored via the API was fixed. The bug caused resource types with multiple files to get them confused.

Version 0.90.1, released 2018-01-29

  • Build fixes.

Version 0.90, released 2018-01-29

New features:

  • Qvarn now logs access to user data. Access log records are stored as Qvarn resources and thus are e.g. easily searchable.

  • New utility qvarn-access added for managing access log. There is only support for cleaning up old access log at the moment.

Bug fixes:

  • Fixed Qvarn backend to NOT update the parent resource revision, when a subresource gets updated, IF the uapi_set_meta_fields scope is in use. This allows qvarn-copy to update the subresource without having to update the parent resource revision separately.

  • Qvarn no longer returns a resource of a different type as a response to a request GET /foos/id.

  • Some bug fixes to qvarnutils (qvarn-copy and friends). Additionally they now fetch resource descriptions from Qvarn via its API rather than having them hardcoded in source code.

  • If POSTin or PUTting a resource with some fields missing, those fields are now set to null. Previously they were set to an empty string, the integer zero, or the Boolean false value. This was different from pre-JSONB Qvarn, and being different from that is a bug. Fixes bug PUPPY FILAMENT ENDOW in the qvarn-devel distix.

Version 0.89, released 2017-12-14

  • Some fixes for qvarn-dump and the Qvarn backend for making qvarn-copy work better.

Version 0.88, released 2017-12-14

  • Fixed PUT of a subresource when done by qvarn-copy to not update the parent resource revision. This allows for a more exact copy to happen.

Version 0.87, released 2017-12-12

New features:

  • New utility qvarn-copy added. It copies resource between Qvarn instances.

  • New utility qvarn-dump added. It extracts all resource from a Qvarn instance, in a form that can be diff'd to see a copy is complete.

  • New utility qvarn-stats added. It counts resources in a Qvarn instance.

  • An API client with the set_meta_fields scope is allowed to set the id and revision resources it creates. This is needed for qvarn-copy.

Bug fixes:

  • Listeners for all resource types were listed for all resource types. Thus, GET /foos/listners would list listeners also for bar resources, not just foo. This has been fixed. Bug reported by Kaius, fixed by Lars.

  • Mantas reported that if a resource type or resource had two fields with the same type but values that were not possible to compare, such as a string and an integer, Qvarn would crash. This is now fixed.

  • Saulius ┼Żemaitaitis reported that updating a resource type specification YAML file and restarting Qvarn wouldn't make the new version of the resource type availables. Fixed now.

Version 0.86, released 2017-10-10

  • All old API tests (test-api) pass. Qvarn (JSONB) is functionally complete now, and API compatible with the old Qvarn. It may not be performant enough yet.

Version 0.84, released 2017-09-27

  • This is the first release of Qvarn (JSONB), and has been rewritten from scratch to use the Postgres JSONB data type for storing resources. It is NOT yet ready for production use. This release is done so we can test Ansible modifications, run benchmarks, and other such things.

    Do not use this release.