standard-api-expanders
1.1.0 (2026-07-23)
Changed
- Updated dependencies
net.democritus:nsx-jackson-support:1.6.2 > 1.6.3
- Updated integration testing dependencies
- Jackson:
2.21.4 > 2.22.1 - Junit:
6.1.0 > 6.1.2 io.rest-assured:rest-assured:6.0.0 > 6.0.1
- Jackson:
1.0.0 (2026-06-16)
Changed
- Breaking change: The
control.cruds.jaxrsoption has been removed and is no longer required. The standard-api is enabled by default. - Updated dependencies:
net.democritus:jee-proxy-logic-expanders:9.4.0 > 9.5.0net.democritus:application-shared-menu:9.4.0 > 9.5.0net.democritus.metamodel:prime-core:2025.16.0 > 2026.4.0net.democritus.metamodel:control-layer-struts-expanders:10.2.0 > 10.3.0
Added
- Added support for dot-separated (U+002E FULL-STOP, “.”) sort fieldsFieldA property of a DataElement expanded to a database column and user interface input element. to be used to request sorting based upon relationship attributes.
0.30.1 (2026-05-27)
Fixed
- Fixed typo in
IoStdApiFeatureExpanderMapping.xmlso that dataElements with only an export option without import can still be registered in the Connectors.
0.30.0 (2026-05-05)
Added
- Added the
struts2module as a symbiotic dependency to thestandard-api-expandersmodule for backwards compatability. - Added feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to
SortParameterValidatorto make it possible to sort on more than just valueFieldsFieldA property of a DataElement expanded to a database column and user interface input element..
Changed
- Added support for the
JAXRS:timestampZonenativeType, to set thetimezoneproperty on a datetime formatted fieldFieldA property of a DataElement expanded to a database column and user interface input element..
0.29.0 (2026-04-16)
Changed
- Updated dependencies:
net.democritus:prime-core:2024.4.5 > 2025.16.0net.democritus:prime-data:2024.0.4 > 2025.1.0net.democritus:Expanders:7.8.1 > 9.4.0
- [BE-11] Replace dependencies on
Expanderswith a smaller subset - [BE-11] Move
ApplicationJaxrs.StrutsheaderXmlExpanderto a separate module
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 applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution..
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 fieldsFieldA property of a DataElement expanded to a database column and user interface input element. defined directly in projectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. 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 applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. 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 fieldsFieldA property of a DataElement expanded to a database column and user interface input element. 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 theidfieldFieldA property of a DataElement expanded to a database column and user interface input element. 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 fieldFieldA property of a DataElement expanded to a database column and user interface input element., 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 theheaderfieldFieldA property of a DataElement expanded to a database column and user interface input element..
0.21.0 (2025-05-26)
Added
- Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.
custom-filter-parametersto openapi definition of filter endpoints for elements that have a custom or customizable finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement..
Changed
net.democritus.control.jaxrs.exception.ErrorParamnow implementsSerializable.- Updated dependencies:
net.democritus:nsx-jackson-support:1.3.0 > 1.4.0
- Feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.
filter-parameters-fieldsis now always present in classFinderConnectorContract.FilterParameters. Previously only for customizable findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.. - Feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.
filter-parameters-methodsis now always present in classFinderConnectorContract.FilterParameters. Previously only for customizable findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.. - Feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.
filter-mappingis now always present in methodFinderConnector.mapFilter(). Previously only for customizable findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement..
0.20.0 (2025-05-15)
Added
- Added
custom-importsanchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. 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 fieldsFieldA property of a DataElement expanded to a database column and user interface input element..
0.18.2 (2025-04-09)
Fixed
- [NSX-285][NSX-485] Data fieldFieldA property of a DataElement expanded to a database column and user interface input element. was not checked for link fieldsFieldA property of a DataElement expanded to a database column and user interface input element..
- [NSX-285][NSX-485] Always supplying relationship objects was not validated for link fieldsFieldA property of a DataElement expanded to a database column and user interface input element..
- [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 fieldsFieldA property of a DataElement expanded to a database column and user interface input element.. - [NSX-285][NSX-485] Empty string values were not checked for required fieldsFieldA property of a DataElement expanded to a database column and user interface input element..
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
typefieldFieldA property of a DataElement expanded to a database column and user interface input element. 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 fieldFieldA property of a DataElement expanded to a database column and user interface input element. that is not given and is not explicitly marked required in the model.
Added
- Added option
experimental.control.stdapi.customizeto introduce custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in the root feature classes for the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. 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 fieldFieldA property of a DataElement expanded to a database column and user interface input element. 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 anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. 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 anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. from
AuthorizationRequestFilterDynamicFeatureclass.
0.14.1 (2024-11-18)
Fixed
- [NSX-285][NSX-562] Filter parameters for findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. 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 applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.-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 expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. 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 APIStandard API (stdAPI). A fully generated JAX-RS REST API expanding JSON:API compliant endpoints directly from JEE element models. to
net.democritus:Expanders. - Updated expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. 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 findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement..
- [NSX-285][NSX-543] Added support for customizable findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement..
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 linkfieldsFieldA property of a DataElement expanded to a database column and user interface input element. 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' finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. if nofilterparameter is supplied.
0.8.0 (2024-10-17)
Added
- [NSX-285][NSX-425] Added support for collection linkfieldsFieldA property of a DataElement expanded to a database column and user interface input element. 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 linkfieldsFieldA property of a DataElement expanded to a database column and user interface input element. for
GET,POSTandPATCHendpoints on a DataElement in the OpenAPI specification. - [NSX-285][NSX-425] Added collection linkfieldsFieldA property of a DataElement expanded to a database column and user interface input element. 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 linkfieldsFieldA property of a DataElement expanded to a database column and user interface input element. in the resource payloads.
0.4.0 (2024-10-09)
Added
- [NSX-285] Added contract interfaces for route connectors, element connectors, resource connectors, finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. 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 expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. project.
- Renamed expansion resourcesExpansion Resource (ExpansionResource). A reusable resource bundle containing expanders and features that provide specific application capabilities, defined in the expansion settings and added to the classpath during expansion.:
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.