# version 0.70.1

- Renamed entity and service packages in core
- Renamed web.controller package in core
- Moved SearchNetworkEndpoint to core.service package

# 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)