standard-api-expanders
0.28.0 (2025-12-08)
With this release we are forced to upgrade to a minimum Java target of JDK 17 due to the CVEs in
tika-core. Version 2.x of Tika is no longer supported and version 3 introduced JDK 17 as the minimum version for the library. As the vulnerability inCVE-2025-66516received a CVS score of 10, we decided to move forward to JAva 17 as well to ensure the security of the application.
Changed
- Updated dependencies:
com.fasterxml.jackson.core:jackson-databind:2.20.0 > 2.20.1net.democritus:nsx-jackson-support:1.6.1 > 1.6.2net.democritus:querysearch-standard-api-expanders:3.5.1 > 3.5.2org.apache.tika:tika-core:2.9.4 > 3.2.3org.glassfish.jersey.core:jersey-server:3.0.18 > 3.1.11
0.27.1 (2025-11-06)
Fixed
- Error returned by
FinderConnectorExpanderdid not contain the correct resource type.
0.27.0 (2025-10-21)
Added
- Added support for Jakarta EE 10.
- Added support to return calculated fields defined directly in projections from
GETcalls.
Changed
- Updated dependencies:
net.democritus:nsx-jaxrs-jersey-support:2.1.0 > 2.2.0
Removed
- Removed support for Jakarta EE 9.
- Most of the market is skipping over JEE 9 and many application servers and libraries have already dropped support.
0.26.0 (2025-10-14)
Added
- Added support for Jakarta EE.
- Added new
jakarta-jaxrs-standard-api-runtimeruntime library for Jakarta EE.
0.25.0 (2025-10-02)
Changed
- Implemented workaround for Content-Disposition header in file download response by escaping filenames to prevent Chrome download errors.
- Updated dependencies:
- Jackson:
2.19.2 > 2.20.0 net.democritus:querysearch-standard-api-expanders:3.5.0 > 3.5.1net.democritus:nsx-jackson-support:1.5.0 > 1.6.1
- Jackson:
0.24.0 (2025-08-20)
Fixed
- Added missing
Contract/ConstrainedToannotations to theDataImportConnectorContractandDataExportConnectorContractinterfaces. - Added missing
Singletonannotation toDataImportConnectorandDataExportConnectorclasses. - Some errors did not include an error identifier.
- It is no longer required to provide an object for
attributesorrelationshipsin aPOSTorPATCHcall if these are not empty because non-required fields were omitted.
Added
- Added
PatchInputDocumentValidatorto validate input documents in aPATCHcall.
Changed
- Renamed
CreateInputDocumentValidatortoPostInputDocumentValidator.
0.23.0 (2025-08-19)
Added
- Added
ApiError.Builder.identifier()to pass a unique identifier for the occurrence of the problem. This will default to a random UUID if not supplied and the value is returned in theidfield of the error response object.
Changed
- Updated dependencies:
net.democritus:nsx-dev-stack:2025.6.0 > 2025.7.0net.democritus:nsx-jaxrs-jersey-support:1.6.0 > 2.1.0
0.22.0 (2025-06-18)
Fixed
- Added missing error codes for implemented errors:
RESOURCE_CREATION_FAILEDRESOURCE_UPDATE_FAILED
- The error
INVALID_RESOURCE_TYPEnow returns409 Conflictinstead of400 Bad Requestas required by section9.1.2.6of JSON:API v1.1. - The source pointer of various errors checking for missing json properties have been changed to refer to the parent object of the missing field, as the path has to be valid in the request payload.
- Replaced use of deprecated
JsonNode.fields()method withJsonNode.properties().
Added
- [NSX-285][NSX-485] Added error codes:
MALFORMED_COOKIE_PARAMETERMALFORMED_FORM_PARAMETERMALFORMED_HEADER_PARAMETERMALFORMED_MATRIX_PARAMETERMALFORMED_PATH_PARAMETERMALFORMED_QUERY_PARAMETERMALFORMED_URI_PARAMETERRESOURCE_TYPE_MISSING
- [NSX-285][NSX-485] Added validation to ensure the resource type is provided on
POST.
Changed
- Updated dependencies:
net.democritus:nsx-jackson-support:1.4.0 > 1.5.0net.democritus:nsx-jaxrs-jersey-support:1.5.0 > 1.6.0
- [NSX-285][NSX-485] Various error codes were renamed or split up:
UA_UNAUTHORIZED > AUTHENTICATION_FAILEDNOT_FOUND_ENDPOINT > ENDPOINT_NOT_FOUNDNOT_FOUND_FILTER > FILTER_NOT_FOUNDNA_METHOD_NOT_ALLOWED > METHOD_NOT_ALLOWEDNOT_FOUND_PROJECTION > PROJECTION_NOT_FOUNDFB_UNAUTHORIZED > RESOURCE_ACCESS_UNAUTHORIZEDREQUIRED_ATTRIBUTE_MISSING > REQUIRED_ATTRIBUTE_MISSING, REQUIRED_ATTRIBUTE_EMPTYREQUIRED_RELATIONSHIP_MISSING > REQUIRED_RELATIONSHIP_MISSING, REQUIRED_RELATIONSHIP_EMPTYNOT_FOUND_RESOURCE > RESOURCE_NOT_FOUNDINTERNAL_ERROR_UNKNOWN > UNHANDLED_INTERNAL_ERROR
- [NSX-285][NSX-485] The API is now capable of returning multiple errors in a single response. The validation for
resource creation, as well as the serializers have been adapted to return as many errors as possible in a single
response.
- Completely reworked the implementation for throwing API specific exceptions to support multiple errors and a cleaner re-usable implementation.
RestApiExceptionis now final and all subclasses have been removed.ApiErrorwith theapiError()factory method has been added to provide a clean way to instantiate error objects.
- [NSX-285][NSX-485] Parameter errors (eg path parameter, query parameter) now return multiple errors in one response, one referring to the parameter itself and any error that was the original cause. (eg illegal date format error in parameter serialization)
INTERNAL_ERROR_SEARCH_FAILEDnow includes the resource type in the error detail message.RESOURCE_CREATION_FAILEDnow includes the resource type in the error detail message.RESOURCE_UPDATE_FAILEDnow includes the resource type in the error detail message.MALFORMED_HEADERerrors now include asourceobject with theheaderfield.
0.21.0 (2025-05-26)
Added
- Added custom anchors
custom-filter-parametersto openapi definition of filter endpoints for elements that have a custom or customizable finder.
Changed
net.democritus.control.jaxrs.exception.ErrorParamnow implementsSerializable.- Updated dependencies:
net.democritus:nsx-jackson-support:1.3.0 > 1.4.0
- Feature anchor
filter-parameters-fieldsis now always present in classFinderConnectorContract.FilterParameters. Previously only for customizable finders. - Feature anchor
filter-parameters-methodsis now always present in classFinderConnectorContract.FilterParameters. Previously only for customizable finders. - Feature anchor
filter-mappingis now always present in methodFinderConnector.mapFilter(). Previously only for customizable finders.
0.20.0 (2025-05-15)
Added
- Added
custom-importsanchors toAuthenticationRequestFilter.
Changed
- Updated signature of
authenticatemethod inAuthenticationRequestFiltertoauthenticate(AuthenticationParameters, Context)to allow additional information to be passed to the method. This change is backwards compatible with the previous implementation for all custom code or features. - Updated dependencies:
- Updated
org.apache.tika:tika-core:2.9.3 > 2.9.4
- Updated
0.19.0 (2025-04-10)
Fixed
- Added missing exception mapping for validation error in to-many relationships.
Changed
- Updated dependencies:
- Updated
net.democritus:nsx-jaxrs-jersey-support:1.4.0 > 1.5.0 - Updated
org.apache.tika:tika-core:2.9.2 > 2.9.3
- Updated
0.18.3 (2025-04-09)
Fixed
- [NSX-285][NSX-485] Validation of relationships was only applied to required fields.
0.18.2 (2025-04-09)
Fixed
- [NSX-285][NSX-485] Data field was not checked for link fields.
- [NSX-285][NSX-485] Always supplying relationship objects was not validated for link fields.
- [NSX-285][NSX-485] To-many relationship objects were not validated.
0.18.1 (2025-04-09)
Fixed
- [NSX-285][NSX-485]
nullvalues were not checked for required fields. - [NSX-285][NSX-485] Empty string values were not checked for required fields.
0.18.0 (2025-04-08)
Fixed
- The technical type validation in
ReferenceConverteralways failed.
Added
- [NSX-285][NSX-485] Added input validation for required attributes and relationships.
- [NSX-285][NSX-485] Added validation of resource
typefield inPOSTrequests to create a resource.
Changed
- [NSX-285][NSX-485] Added error source
pointerto error with typeCLIENT_GENERATED_ID_UNSUPPORTED. - [NSX-285][NSX-485] Added error source
pointerto error with typeATTRIBUTE_UNSUPPORTED. - [NSX-285][NSX-485] Added error source
pointerto error with typeRELATIONSHIP_UNSUPPORTED.
0.17.0 (2025-03-28)
Added
- Added technical validation for resource identifier objects in the
ReferenceConverter.toDataRef()method.
0.16.1 (2025-03-19)
Fixed
- Fixed a syntax issue in a sub-template that broke the code at compile-time.
0.16.0 (2025-03-19)
Fixed
- A POST call for a resource will now ignore any field that is not given and is not explicitly marked required in the model.
Added
- Added option
experimental.control.stdapi.customizeto introduce custom anchors in the root feature classes for the application and components.
Changed
- Updated dependencies:
net.democritus:nsx-jackson-support:1.2.0 > 1.3.0
0.15.3 (2025-03-07)
Fixed
- [NSX-285][NSX-581] Fix support for
noControlLayeroption at DataElement level.
0.15.1 (2024-12-11)
Fixed
- Missing field in authorization filter when default implementation is used.
0.15.0 (2024-12-11)
Added
- [NSX-285][NSX-520] New endpoints
GET /app/accessRight/{accessRight}andGET /app/accessRight?filter={accesssRights}to check the access rights of the user. - [NSX-285][NSX-520] Added default implementation to the
filterfeature anchor inAuthorizationRequestFilterDynamicFeatureto use the newAccessRightValidatorclass to check the access rights.
Changed
- The
UnknownExceptionHandlerclass now also logs exceptions as warnings, as these are exceptions that were not caught by any other exception handler.
Removed
- Removed custom anchors from
AuthorizationRequestFilterDynamicFeatureclass.
0.14.1 (2024-11-18)
Fixed
- [NSX-285][NSX-562] Filter parameters for finders were missing a null check to make them optional.
0.13.2 (2024-11-12)
Fixed
- [NSX-285][NSX-548] Implemented separate exception handling for DataCommand errors.
- Fixed a few operationId collisions for application-level endpoints in the openapi specification.
0.13.1 (2024-11-08)
Fixed
- [NSX-285][NSX-554] Implemented RFC3339 date conversion for API parameters.
- Added missing import in expander template.
0.13.0 (2024-11-08)
Fixed
- Bypass the authorization filter for
OPTIONSmethod.
Added
- [NSX-285][NSX-462] Implemented filter to handle calls for
OPTIONS. - [NSX-285][NSX-536] Implemented filter to handle CORS (pre-flight) requests.
0.12.0 (2024-11-06)
Changed
- Moved pagination parameters for find endpoints to a separate class.
- [NSX-285][NSX-543] Moved rule to enable Knockout with standard API to
net.democritus:Expanders. - Updated expander dependencies:
net.democritus:Expanders:7.7.0 -> 7.8.1
0.11.0 (2024-10-29)
Added
- [NSX-285][NSX-543] Added support for custom finders.
- [NSX-285][NSX-543] Added support for customizable finders.
0.10.0 (2024-10-22)
Fixed
- Exception handler for
JsonMappingExceptiondid not handle subclasses, resulting in 500 error instead of 400.
Added
- Added support for collection linkfields in openAPI specification for DataCommand.
- Added contract interface for
MenuItemConnector. - Added contract interface for
SessionPropertyConnector. - Added contract interface for
TranslationConnector.
Changed
- [NSX-285][NSX-546] Split up
FinderConnectorandFinderConnectorContractinto separate root level classes.
0.9.0 (2024-10-19)
Fixed
- Added
@Singletonannotation to the connectors managed by theRouteConnector.
Changed
- Return 400 bad request for DataCommands when supplying an attribute or relationship that does not exist.
- [NSX-285][NSX-538] A
GETcall on a resource type will now default to the 'findAll' finder if nofilterparameter is supplied.
0.8.0 (2024-10-17)
Added
- [NSX-285][NSX-425] Added support for collection linkfields in DataCommands.
Changed
- [NSX-285][NSX-425] Return error as per specification when trying to replace a readonly collection relationship in
POSTandPATCHendpoints.
0.7.0 (2024-10-16)
Fixed
- Exception handler for unhandled exceptions was not registered in the API.
Added
- [NSX-285] Implemented error when client provides client-generated identifier on
POSTrequests. - [NSX-285] Return 400 bad request for resource POST/PATCH when supplying an attribute or relationship that does not exist.
0.6.0 (2024-10-14)
Added
- [NSX-285][NSX-425] Describe collection linkfields for
GET,POSTandPATCHendpoints on a DataElement in the OpenAPI specification. - [NSX-285][NSX-425] Added collection linkfields to
POSTandPATCHendpoints for DataElement resources.
0.5.0 (2024-10-10)
Fixed
- Fixed expanded code for
DeleteResourceConnector.
Added
- [NSX-285][NSX-425] Preliminary support to include collection linkfields in the resource payloads.
0.4.0 (2024-10-09)
Added
- [NSX-285] Added contract interfaces for route connectors, element connectors, resource connectors, finder connectors and command connectors.
Changed
- Timestamps in the output documents are now correctly formatted according to the RFC3339 format.
0.3.0 (2024-09-05)
Fixed
- Removed incorrect property for error handler.
Added
- [NSX-285][NSX-485] Catch unhandled exceptions in request pipeline and return a valid error response.
0.2.1 (2024-08-14)
Fixed
- Corrected request media type in api documentation for datacommand endpoints.
0.1.0 (2024-08-08)
Fixed
- Added missing
#control.cruds.jaxrstag onPublicPropertyConnectorExpander.
Changed
- Extracted from main expanders project.
- Renamed expansion resources:
net.democritus:jaxrs-standard-api-expanders > net.democritus.api.rest:jaxrs-standard-api-expandersnet.democritus:fileio-stdapi-expanders > net.democritus.api.rest:jaxrs-standard-api-fileio-expandersnet.democritus:datacommands-stdapi-expanders > net.democritus.api.rest:jaxrs-standard-api-datacommands-expanders
- Renamed runtime libraries:
net.democritus:application-shared-jaxrs-stdapi > net.democritus.api.rest:jaxrs-standard-api-runtimenet.democritus:application-shared-jaxrs-stdapi-datacommands > net.democritus.api.rest:jaxrs-standard-api-datacommands-runtime
- Renamed return header for upload endpoints from
X-UploadFileIdtoNS-File-Upload-Id.