Skip to main content

rest-expanders


4.30.0 (2024-12-18)

Added

  • Added new endpoints per API to check if the user or session has one or more access rights.
    • GET /{apiName}/security/accessrights/{accessRight}
    • GET /{apiName}/security/accessrights?filter={accessRights}

Changed


4.29.0 (2024-09-12)

Fixed

  • Added url mapping to expose Swagger UI static files when the standard API is in use.

Changes


4.28.1 (2024-09-03)

Fixed

  • Corrected servlet mapping to correctly serve Swagger UI static resources without blocking other filters.

4.28.0 (2024-08-30)

Fixed

  • Missing exception in method signature for SwaggerUIServlet.doGet().
  • SwaggerUI servlet was not appended to web.xml.

Changed


4.27.0 (2024-08-30)

caution

This release is broken. Please use 4.28.0 instead.

Fixed

  • (REST-55) resourceUri field in the output model was never set. Though originally used only for GETlist endpoints, it is now set in OutputMapper for consistency.
  • References to other elements could contain a resourceUri when there was no GET endpoint to retrieve the resource.

Added

  • (REST-89) Added cascading legacy option legacy.svcapi.exposeWithListOnly on Field, DataElement and Component, to restore the old behavior of default-exposing fields on the output model when only a list GET endpoint is available.
  • (REST-89) Added model validation with warning about using list GET endpoints without resource GET endpoints.

Changed

  • Use application name instead of dynamically determining it from path in swagger-initializer.js.
  • (REST-86) Replaced Struts2-based routing for SwaggerUI.

4.26.0 (2024-08-08)

Fixed

  • Aborted download requests logged IOExceptions as severe errors due to the implementation in Jersey. Implemented a workaround to intercept the exception before it could be logged.

Changed

  • Updated dependencies:
    • net.democritus.metamodel:prime-core: 2024.4.3 > 2024.4.5

4.25.1 (2024-08-07)

Fixed

  • Aborted upload requests returned internal server errors instead of ending the request silently.

4.25.0 (2024-08-05)

Fixed

  • Dependency on older querysearch resulted in broken model loading if used outside of rest-jaxrs-stack without explicitly defining querysearch in expansion settings.

Changed

  • Updated dependencies:
    • net.democritus:nsx-jackson-support: 1.1.0 > 1.2.0
    • net.democritus:nsx-jaxrs-jersey-support: 1.2.0 > 1.3.0
    • net.democritus:nsx-runtime: 2024.0.0 > 2024.1.0
    • net.democritus:querysearch-expanders: 2.27.0 > 3.2.1
    • net.democritus.metamodel:prime-core: 2024.4.2 > 2024.4.3

4.24.0 (2024-08-03)

Fixed

  • Multiple exposed io fields would lead to code that did not compile in the resource mapper.

Changed

  • Renamed UploadReferenceMapper classes to FileReferenceMapper.
  • File fields can now also be exposed when there is no upload functionality, but only download.
  • Renamed option svcapi.field.upload to svcapi.endpoint.upload.
  • Renamed option svcapi.field.download to svcapi.endpoint.download.
  • Options svcapi.endpoint.upload and svcapi.endpoint.download must now always be used explicitly to indicate that a file field should have the relevant endpoints, even for assets::Asset. The behavior of exposing default behavior with exposeRestField has been decoupled from the behavior of generating the endpoints.
  • exposeRestField now has two additional optional values POST_FILE and GET_FILE to specifically expose default functionality for that field when available on the upload and download endpoints.

Removed

  • Removed DELETE as optional value for exposeRestField option, since that makes no sense.

4.23.0 (2024-07-31)

Added

  • Implemented DataAccess rights for upload and download endpoints.
  • Added support for Access-Control-Expose-Headers header in the CorsFilterProvider.

Changed

  • Renamed return header for file uploads from X-UploadFileId to NS-File-Upload-Id.
  • Download endpoints now return a 404 error when the requested file is missing.
  • Reworked how references to file resources are returned. They are now always an object with the identifier nested, optionally a filename and when a download endpoint is available also an URI to that endpoint.

4.22.0 (2024-07-27)

Fixed

  • (REST-63) Changed functionality that uses finders to default to Se and Sne operators for string identifiers when available instead of Eq and Ne, with fallback to Eq and Ne for backwards compatibility.
  • (REST-84) The AddDefaultRestApi transmutation added value types as value field types.

Added

  • Added model validation to indicate deprecation of OpenAPI 2 support.
  • Implemented endpoints for file IO (upload/download) using the new options svcapi.field.upload and svcapi.field.download on fields to generate stubs for them.
  • Added new rest-assets-expanders resource that provides an implementation for linkfields to assets:Asset as file io endpoints.

Changed

  • Split off rest-jaxrs-stack module into a separate project, so it can be released independently.
  • Updated dependencies:
    • net.democritus:Expanders: 7.3.1 > 7.6.0
    • net.democritus:base-components: 2024.2.0 > 2024.3.4
    • net.democritus.metamodel:prime-core: 2024.3.11 > 2024.4.2
  • (REST-63) The transmutations to add an API by default will now generate finders using Se and Sne.
  • (REST-63) Updated the migration transmutation to add finders with Se for functional key (hidden from knockout UI if newly added) and replace the unique finders that exclude the functional key with the strict operators.

Removed

  • Removed example for sortby parameter on getList endpoints.

4.21.1 (2024-06-13)

Fixed

  • (REST-83) Fixed implementation of noRestExcludeNull option, which broke after refactoring.

4.21.0 (2024-06-11)

Fixed

  • InputValidation.isShort() checked integer type instead of short type.

Changed

  • Updated dependencies:
    • net.democritus.metamodel:prime-core: 2024.3.8 > 2024.3.11

4.20.2 (2024-06-03)

Fixed

  • The call to the UpdateCommandExtension was not injected correctly into the logic bean under specific circumstances.

Changed

  • Updated dependencies:
    • net.democritus.metamodel:prime-core: 2024.3.4 > 2024.3.8

4.20.1 (2024-05-31)

Fixed

  • Fixed template for ConnectorTest expander.

4.20.0 (2024-05-30)

Changed

  • (REST-82) Migrated expanders to use ValueTypes instead of ValueFieldTypes.
  • The default-implementation anchors (previously non-functional) in the CommandExtension classes have been replaced with default feature anchors, allowing the contents of the anchor to be fully replaced by an expander feature.
  • Updated dependencies:
    • net.democritus.metamodel:prime-core: 2024.2.3 > 2024.3.4

4.19.0 (2024-05-21)

Changed

  • Updated dependencies:
    • net.democritus:base-components: 2024.0.0 > 2024.2.0
    • net.democritus:Expanders: 6.6.1 > 7.3.1
    • net.democritus:nsx-default-stack: 2024.3.8 > 2024.7.1
    • net.democritus:nsx-jackson-support: 1.0.0 > 1.1.0
    • net.democritus:nsx-jaxrs-jersey-support: 1.0.0 > 1.2.0
    • net.democritus:querysearch-expanders: 2.23.1 > 2.27.0
    • net.democritus.metamodel:prime-core: 2024.1.1 > 2024.2.3
  • Swagger2: 2.2.21 > 2.2.22

4.18.0 (2024-04-26)

Changed

  • Moved Jersey dependencies into nsx-jaxrs-jersey-support library.
  • Downgraded minimum dependencies for rest-expanders:
    • net.democritus:base-components: 2024.1.4 > 2024.0.0
    • net.democritus:Expanders: 7.0.6 > 6.6.1
    • net.democritus:querysearch-expanders: 2.24.0 > 2.23.1

4.17.0 (2024-04-17)

Changed

  • Moved Jackson dependencies into nsx-jackson-support library.
  • Updated dependencies:
    • net.democritus:base-components: 2024.1.3 > 2024.1.4
    • net.democritus:Expanders: 7.0.5 > 7.0.6
    • net.democritus:nsx-default-stack: 2024.3.5 > 2024.3.7

4.16.0 (2024-04-05)

Changed

  • Updated dependencies:
    • net.democritus:Expanders: 7.0.4 > 7.0.5
    • net.democritus:nsx-default-stack: 2024.3.4 > 2024.3.5

4.15.0 (2024-03-28)

Fixed

  • (REST-76) Replaced sortby parameter on GETlist endpoint with a string with pattern validation in the OpenAPI 3 specification.

Changed

  • Updated dependencies:
    • net.democritus:base-components: 2024.1.1 > 2024.1.3
    • net.democritus:nsx-default-stack: 2024.3.3 > 2024.3.4
    • net.democritus.metamodel:prime-core: 2024.1.0 > 2024.1.1

4.14.0 (2024-03-22)

Changed


4.13.1 (2024-03-19)

Fixed

  • Updated dependencies:
    • net.democritus:base-components: 2024.1.0 > 2024.1.1
    • net.democritus:Expanders: 7.0.0 > 7.0.2
    • net.democritus:nsx-default-stack: 2024.3.0 > 2024.3.2
    • net.democritus:querysearch-expanders: 2.23.1 > 2.24.0

4.13.0 (2024-03-16)

Changed


4.12.0 (2024-02-04)

Changed

  • Rely on dynamically assigned default groupId instead of determining default value where used.
  • Updated dependencies:

4.11.0 (2024-01-26)

Fixed

  • Updated default groupId following change in Expanders 6.4.3.

Changed

  • Updated dependencies:
    • net.democritus:Expanders: 6.4.1 > 6.4.4

4.10.0 (2024-01-22)

Changed

  • Updated dependencies:
    • net.democritus:Expanders: 6.4.1 > 6.4.2
    • net.democritus:nsx-default-stack: 2024.0.0 > 2024.0.1

4.9.0 (2024-01-22)

Changed


4.8.0 (2023-12-16)

Added

  • Added links to the documentation for all option types.

Changed


4.7.0 (2023-12-15)

Fixed

  • The implicit metamodel was nog constructed correctly for applications that have multiple programs that use Component.

Changed

  • Updated dependencies:
    • net.democritus:Expanders: 6.0.2 > 6.2.2
    • net.democritus:nsx-default-stack: 2023.24.2 > 2023.26.1
  • (REST-74) Added support for new audit.create.timestamp and audit.modify.timestamp options that were introduced as an alternative to matching on the field names enteredAt and lastModifiedAt. The behavior remains the same regardless of the field name in the DataElement.

4.6.0 (2023-12-05)

Fixed

  • (REST-70) Transmutation to add a REST API to a DataElement would throw an exception in some scenarios.
  • (REST-71) Synchronized authentication to avoid user being created twice by separate transactions.
  • No longer use getUserContext() on AuthenticationResult.

Changed

  • Updated dependencies:
    • net.democritus:querysearch-expanders: 2.21.0 > 2.22.0

4.5.0 (2023-11-23)

Added

  • (REST-68) Added option jaxrs.querySearch.exposeFilter to expose a QueryFilterField on the GETlist endpoint.
  • (REST-68) Added model validation to ensure that jaxrs.querySearch.exposeFilter is used on filters of the correct QuerySearch.
  • Added description and additional information for several query parameters for OpenAPI 3:
    • GETlist page parameter: description and minimum value
    • GETlist pagesize parameter: description, minimum and maximum value
    • GETlist sortby parameter: description, validation and an example
    • GETlist query filter parameters: description (from QueryFilterField)

Changed

  • Marked IllegalDBStateInterceptor as deprecated and removed it from the default interceptors added in CustomCommandResultInterceptor.
  • Marked IllegalDBStateException as deprecated as it was only thrown for diagnostics that were never in the default stack.
  • (REST-8) Fully reworked expanders for exception handling, now based on an implicit metamodel to retrain backwards compatibility while the model is being built out further for version 5 of rest-expanders.
  • SwaggerOIDCConfig is now marked final.
  • Migrated all javax imports to the new import system to prepare for migration to JEE9+.

Removed

  • Removed deprecated exception handler for IllegalDBStateException.
  • Removed deprecated errors SE006 and SE009 from ServerError.java and ServerErrorMessages.properties

4.4.0 (2023-11-17)

Changed


4.3.0 (2023-11-15)

caution

This update breaks the API of the SortParameters class. Though to fix the issue it had, a LinkedHashMap could be utilized and retain more compatibility, but since there was no good way of enforcing the use of this type without breaking backwards compatibility, it was decided to refactor to a list of pairs instead. This may impact custom code that uses SortParameters.

Fixed

  • When serializing sorting parameters, a HashMap was used instead of a LinkedHashMap, which caused the loss of ordering when passing multiple sorting parameters through the GETlist endpoint.

Changed

  • Updated dependencies:
  • SortParameters.getParameters() now returns List<ParameterOrder> instead of Map<String, SortOrder>.
  • SortParameters.setParameters() now takes a List<ParameterOrder> instead of Map<String, SortOrder>.
  • net.democritus.jaxrs.MediaTypes is now marked final.
  • BaseUrlContext.from(Context) now throws ContextGroupNotFoundException instead of IllegalStateException if the BaseUrlContext group was not found in the supplied Context object.

4.2.0 (2023-11-10)

Changed

  • Updated dependencies:
    • net.democritus:Expanders: 5.39.0 > 6.0.0
    • net.democritus:nsx-default-stack: 2023.23.3 > 2023.24.0

4.1.1 (2023-11-09)

Fixed

  • querysearch-expanders was not correctly updated.

4.1.0 (2023-11-09)

Fixed

  • Removed @Override annotation from validate() method in Agent class.

Changed

  • Updated dependencies:
    • net.democritus:Expanders: 5.38.0 > 5.39.0
    • net.democritus:base-components: 2023.14.3 > 2023.14.4
    • net.democritus:nsx-default-stack: 2023.22.1 > 2023.23.3
    • net.democritus:querysearch-expanders: 2.20.0 > 2.21.0
    • net.democritus.metamodel:prime-core: 2023.9.2 > 2023.9.3
  • Updated Swagger UI: 4.18.1 > 5.9.2

Removed

  • Removed upgrade transmutation for provisioning of DataCommand options for REST API based on the names of those commands. (If still required, upgrade to 4.0.0 and run upgrade transmutation before upgrading to 4.1.0.)

4.0.0 (2023-11-07)

caution

This version contains breaking changes. Please refer to the migration guide in the documentation for more information about these changes and what code is affected.

Changed

Removed

  • Removed implicit QuerySearch model created based on includeJaxrsConnector option.
  • Removed implicit provisioning of DataCommand options for the REST API.
  • Removed model validation to check if the DataCommands are marked with options for JAX-RS.

3.33.0 (2023-10-15)

Changed


3.32.0 (2023-10-13)

Changed

  • Updated dependencies:
    • net.democritus:Expanders: 5.37.1 > 5.37.2
    • net.democritus:nsx-default-stack: 2023.21.0 > 2023.21.1

3.31.0 (2023-10-12)

Changed

  • The DatabaseValidator and InputValidation classes are now final.
  • Updated dependencies:
    • net.democritus:Expanders: 5.36.7 > 5.37.1
    • net.democritus:base-components: 2023.13.0 > 2023.14.0
    • net.democritus.metamodel:prime-core: 2023.8.0 > 2023.9.1
    • net.democritus:nsx-default-stack: 2023.20.0 > 2023.21.0

3.30.0 (2023-10-11)

Changed

  • Replaced uses of deprecated methods in expander templates:
    • net.palver.util.StringUtil.join()
    • net.palver.util.StringUtil.split()
  • Updated dependencies:
    • net.democritus:Expanders: 5.36.1 > 5.36.7
    • net.democritus:nsx-default-stack: 2023.19.1 > 2023.20.0
    • net.democritus.metamodel:prime-core: 2023.7.0 > 2023.8.0

3.29.1 (2023-09-27)

Fixed

  • Removed deprecated support for remote-only ejb policy, which is not supported by the stack.
  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.19.0 > 2023.19.1 (deprecated options used in base-components)

3.29.0 (2023-09-23)

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.18.1 > 2023.19.0
  • Updated expander dependencies (minimum version):
    • net.democritus:Expanders: 5.35.1 > 5.36.1
    • net.democritus.metamodel:prime-core: 2023.7.0 > 2023.8.0

3.28.1 (2023-09-22)

Fixed

  • Updates to fix dependency on snapshot:
    • net.democritus:nsx-default-stack: 2023.17.1 > 2023.18.1
    • net.democritus:Expanders: 5.35.0 > 5.35.1

3.28.0 (2023-09-21)

Fixed

  • Updated module dependency feature to use the new groupIds used by Expanders for the component modules.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.15.2 > 2023.17.1
    • net.democritus:querysearch-expanders: 2.17.2 > 2.18.0
  • Updated expander dependencies (minimum version):
    • net.democritus:base-components: 2023.10.0 > 2023.11.0
    • net.democritus:Expanders: 5.32.1 > 5.35.0
    • net.democritus.metamodel:prime-core: 2023.5.3 > 2023.7.0
    • net.democritus:querysearch-expanders: 2.17.2 > 2.18.0
  • Updated dependencies:

3.27.0 (2023-08-30)

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.14.4 > 2023.15.2
  • Updated expander dependencies (minimum version):
    • net.democritus:base-components: 2023.8.2 > 2023.10.0
    • net.democritus:Expanders: 5.30.5 > 5.32.1

3.26.0 (2023-08-09)

Fixed

  • Reverted deprecation of DataFacade methods and re-added calls to DataFacade.findById() and DataFacade.findDetailsById() due to the new implementation not covering all functionality that was previously available.

Changed


3.25.0 (2023-07-29)

Fixed

  • RemoveElementCommandExtension now calls Agent.delete(DataRef) instead of the deprecated Agent.delete(Long).
  • Updated since value for deprecation notice on ResourceNotFoundException constructor to fully-qualified name of expansion resource.
  • Removed two imports of net.palver.util.Options that were left behind without any apparent uses.

Changed

  • Replaced all code calling DataFacade.findById() and marked the method as deprecated for removal.
  • Replaced all code calling DataFacade.findDetailsById() and marked the method as deprecated for removal.
  • Marked the expanded DataFacade deprecated for removal as all expanded methods inside have been marked deprecated. This class will be removed in a future update.
  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.14.1 > 2023.14.4
    • net.democritus:querysearch-expanders: 2.16.0 > 2.17.2
  • Updated expander dependencies (minimum version):
    • net.democritus:base-components: 2023.8.1 > 2023.8.2
    • net.democritus:Expanders: 5.30.1 > 5.30.4
    • net.democritus.metamodel:prime-core: 2023.5.2 > 2023.5.3
    • net.democritus:querysearch-expanders: 2.16.0 > 2.17.2
  • (REST-66) Improved experimental support for sorting on Ln02 linkfields that have exposeRestField. Rows for which the link is null are no longer excluded.

3.24.0 (2023-07-16)

Fixed

  • Improved code for checking result of GET call with the new SearchResult.getFirstResult() method.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.14.0 > 2023.14.1
  • Updated expander dependencies (minimum version):
    • net.democritus:Expanders: 5.30.0 > 5.30.1

3.23.0 (2023-07-12)

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.13.0 > 2023.14.0
    • net.democritus:querysearch-expanders: 2.15.0 > 2.16.0
  • Updated expander dependencies (minimum version):
    • net.democritus:base-components: 2023.7.0 > 2023.8.1
    • net.democritus:Expanders: 5.29.0 > 5.30.0
    • net.democritus:querysearch-expanders: 2.15.0 > 2.16.0
  • Migrated expanded code for OIDC following breaking change in Expanders.

3.22.0 (2023-07-11)

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.12.0 > 2023.13.0
  • Updated expander dependencies (minimum version):
    • net.democritus:base-components: 2023.6.0 > 2023.7.0
    • net.democritus:Expanders: 5.28.1 > 5.29.0
  • Updated dependencies:

3.21.1 (2023-07-04)

Fixed

  • Added scm exclude for project flatten operation.

3.21.0 (2023-07-04)

Added

  • Added SCM information.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.11.0 > 2023.12.0
  • Updated expander dependencies (minimum version):
    • net.democritus:base-components: 2023.4.0 > 2023.6.0
    • net.democritus:Expanders: 5.27.0 > 5.28.1
    • net.democritus.metamodel:prime-core: 2023.4.1 > 2023.5.2
  • Updated dependencies:

3.20.0 (2023-06-26)

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.10.1 > 2023.11.0
  • Updated expander dependencies (minimum version):
    • net.democritus:base-components: 2023.4.0 > 2023.5.0
    • net.democritus:Expanders: 5.26.1 > 5.27.0
  • Replaced most uses of SearchResult.getFirst() with SearchResult.getFirstResult().

3.19.0 (2023-06-26)

Added

  • New constructor ResourceNotFoundException(List<ValidationFieldError>) that takes a list of errors.

Changed

  • Refactored code to use Context.find() instead of Context.getContext(). These changes do not have any impact on any custom code.
  • Constructor ResourceNotFoundException(ValidationFieldError) marked as deprecated.
  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.10.0 > 2023.10.1
  • Updated expander dependencies (minimum version):
    • net.democritus:Expanders: 5.26.0 > 5.26.1
  • Updated dependencies:
  • Cleaned up some code in GET endpoint implementations, so it uses the new constructor for ResourceNotFoundException and does not trigger SonarLint.

Removed

  • Removed long-deprecated method ResourceNotFoundException.getValidationError().

3.18.0 (2023-06-20)

caution

This version contains several breaking changes. Please refer to the migration guide in the documentation for more information about these changes and what code is affected.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.9.2 > 2023.10.0
    • net.democritus:querysearch-expanders: 2.14.1 > 2.15.0
  • Updated expander dependencies (minimum version):
    • net.democritus:base-components: 2023.3.1 > 2023.4.0
    • net.democritus:Expanders: 5.24.0 > 5.26.0
    • net.democritus.metamodel:prime-core: 2023.4.0 > 2023.4.1
    • net.democritus:querysearch-expanders: 2.14.1 > 2.15.0
  • Updated dependencies:
  • Replaced use of net.democritus.sys.Options.Option with java.util.Optional in:
    • <dataElement>CommonDataValidator.validate<dataElement>Exists()
    • <dataElement><operation>DataValidator.validate<dataElement>Exists()
    • <dataElement><operation>DataValidator.validate<dataElement>Unique()
    • ValidationResult.getFirstError()
    • DatabaseValidator.existsProjection()
    • DatabaseValidator.existsDataRef()
    • DatabaseValidator.isUniqueProjection()
    • DatabaseValidator.isUniqueDataRef()
    • DatabaseValidator.connectedProjection()
    • DatabaseValidator.connectedDataRef()

3.17.0 (2023-06-14)

Changed


3.16.0 (2023-05-31)

Fixed

  • Fixed data resource type for JAXRS technology.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.8.2 > 2023.9.0
  • Updated expander dependencies (minimum version):
    • net.democritus:base-components: 2023.3.1 > 2023.3.2
    • net.democritus:Expanders: 5.23.2 > 5.24.0
    • net.democritus.metamodel:prime-core: 2023.3.4 > 2023.4.0

3.15.0 (2023-05-25)

Changed


3.14.1 (2023-04-28)

Fixed

  • (REST-62) Fixed NPE on harvesting.

3.14.0 (2023-04-27)

Fixed

  • Fixed typo in expanded ValidationErrorMessages.properties file.

Changed


3.13.0 (2023-04-25)

Fixed

  • Some changes in spec filter caused issues because the filter is executed repeatedly.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.6.0 > 2023.6.2

3.12.0 (2023-04-20)

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.4.2 > 2023.6.0

3.11.1 (2023-04-13)

Fixed

  • (REST-61) enteredAt and lastModifiedAt were not mapped correctly as created and lastModified in the SortFieldMapper, to be consistent with naming in the output model.
  • (REST-60) Removed apiResponse-annotations anchors for OpenAPI 3 in Connector class + moved all @ApiResponse annotations to the endpoint methods directly.

3.11.0 (2023-04-11)

Fixed

  • Moved anonymous check in AuthorizationProvider before filter anchors and return in the condition when anonymous access is allowed, as the filtering typically happens based on the UserContext, which is empty for anonymous users.
  • (REST-59) Added missing response for GET endpoints to OpenApi 3.x spec.

Changed


3.10.3 (2023-04-06)

Fixed

  • Url for server in OpenAPI specification was not always generated correctly.

3.10.2 (2023-03-27)

Fixed

  • OpenApi annotation for byte array fields in output model used an incorrect property.
  • Use @Schema(requiredMode) instead of deprecated @Schema(required).

3.10.1 (2023-03-23)

Fixed

  • The SearchFailedInterceptor threw a DeleteFailedException instead of a SearchFailedException.
  • The ModificationFailedInterceptor threw a DeleteFailedException instead of a ModificationFailedException.

3.10.0 (2023-03-21)

caution

This version contains several breaking changes. Please refer to the migration guide in the documentation for more information about these changes and what code is affected.

Fixed

  • (REST-58) @SecurityRight annotations are now always added to every expanded REST endpoint. The annotation now has anchors to add parameters.
  • (REST-41) " characters are now escaped in model descriptions that are expanded into Java annotations.
  • (REST-56) The AuthorizationProvider now throws a javax.ws.rs.ForbiddenException instead of a net.democritus.jaxrs.exception.NotAuthorizedException when account::DataAccess is used for security and no matching right was found for the user. This is translated to a 403 Forbidden error instead of 401 Not Authorized, indicating that re-authentication will not change the outcome of the call.
  • When account::DataAccess is used for authentication, failing to retrieve the access rights from the database will now result in a 500 Internal Server Error instead of a 401 Not Authorized Error.

Added

  • (REST-10) Added support (and defaulting to) OpenAPI version 3.0. Experimental support for OpenAPI 3.1 is included, but does not function with Swagger UI at this time.
  • Added snakeyml version 2.0 as direct dependency to address CVE-2022-1471.

Changed


3.9.1 (2023-02-21)

Fixed

  • CustomCommandResultInterceptor class no longer compiled when option enableValidation is not present.

3.9.0 (2023-02-20)

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.1.1 > 2023.3.0
  • Updated expander dependencies (minimum version):
    • net.democritus.metamodel:prime-core: 2023.0.2 > 2023.0.3

3.8.1 (2023-02-19)

Fixed

  • (REST-57) There was still some leftover code that used the dataElement name for the remove command in the delete endpoint instead of the command matched by the jaxrs.command.delete option.

3.8.0 (2023-02-10)

Fixed

  • imports and annotations feature anchors were not added to PaginatedResponse class.
  • Transmutation to add a default API overwrite the value of the generateUuid option.
  • Transmutation to add a default API added the generateUuid option when isUnique was already present, which could be intentional.
  • Custom code was broken by changes in the DiagnosticInterceptor class. Added deprecated default method for backwards compatibility.

Added

  • Added a model validation to detect hasTargetInstance set to true on commands used for the REST API.
  • Added new options jaxrs.command.create, jaxrs.command.modify, jaxrs.command.update and jaxrs.command.remove to mark the commands for generated POST, PUT, PATCH and DELETE endpoints respectively.
  • Added a model validation to warn about commands that are not marked with the new jaxrs.command.<operation> options.
  • Added a temporary implicit model transformation to add the new jaxrs.command.<operation> options to commands for backwards compatibility.
  • Added transmutation to upgrade model for changes in rest-expanders.

Changed

  • Updated dependencies:
  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2023.0.6 > 2023.1.1
  • Updated expander dependencies (minimum version):
    • net.democritus:Expanders: 5.16.5 > 5.17.1
    • net.democritus.metamodel:prime-core: 2022.11.1 > 2023.0.2
  • Transmutation to add a default API now adds options cruds.table.hide and cruds.form.hide to a fields where it adds generateUuid.

3.7.0 (2023-01-29)

caution

This version contains a breaking change. Please refer to the migration guide in the documentation for more information about these changes and what code is affected.

Added

  • Added support for the new UniqueConstraints introduced in the elements model. As of right now, this is only supplementary support. The isUnique option is still required.

Changed

  • Updated dependencies:
  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.16.1 > 2023.0.6
  • Updated expander dependencies (minimum version):
    • net.democritus:Expanders: 5.15.0 > 5.16.5
    • net.democritus.metamodel:prime-core: 2022.10.9 > 2022.11.1
  • Moved several previously expanded classes to shared libraries (and as such, new package names):
    • <componentName>.jaxrs.command.DiagnosticInterceptor > net.democritus.jaxrs.command.DiagnosticInterceptor
    • <componentName>.jaxrs.command.CompositeDiagnosticInterceptor > net.democritus.jaxrs.command.CompositeDiagnosticInterceptor
    • <componentName>.jaxrs.command.CreationFailedInterceptor > net.democritus.jaxrs.command.CreationFailedInterceptor
    • <componentName>.jaxrs.command.DeletionFailedInterceptor > net.democritus.jaxrs.command.DeletionFailedInterceptor
    • <componentName>.jaxrs.command.ModificationFailedInterceptor > net.democritus.jaxrs.command.ModificationFailedInterceptor
    • <componentName>.jaxrs.command.SearchFailedInterceptor > net.democritus.jaxrs.command.SearchFailedInterceptor
    • <componentName>.jaxrs.command.IllegalDBStateInterceptor > net.democritus.jaxrs.command.IllegalDBStateInterceptor

3.6.0 (2023-01-05)

caution

This version contains breaking changes. Some anchors in Swagger UI were moved to a different file. Please refer to the migration guide in the documentation for more information about all breaking changes in this release.

Fixed

  • (REST-54) Use new struts stack for Swagger UI to avoid issues with COOP headers.
  • (REST-35) Inline JavaScript code for Swagger UI was moved to separate file due to upgrade to the latest version.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.15.1 > 2022.16.1
  • Updated Swagger UI: 3.52.5 > 4.15.5

3.5.0 (2022-11-29)

Fixed

  • Fixed issue where an implicit QuerySearch object would still be created, even if a DataElement already has a QuerySearch element marked with jaxrs.querySearch.
  • Several expanders did not correctly use the QuerySearch metamodel to generate files.

Added

  • New model validation to verify that a DataElement only has one QuerySearch element marked with jaxrs.querySearch.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.15.0 > 2022.15.1

3.4.1 (2022-11-28)

Fixed

  • Re-release with actual update of nsx-default-stack.

3.4.0 (2022-11-25)

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.14.4 > 2022.15.0
    • net.democritus:querysearch-expanders: 2.13.0 > 2.13.1
  • Updated expander dependencies (minimum version):
    • net.democritus:Expanders: 5.14.2 > 5.15.0
    • net.democritus.metamodel:prime-core: 2022.10.3 > 2022.10.9

3.3.0 (2022-11-24)

Changed


3.2.0 (2022-11-04)

Fixed

  • (REST-24) Added support to expose fields that use custom valuetypes. There is no support for validation with those types.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.14.0 > 2022.14.2
  • The custom and feature anchors in the PostInputMapper, PutInputMapper and PatchInputMapper classes switched position.

3.1.0 (2022-11-02)

Changed

  • Updated dependencies:
  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.13.6 > 2022.14.0

3.0.0 (2022-10-21)

caution

This version contains breaking changes. Expansion should now be ran with Java 17 and applications should target Java 17. Please refer to the migration guide in the documentation for more information about all breaking changes in this release.

Fixed

  • (REST-36) Fixed missing return character between imports for linked element fields.
  • (REST-36) No longer using LocalAgent to access links to elements in different components.

Added

  • Added transmutations to provision a default REST API for a complete Component or individual DataElements that are already part of a REST-enabled Component.
  • Added custom anchors to web.xml to register individual provider classes for JAX-RS.
  • Added several model validations to verify some conditions required to generate a REST API.
  • Added new shared libraries for common classes provided by the rest-expanders.

Changed

Removed

  • The legacy option jaxrs.transient.generateFacade.enable to generate the old Facade classes in the CONTROL layer has been removed.
  • Removed dependency on template in main expanders.
  • Removed uses of ClassBuilder from mappings.
  • Removed broken componentPackage option.
  • Removed expansion step that pruned the legacy command coupling through custom anchors in the logic bean.

2.20.0 (2022-09-27)

Changed


2.19.1 (2022-09-21)

Fixed

  • Updated stack dependency to restore hamcrest 2 dependency in application:
    • net.democritus:nsx-default-stack: 2022.12.3 > 2022.12.4

2.19.0 (2022-09-21)

Fixed

  • Fixed contract for PaginatedResponse.builder().

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.12.2 > 2022.12.3
    • net.democritus:querysearch-expanders: 2.9.1 > 2.10.0

2.18.0 (2022-09-09)

Changed

  • Moved Jetbrains annotations library into data resources with a dedicated layer implementation.
  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.11.0 > 2022.12.2
  • Updated expander dependencies (minimum version):
    • net.democritus:Expanders: 5.11.0 > 5.13.1

Removed

  • Removed the hamcrest test dependency for expanded projects, as nsx-runtime now provides version 2.2 as well.

2.17.1 (2022-09-06)

Fixed

  • Invalid code was generated in the ValidationBean when multiple identifiers are used in an endpoint path.

2.17.0 (2022-08-30)

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.10.2 > 2022.11.0

2.16.3 (2022-08-18)

Fixed

  • Added missing options jaxrs.endpoint.getList.sorting.disable, jaxrs.querySearch.projection and jaxrs.account.accessControl.defaultRights to data resources.
  • Implicit QuerySearch elements were still being creating when explicitly defining a QuerySearch element when the option jaxrs.querySearch.
  • When using the option jaxrs.querySearch.projection, the correct projection was not set in SearchDetails.
  • The use of explicit QuerySearch elements for the JAX-RS stack did not use the correct QuerySearch implementation if the name differs from that of its parent DataElement.

2.16.2 (2022-08-11)

Fixed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.10.1 > 2022.10.2 (Dependency on SNAPSHOT)

2.16.1 (2022-08-11)

Fixed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.10.0 > 2022.10.1 (Dependency on SNAPSHOT)

2.16.0 (2022-08-10)

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.9.2 > 2022.10.0

2.15.0 (2022-08-08)

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.8.1 > 2022.9.2
  • Updated expander dependencies (minimum version):
    • net.democritus:Expanders: 5.9.3 > 5.11.0

2.14.0 (2022-06-15)

Changed

  • Process includeJaxrsConnector option from Option (alongside DataOption for backwards compatibility).
  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.7.1 > 2022.8.1
    • net.democritus:querysearch-expanders: 2.9.0 > 2.9.1
  • Updated expander dependencies (minimum version):
    • net.democritus:querysearch-expanders: 2.9.0 > 2.9.1

2.13.0 (2022-06-14)

caution

This version contains a breaking change. Please refer to the migration guide in the documentation for more information about these changes and what code is affected.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.7.0 > 2022.7.1
    • net.democritus:querysearch-expanders: 2.8.0 > 2.9.0
  • Updated expander dependencies (minimum version):
    • net.democritus:querysearch-expanders: 2.8.0 > 2.9.0
  • Switch all usage of options to the new Option/OptionType elements introduced in prime-core. This should not affect projects.
  • Use standard JAX-RS annotation for PATCH method, now that it is available.

Removed

  • Removed the transient backwards-compatibility option jaxrs.transient.exposeDiagnostics.enable that was introduced in version 1.15.0. (See migration guide)
  • Removed the transient backwards-compatibility option jaxrs.transient.useQualifiedNames.disable that was introduced in version 1.13.0. (See migration guide)
  • Removed generated PATCH annotation class in favor of new standard JAX-RS annotation.

2.12.0 (2022-05-30)

Changed


2.11.1 (2022-05-23)

Fixed

  • Renamed several anchors in integration project pom.xml files by adding missing prefix custom-.

2.11.0 (2022-05-13)

note

This version requires a minimum prime-core version of 2022.4.0 and expanders-maven-plugin version of 2022.1.3!

Added

  • (REST-40) Support for sorting Ln02 link fields by name.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.2.1 > 2022.5.1

2.10.2 (2022-03-01)

Fixed

  • Removed hardcoded variable name from UserContextExpander.

2.10.1 (2022-02-29)

Fixed

  • Double ApiModelProperty annotation in output models under certain circumstances.

2.10.0 (2022-02-29)

Added

  • apiAll as a wildcard security right which is applies for all (generated) endpoints when the option jaxrs.account.accessControl.enable is used.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.1.6 > 2022.2.1

2.9.0 (2022-01-28)

Added

  • custom-convert-before anchors in Connector class @Api annotation.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2022.1.0 > 2022.1.6

2.8.1 (2022-01-24)

Fixed

  • (REST-44) Default implementation with exposeRestField now assumes that an empty string is a null reference for link fields on POST, PUT and PATCH calls.
  • (REST-43) The resourceContext field in the IllegalTimestampFormatExceptionHandler class was not populated when called from another exception handler.

2.8.0 (2022-01-14)

Fixed

  • Double ApiModelProperty annotation in output models under certain circumstances.
  • Added missing ApiModelProperty type definition for byte array fields in input models.

Changed

  • Updated stack dependency:
    • net.democritus:nsx-default-stack: 2021.10.5 > 2022.1.0
    • net.democritus:querysearch-expanders: 2.6.0 > 2.7.0
  • The rest-jaxrs-stack now no longer directly depends on net.nemocritus:Expanders and net.democritus:base-components. Because of this, these dependencies will now only be updated for net.democritus:rest-expanders when an update is required. The rest-jaxrs-stack will always depend on the latest nsx-default-stack at the time of release.

2.7.0 (2021-10-30)

Fixed

  • Add a nonce parameter to OAuth request in Swagger UI.

Changed

  • Updated expander dependency:
    • net.democritus:Expanders: 5.2.4 > 5.2.7
    • net.democritus:base-components: 2021.4.3 > 2021.4.4
    • net.democritus:nsx-default-stack: 2021.10.3 > 2021.10.5
  • Added support for OpenID Connect (with password grant) in integration testing project.
  • Updated dependencies:
  • Changed OAuth2 flow in Swagger UI to accessCode.

2.6.1 (2021-10-23)

Fixed

  • SwaggerOIDCConfigRetrieverExpander template did not escape regular expression correctly.

2.6.0 (2021-10-22)

Fixed

  • (REST-37) Fixed parsing of the user credentials for basic authentication.

Added

  • (REST-38) Added support for OIDC authentication with ID token.

Changed

  • (REST-6) Integrated the expanders from the rest-basic-auth-expanders into the rest-account-security-expanders.
  • Updated expander dependency:
    • net.democritus:Expanders: 5.2.0 > 5.2.4
    • net.democritus:base-components: 2021.3.1 > 2021.4.3
    • net.democritus:nsx-default-stack: 2021.9.4 > 2021.10.3
  • Updated Swagger UI: 3.22.2 > 3.52.5

Removed

  • (REST-6) rest-basic-auth-expanders expansion resource.

2.5.0 (2021-10-04)

Changed

  • Updated expander dependency:
    • net.democritus:Expanders: 4.16.3 > 5.2.0
    • net.democritus:base-components: 2021.2.0 > 2021.3.1
    • net.democritus:nsx-default-stack: 2021.4.3 > 2021.9.4
    • net.democritus:querysearch-expanders: 2.5.0 > 2.6.0
  • Creation of QuerySearch for includeJaxrsConnector option is now processed during model loading stage.

2.4.2 (2021-09-13)

Fixed

  • The ValidationError class did not inject parameters into the message string when parameters are used.

2.4.1 (2021-08-27)

Fixed

  • The querysearch-expanders dependency was a snapshot build.

2.4.0 (2021-08-26)

Fixed

  • (REST-32) SortFieldMapper import was added to Connector class when GETlist endpoint was not expanded, which prevents the SortFieldMapper itself from expanding.

Changed


2.3.1 (2021-07-20)

Fixed

  • Removed support for SortParameters from deprecated RestFacade class, which causes issues when a lot of custom code is used. This is a new feature not required for backwards compatibility.

2.3.0 (2021-06-02)

caution

This version contains several breaking changes. Please refer to the migration guide in the documentation for more information about these changes and what code is affected.

Fixed

  • Results from GETlist endpoint is now sorted by database identifier by default.
  • Return the correct calculated page value in pagination parameters.
  • (REST-25) Return the correct calculated page size in pagination parameters.
  • (REST-23) Handle byte[] value fields correctly in REST API.

Added

  • (REST-15) Support for sortby parameter on getList endpoint.
  • (REST-15) Added Component and DataElement options jaxrs.endpoint.getList.sorting.disable to disable support for sorting through the API.

Changed

  • Merged changes from version 1.17.0.
  • Updated expander dependency:
    • net.democritus:querysearch-expanders: 2.3.2 > 2.4.0
  • (REST-21) All ValidationError constants in the ValidationError class are now marked final.
  • (REST-27) Integrated RestFacade methods for POST, PUT, PATCH and DELETE into the Connector class.
  • (REST-28) Integrated RestFacade methods for GETresource into the Connector class.
  • (REST-29) Integrated RestFacade methods for GETlist into the Connector class.
  • (REST-29) RestFacade.applyPagination() moved to new Pagination class.

Removed

  • Following the addition of pagination expander options, the pagination anchors in applyPagination() have been removed.
  • (REST-26) RestFacade class has been removed. The transient ApplicationInstance option jaxrs.transient.generateFacade.enable has been added to re-enable expansion of this class, along with all of its contents. However, all default endpoints will still use the new implementation.

2.2.0 (2021-05-06)

Added

  • convert-before anchors in CustomCommandResult.from() method.

Changed

  • (REST-19) The QuerySearch instance used by the REST API is now marked with the option jaxrs.querySearch.
  • Updated expander dependency:
    • net.democritus:querysearch-expanders: 2.2.0 > 2.3.2

2.1.0 (2021-03-25)

Added

  • (REST-14) New DataOption jaxrs.endpoint.getList.defaultPage to set the value of DEFAULT_PAGE in the RestFacade class.
  • (REST-14) New DataOption jaxrs.endpoint.getList.defaultPageSize to set the value of DEFAULT_PAGE_SIZE in the RestFacade class.
  • (REST-18) New DataOption jaxrs.endpoint.getList.maxPageSize to set a fixed maximum page size for GETlist requests.

Changed

  • Updated expander dependency:
    • net.democritus:Expanders: 4.13.4 > 4.13.5
    • net.democritus:querysearch-expanders: 2.0.0 > 2.2.0

2.0.2 (2021-03-11)

Fixed

  • (REST-13) Dynamic registration of QuerySearch object can cause concurrency exceptions.

2.0.1 (2021-03-08)

Fixed

  • Dockerfile for documentation referenced to old filename.

2.0.0 (2021-03-08)

Changed

  • Updated expander dependency:
    • net.democritus:nsx-default-stack: 2021.0.1 > 2021.1.1
    • net.democritus:Expanders: 4.13.2 > 4.13.4
    • net.democritus:querysearch-expanders: 1.9.0 > 2.0.0
  • (REST-12) Populate QuerySearch model instead of enableQuerySearch option when includeJaxrsConnector is present on a DataElement.

1.17.0 (2021-05-19)

Added

  • Added feature anchors to ElementConnectorExpander:
    • post-mapper
    • post-command
    • put-mapper
    • put-command
    • patch-mapper
    • patch-command
    • delete-command

1.16.0 (2021-02-17)

caution

This version contains some breaking changes. Please refer to the migration guide in the documentation for more information about this change and what code is affected.

Added

  • New rest-jaxrs-stack expansion resource bundle which contains the rest-expanders bundle, rest-basic-auth-expanders and all their dependencies.
  • New rest-account-security-expanders bundle which ties the default generated endpoints in with the access control functionality of the account base component, which allows the definition of security rights at runtime in the DataAccess element. This is activated with the component option jaxrs.account.accessControl.enable.

Changed

  • Updated expander dependency:
    • net.democritus:Expanders: 4.12.1 > 4.13.2
  • Restructured expander project to support multiple expansion resource projects as rest-expanders-stack.
  • Moved the rest-basic-auth-expanders into the codebase of the rest-expanders-stack and matched the version to that of the rest-expanders.
  • SecurityRight class moved from shared to control.
  • Moved the definition of the WWW-Authenticate header to a separate AuthenticateResponseHeaderBuilder class for cleaner feature injection.

1.15.0 (2021-02-01)

caution

This version contains some breaking changes in several expanders that can be opted-out in the short-term by using the ApplicationInstanceOption jaxrs.transient.exposeDiagnostics.enable. Please refer to the migration guide in the documentation for more information about this change and what code is affected.

Fixed

  • Harvesting and expanding of ext files in the integration project did not work correctly.

Added

  • Exceptions where diagnostics are available now have these written to the log when they occur on a REST call.
  • Added WWW-Authenticate header to response in NotAuthorizedExceptionHandler.

Changed

  • Updated expander dependency:
    • net.democritus:Expanders: 4.4.12 > 4.12.1
  • Replaced makeshift injection of the CommandExtension classes in the logic Bean with feature injection for commands which are now supported in the main expanders. The old code which was automatically injected into custom anchors is also automatically removed, given that it was not altered.
  • Improvements to expanders for exception handling interceptors.
  • Errors on REST calls where diagnostics were made available in the error response no longer include the diagnostics. This can be re-enabled by using the transient option jaxrs.transient.exposeDiagnostics.enable.
  • ValidationException class moved from shared to control.

Removed

  • The transient option rest.compatibility.generateUuid introduced in version 1.4.0 was removed.

1.14.0 (2021-01-21)

Fixed

  • Changed incorrect parameter nullable annotation for RestErrorResponseBuilder.setError().

Added

  • New RestErrorResponseBuilder.addHeader() method to add additional headers to error responses.

Changed

  • Updated expander dependency:
    • net.democritus:querysearch-expanders: 1.8.0 > 1.9.0

1.13.0 (2021-01-07)

caution

This version contains some breaking changes in several expanders that can be opted-out in the short-term by using the ApplicationInstanceOption jaxrs.transient.useQualifiedNames.disable. Please refer to the migration guide in the documentation for more information about this change and what code is affected.

Fixed

  • Corrected error message in DeletionFailedInterceptor.

Changed

  • Updated expander dependency:
    • net.democritus:Expanders: 4.4.4 > 4.4.12
    • net.democritus:querysearch-expanders: 1.7.0 > 1.8.0
  • Qualified some variable/method argument names to prevent obvious collisions with DataElement names. This is a breaking change that can be opted-out in the short-term by using the ApplicationInstanceOption jaxrs.transient.useQualifiedNames.disable.

1.12.0 (2020-10-05)

Added

  • Added feature anchors to ElementConnectorExpander:
    • getList-filter
    • get-filter

Changed

  • Updated expander dependency:
    • net.democritus:querysearch-expanders: 1.5.0 > 1.7.0
  • Updated dependencies in integration test project:
    • NSX Runtime: 2019.7.1 > 2020.9.0

1.11.3 (2020-07-31)

Fixed

  • Use correct comment format for feature anchors in SwaggerUiExpander.

1.11.2 (2020-07-31)

Fixed

  • Set the correct oauth2RedirectUrl in the Swagger UI page.

Added

  • Added anchors to SwaggerUiExpander:
    • before-setup
    • config
    • after-setup

1.11.1 (2020-07-29)

Fixed

  • The result of the fillers in the command extensions should be propagated if it is an error.

1.11.0 (2020-07-01)

Changed

  • Allow all OPTIONS calls to bypass authorization.
  • CommonDataValidator classes now return on empty input parameters.
  • Updated expander dependency:
    • net.democritus:querysearch-expanders: 1.4.0 > 1.5.0

1.10.0 (2020-06-02)

Added

  • Support for proxies by processing the Forwarded, X-Forwarded-Host and X-Forwarded-Proto headers.
  • BaseUrlContext.from(Context) method to easily retrieve the context.
  • BaseUrlContext.from(ParameterContext<?>) method to easily retrieve the context.

Changed

  • Replaced BaseUrlContext.EMPTY field with BaseUrlContext.empty() method as the context is not immutable and the content of the EMPTY could be overwritten.
  • Updated expander dependency:
    • net.democritus:querysearch-expanders: 1.3.2 > 1.4.0

1.9.2 (2020-05-15)

Fixed

  • Swagger-JAXRS was overwriting part of the swagger definition.

Added

  • Added updateOperation(String, HttpMethod, Operation) method to the SwaggerServlet class.

1.9.1 (2020-05-15)

Fixed

  • Authorization did not apply the filter blocking anonymous access.

1.9.0 (2020-05-15)

caution

As of this version, anonymous access to the REST API is blocked by default. To restore the old behavior of allowing anonymous access, add the option jaxrs.auth.anonymous.enable. Alternatively you can use the net.democritus:rest-basic-auth-expanders bundle to provide basic authentication that uses the account component.

Added

  • Added jaxrs.auth.anonymous.enable component option to allow anonymous access to the API.
  • Added parsing of the Authorization header to AuthenticationProvider to provide a clean hook to implement one or more authentication methods.

Changed

  • Anonymous access to the API is now blocked by default. An authentication implementation must be added or the method jaxrs.auth.anonymous.enable.
  • REST expanders are now built against expanders version 4.4.4.

1.8.4 (2020-05-14)

  • Corrected enable condition to generate the DataElementOutputSchema.json files.

1.8.2 (2020-05-14)

Added

  • Added updateSecurity(Map) method to the SwaggerServlet class.

1.8.1 (2020-05-13)

Fixed

  • The SwaggerServlet did not completely update the Swagger definition.

1.8.0 (2020-05-13)

Fixed

  • Reverted Jackson dependency in application 2.11.0 > 2.10.3 due to runtime compatibility issues with Jersey.

Added

  • Added new MalformedHeaderException class, along with exception handler and error code BR014.
  • Added static from(Context) method to the user context class.
  • Added update(UserContext) method to the user context class to update its fields from another context.
  • Added updateSecurityDefinitions(Map) method to the SwaggerServlet class.
  • Added imports, fields and methods anchors to the SwaggerServlet class.

Changed

  • Replaced the ANONYMOUS and SYSTEM variables with static factory methods in the user context. This will prevent accidental caching of system access when modifying the user context.

1.7.0 (2020-05-13)

caution

For any projects that might already use the integration test project, beware that you must move your harvest files due to the classes in the integration project moving locations.

Added

  • Schema validation in the test project for GET calls to retrieve individual resources.

Changed


1.6.0 (2020-05-11)

Fixed

  • The uniqueness data validation did not handle null values correctly.

Changed

  • REST expanders are now built against querysearch expanders version 1.3.2.

1.5.2 (2020-05-06)

Fixed

  • The OutputListModel class did not compile when the plural was the same as the singular in the externalName option.

1.5.1 (2020-05-05)

Fixed

  • The code injected into the QuerySearch classes no longer uses the deprecated when() method.

1.5.0 (2020-05-02)

Fixed

  • Increased priority for JSONMappingException and JSONParseException handlers to prevent the default handlers from firing when JacksonJsonProvider is used for a REST client.
  • Incorrect import in the REST integration testing project.
  • If no command is defined for an endpoint, there should be no validators generated for fields that have the exposeRestField option.

Added

  • Support for expansion resource dependencies. net.democritus:Expanders and net.democritus:querysearch-expanders are now listed as dependencies.

Changed

  • REST expanders are now built against expanders version 4.3.10.
  • REST expanders are now built against querysearch expanders version 1.3.1.

1.4.0 (2020-04-22)

caution

This version breaks backwards compatibility for UUID fields. Use the option ApplicationInstance option rest.compatibility.generateUuid to re-enable this behavior or add the option generateUuid to all fields with the name uuid.

Added

  • Added ApplicationInstance option rest.compatibility.generateUuid to replicate the old behavior of the REST expanders to generate a UUID for all fields with the name uuid.
  • Added support for Hibernate as persistence provider.

Changed


1.3.0 (2020-04-03)

Fixed

  • The Apache Commons Lang 3 dependency was missing in the control layer for the validation system.

Added

  • (EXPERIMENTAL) Expanding integration tests for REST.

1.2.3 (2020-03-23)

Fixed

  • The Location header was not correctly generated in the POST endpoint when the resource identifier is given in includeJaxrsConnector.

1.2.2 (2020-03-06)

Fixed

  • URL validation method was not generated in the ValidationBean for customized endpoints.

Changed

  • Removed regular expression description in ValidationError class.

1.2.1 (2020-03-05)

Fixed

  • The CORS implementation generated an unintended exception on pre-flight requests and also did not send the Allow header on pre-flight requests.

Added

  • Added a provider to handle OPTIONS calls to the REST API when the request is not a CORS request. Before this was handled by JAX-RS internally.

1.2.0 (2020-02-26)

Fixed

  • Empty string was injected into the QuerySearch for a DataElement if no valid functionalKey was defined for a REST connector.
  • Excludes of swagger files were handled incorrectly in the AuthorizationProvider.

Changed

  • Split off the builder classes for the CreatedResponse and RestErrorResponse into separate files.
  • Added expander comment to all expanders.
  • Updated CORS filter:
    • Access-Control-Allow-Methods now contains only the methods available at the addressed endpoint.
    • Access-Control-Allow-Headers is now returned for CORS requests, containing the allowed headers that were requested in Access-Control-Request-Headers.
  • The implementation of the validation pipeline was moved to a new ValidationBean in the logic layer, to allow the use of feature anchors.

1.1.2 (2020-02-17)

Fixed

  • Updated enable conditions for data validator classes to check for includeJaxrsConnector.

Changed

  • Support added for if_empty value in generateUuid option, allowing users to pass a uuid in POST. It will only be generated if no uuid was given.

1.1.1 (2020-02-13)

Fixed

  • The enable condition for the DataElementReferenceModel and DataElementReferenceMapper classes was too restrictive. Now generates even when there is no GET endpoint.

Changed

  • Provided a new implementation to format validation error messages. The previous implementation relied on commons-lang3, which due to the Struts upgrade in the 3.2.0 version of the main expander bundle is causing conflicts with TomEE 7. The depedency on commons-lang3 has been removed.

1.1.0 (2020-02-12)

note

Requires (at least) version 4.2.0 of the main expander bundle.

Fixed

  • The swagger annotation for the 201 Created response on POST endpoints referenced the wrong response model class.
  • The name for validation result variables of link fields in the data validators was incorrect.
  • Generation of input validators failed when no command was found for the endpoint.

Changed

  • The option generateUuid available in the main expanders starting at version 4.1.2 is now supported instead of the field uuid: String to automatically generate a UUID (and related functionality in REST). To preserve backwards compatibility, the option will implicitly be added to fields with signature uuid: String by this expander bundle.

Removed

  • EditorConfig file expander has been moved into the main expander bundle. Available starting at version 4.1.2.
  • gen_test folders are now generated by the main expander building. Available starting at version 4.1.2.

0.12.0 (2022-10-26)

Changed

  • Updated to latest expansion infrastructure:
    • prime-core:2022.10.3 (instead of nsx-prime/elements-ioxml)
    • Expanders:5.14.2

0.11.0 (2020-08-10)

Changed

  • [1.x backport] Expander bundle now requires Java 8. (Expanded code is still Java 7 compatible.)
  • [1.x backport] Support for expander dependency system.
  • [1.x backport] Removed EditorConfig expanders as these are now integrated into net.democritus:Expanders.
  • [1.x backport] Removed UUID generation support, now implicitly adding generateUuid option to fields with signature uuid: String.