# version 0.70

- Added data folder containing super_client_info and database 
  for mounting into docker

# version 0.69.4

- Support token array in matchinfo (fixes #570; diewald)

# version 0.69.3

# version 0.69.2

- Upgrade version for E2E-simplified Docker images (diewald)

# version 0.69.1

- Upgrade version for docker including indexer (diewald)

# version 0.69

 - Migrated to Java 11 and Jersey 2
 - Updated dependencies

# version 0.68

2022-06-03 
 - Implemented searching option using a network endpoint


# version 0.67

# version 0.66

# version 0.65.2

2022-03-03
 - Removed VCLoader.

# version 0.65.1

# version 0.65

!!! includes security updates  - please update all Kustvakt libraries
!!! Please also update Krill to version 0.60.2 and Koral to version 0.38 

2021-12-10
 - [security] Updated log4j libs due to CVE -2021 -44228.
2022-01-03
 - [security] More log4j security updates
 - Updated tests.
2022-01-25
 - Added show-tokens option to the search API.

# version 0.64

2021-07-29
 - Updated the change files and made a new version.
2021-08-12
 - Removed initializator from lite config.

# version 0.63.2

2021-07-19
 - Updated mockserver dependency -order in pom.
2021-07-26
 - Replaced annotation parsing with restoring the annotation tables to the
database.
 - Excluded jackson core libraries from Mockserver. 

# version 0.63
04/12/2020
   - Fix hibernate dialect for SQLite. (margaretha)
14/01/2021
 - Updated Flyway (margaretha)
21/01/2021
 - Fixed running pipe and updated tests with mockserver (margaretha)
19/02/2021
 - Enabled API info web -service (margaretha) 
  
# version 0.62.4
24/01/2020
 - Removed salt from config and updated config files.
04/03/2020
 - Updated the sample index (diewald)

# version 0.62.3
03/12/2019
 - Implemented pipe extension in the search API (margaretha)
12/12/2019
 - Added support for multiple cq parameters (margaretha, resolved #46)
13/12/2019
 - Handled pipe errors and added tests (margaretha)

# version 0.62.2
13/11/2019
 - Added tests for issue #43 (margaretha)
22/11/2019
 - Added tests for the statistic API with KoralQuery (margaretha)

# version 0.62.1
08/07/2019
 - Added tests for public metadata response in search API (margaretha, issue #43)
 - Disabled some tests of unused/disabled web -services (margaretha)

version 0.62
19/03/2019
 - Added close index controller (margaretha)

version 0.61.3
05/02/2019
 - Updated kustvakt -lite.conf (margaretha)
18/02/2019
 - Updated core version (margaretha)

version 0.61.2
14/11/2018
 - Integrated lite and full services and controllers in core (margaretha)
 - Added annotation services (margaretha)
19/12/2018
 - Fixed getUser in DummyAuthenticationManager (margaretha)
 - Fixed search test with fields parameter (margaretha)

version 0.61.1
22/10/2018
 - Updated spring and kustvakt -core versions (margaretha)
29/10/2018
 - Added rewrite handler post construct (margaretha)
07/11/2018
 - OpenJDK8u181 -workaround (see Debian Bug report #911925; diewald)
13/11/2018
 - Added shutdown handler (margaretha)

version 0.61.0
30/08/2018
 - Fixed root packages & added api version properties in kustvakt -lite.conf (margaretha)
 - Added API versioning tests (margaretha)

version 0.60.2
05/07/2018
 - Added support for unrestricted corpus statistics (ndiewald)
 - Do not pass broken queries to Krill (diewald)
27/08/2018
 - Added vc reference test (margaretha)
28/08/2018
 - Added API URL versioning (margaretha)

version 0.60.1
12/06/2018
 - removed kustvakt_encryption (margaretha)
 - updated kustvakt core version (margaretha)
 - adopted statistics query parameter from full (ndiewald)

version 0.60
23/03/2018
 - updated field type:date in the metadata test (margaretha)
 - removed loading application context via BeanFactory (margaretha)
 - fixed missing kustvakt -lite.conf (margaretha)
 - added support for highlights in matchinfo (diewald)

version 0.59.9 
01/02/2018
 - renamed light to lite (margaretha)
 - added Changes file (margaretha)
 - updated library versions and java environment (margaretha)
 - added metadata test (diewald)

version 0.59.8 
17/01/2018 
 - restructured Kustvakt and created /lite project
 - removed version from service paths (margaretha)
 - updated query serialization tests (margaretha)
 - added statistic service test (margaretha)
 - updated KustvaktResponseHandler (margaretha)
 - removed FastJerseyLight and simplified Jersey test configuration (margaretha)