forked from vaultit/qvarn
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
240 lines (169 loc) · 8.57 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
NEWS for Qvarn
==============
Version 0.82+git, not yet released
----------------------------------
Version 0.82-3.vaultit, released 2017-09-27
-------------------------------------------
* Added /any operator.
* Fixed Qvarn initialization bug, where specs where initialized from path. In
cases where path was not a resource type, but also cantained additional
components, like resource id, initialization failed.
* Fixed performance issue with notifications. In order to get notifications
multiple database queries where executed and that made notification listing
really slow.
Version 0.82, released 2017-06-06
----------------------------------
* Added some documentation for resource type definition.
* Mantas added the /limit and /offset operators to /search. This
should be useful for implemenating pagination in API clients.
* Made the Transaction class handle exceptions when committing or
rolling back a database transaction, and not leak database
connections. Reported by Marius Gedminas.
* Qvarn can now log up to five log files simultanously. Each file can
have its own filtering rules.
* Qvarn now rotates its log files as soon as they become longer than
the specified limit. The current log file gets renamed to have a
timestamp, and a new log file is created with the specified name.
* Qvarn now logs when it starts using a Postgres connection or stops
using it. These are done with the log message types `get_conn` and
`put_conn` respectively.
Version 0.81, released 2017-03-10
----------------------------------
* Mantas added sorting of results to searches.
* Lars Wirzenius has changed Qvarn to consist of a single backend
process (`qvarn-backend`), which serves all resource types. Also,
Qvarn now reads the resource type specifications from YAML files
(`/etc/qvarn/*.yaml`; previously `src/*` Python scripts), and a
single configuration file (`/etc/qvarn/qvarn.conf`). Qvarn no longer
supports resource type specific validation code. Such functionality
may return later by making the resource type specification language
have a stronger type system.
Note that resource types may not yet be managed via the API. That
will come in the future (trouble with Gluu and limitations of its
API prevented this from being finished; some of API code is already
in Qvarn, but is not to be used).
All previously existing resource types are still included with
Qvarn. Some of the application specific ones may be dropped in the
future, but not in this release.
Note that deployment/provisioning needs to adapt to the above. For
example, the qvarn-prepare systemd unit needs to use
`/usr/bin/qvarn-backend` instead of the now-deleted
`/usr/bin/qvarn-prepare`. Also only one config file should be
created. uwsgi should only run one program (with a suitable number
of threads). haproxy should only have one Qvarn backend. See
qvarn-prov.git for an example.
Version 0.80, released 2017-02-17
----------------------------------
* Ville Niskala added a wildcard listener feature to allow listening
on all notifications for a specific resource type. See the API
manual for details.
Version 0.79, released 2017-01-26
----------------------------------
* Lars Wirzenius changed `slog-errors` to treat any log messages with
a Python traceback to be errors.
* The `person` resource type has a new field `gluu_user_id`.
Version 0.78, released 2016-11-18
----------------------------------
* Ville Niskala added new resource types: `data_cache`, `files`,
`jobs`, `resource_accesses`.
Version 0.77, released 2016-10-24
----------------------------------
* Added the `bolagsfakta_supplier` resource type, from Programmers of
Vilnius.
* Fixed bug in Qvarn related to handling deep JSON prototypes,
reported by Ville Niskala (Tilaajavastuu).
Version 0.76, released 2016-10-17
----------------------------------
* Fix /show so it only shows those fields that are specified (plus
`id`).
* Validation of field values for `ID06_cards` contract types have been
removed, in order to simplify ID06 application development.
Version 0.75, released 2016-10-12
----------------------------------
* Logging of non-UTF8 strings has been fixed. This in turn fixes
uploads of binary files.
Version 0.74, released 2016-09-20
----------------------------------
* The structured log of Qvarn now includes log messages from the
standard Python logging library. This is useful when the bottle.py
framework or one of the library Qvarn uses emits log messags of its
own. They now all end up in the same structured log file as Qvarn's
own messages.
* Qvarn's HTTP responses now have a `Date:` header. Thanks to Teemu
Kääriäinen for reporting the issue.
* A fix to `/search` by Ville Niskala. The bug caused OR conditions to
fail if there were no corresponding rows in a joined table.
* New `/search` operators: `contains`, `startswith`, and `show`. The
former follow the pattern of `exact`, but `show` takes a single
parameter, which is a top-level field name and includes that field
in the response. It may be used multiple times.
* Updates to the contracts and competence type resources, by Ville
Niskala.
Version 0.73, released 2016-07-27
----------------------------------
Bug fixes:
* Qvarn now fails to start if its configuration lacks the fields to
check authentication (i.e., checking the validity of access tokens).
This means configuration files now MUST define `token_issuer` and
`token_validation_key`. If they're not set, Qvarn doesn't start.
This prevents accidentally running Qvarn in an insecure mode.
* The "competence type" resource is now systematically spelled with an
underscore ("competence_types") instead of sometimes using a dash.
This prevents much confusion and error.
Small changes:
* Manuals are now built using `qvdoc`, with Qvarn logo and everything.
Also, Qvarn version is now used as document version.
* The single structured log message of type `critical` is now `error`,
like all other errors.
* `slog-error` considers a HTTP status code of 400 or greater to
indicate a failure. Previously it was 500 or greater.
* `slog-error` reports the filename from which it gets the log
messages it reports.
* Debian packaging for Qvarn now depends on `python-yaml`.
Developer-only changes:
* Many code cleanups. Hopefully no bugs introduced (tests still pass).
Most importantly, `src/*` are now using shared code
(`ResourceServer`) to set up an application, based on a data
description. The description still needs to be Python code in `src`,
but this is a big step towards liberating Qvarn installations to
specify the resources they need via configuration files.
* The source tree no longer has obsolete configuration file snippets.
Version 0.72, released 2016-07-05
----------------------------------
* The `/version` now reports the correct version number.
* Qvarn now uses structured logs. These are logs where each line is in
JSON. See the `slog-pretty` and `slog-errors` utilities for reading
such logs. Logs (in JSON) may also be sent to syslog by configuring
main.log variable as `syslog`.
* Resources can now have a structure that is one depth deeper than
before, and Qvarn gives an error if they're too deep. Thanks to
Ville Niskala for reporting the problem.
Version 0.71, released 2016-05-26
----------------------------------
* Some source code cleanups have been made to placate the pylint tool.
This should not be visible to users.
* Put back the `org.is_luotettava_kumppani_member` field, which got
dropped earlier. A client application is using it and it's faster to
un-break Qvarn by adding the field than to ask them to fix their
end. We'll re-remove the field later, at a more opportune moment.
Version 0.70, released 2016-05-25
----------------------------------
* Improve speed of searches by dropping the previous approach
(COUNT(id) turns out to be slow in Postgres) and using INNER JOIN
instead. By Ville Niskala.
Version 0.69, released 2016-05-24
----------------------------------
* Attempt to improve the speed of search queries, by Ville Niskala.
This version attempts to avoid unnecessary queries, and to implement
an AND between conditions in a more efficient way. However, this
hasn't been benchmarked yet: this release is to enable benchmarks to
be run.
Version 0.68, released 2016-05-23
----------------------------------
* No-change release, to trigger a new build. Sorry.
Version 0.67, released 2016-05-23
----------------------------------
* Missing build dependencies added to Debian packaging.
Version 0.66, released 2016-05-23
----------------------------------
* This is the first release with a NEWS file.