base-components
2023.0.3 (2023-01-25)
Fixed
- Removed cache from EngineNode because it was interfering with startup mechanism
2023.0.2 (2023-01-25)
Fixed
- [VEGA-266] Removed parentheses from claim queries, since they clash with EclipseLink
- [VEGA-261] Catch and log Exceptions in EngineNodeConfig
- [VEGA-237] StateTransitionerExpander: Don't set name of StateTask if name is not defined
- [VEGA-267] Skip query in claimInstances if targetInstances parameter is empty
2023.0.0 (2023-01-11)
Changed
- Changed type of
Asset.downloadLink
,Asset.uri
,ExternalAsset.uri
andRemoteAsset.url
fromStringLink
toString
, asStringLink
has not been supported for a while.
Removed
- Removed deprecated
DataAccess.target
field. - Removed deprecated elements in the
account
component:Component
HelpInfo
Menu
MenuItem
Portal
Screen
ScreenProfile
- Removed deprecated elements in the
utils
component:Execution
Executor
(task element)IdCounter
Thumbnail
- Removed deprecated elements in the
workflow
component:StateTimer
TimeTask
2022.10.9 (2022-11-14)
Fixed
- Added some missing option types as data resources and added proper constraints and meta information for all types.
Changed
- Updated expander dependencies:
net.democritus:Expanders
:5.13.3 -> 5.14.4
net.democritus.metamodel:prime-core
:2022.6.1 -> 2022.10.6
- Added default values for unused fields in
EngineService
:no
forchanged
0
forcollector
Removed
- Removed deprecated expansion step that was used to support the previously removed option
baseComponents.authentication.enableGoogleAuth
.
2022.10.8 (2022-11-10)
Fixed
- Changed name of session value keys for OIDC implementation to avoid collisions with internal keys of Struts.
2022.10.7 (2022-10-27)
Added
- Added dataStates to Notifier model.
Changed
- Remove unused userAgent.
Fixed
- Fixed issue with finder import in InterruptRecovererExpander when using claims
2022.10.6 (2022-10-21)
Fixed
- Removed deprecated option
valueFieldType.disableHashCodeMethod
fromvalidation
component.
2022.10.4 (2022-10-04)
Fixed
- Fix for the cached UserContext of the workflow responsible, which only contained the id of the user.
2022.10.3 (2022-10-04)
Fixed
- UserGroups were not added to a User on create with OIDC authentication.
Changed
- Updated expander dependencies:
net.democritus:Expanders
:5.13.0 -> 5.13.3
(several vulnerabilities in snakeyaml)
2022.10.1 (2022-09-08)
Fixed
- Fixed user being resolved by name which was not always set when running workflows.
2022.10.0 (2022-09-07)
Added
- Added option
view.linkfield.displayField
to several DataElements to use with new LinkField UI implementation - Added
runWorkflowWithEngineServiceAsync
andrunWorkflowWithTargetsAsync
to WorkflowAgent to kickstart workflow asynchronously
2022.9.0 (2022-08-30)
Fixed
- When creating an instance of
FlowJsonResult
, the errors were not added to the pojo.
Changed
- [FLOW-44] Move workflow task timeout from TaskProcessor to TaskExecutor (currently only for atomicInternal tasks).
- Cleaned up several SonarQube violations in ext classes in the
workflow
component + some refactoring to clean up some of the code. assets
component:- The
AssetDownloader
class now logs a separate exception if more than one asset is found with the same file identifier. - The
ExternalAssetChunkRetriever
,ExternalAssetCreator
andFileAssetDirectoryManager
classes now use Java's built-inURLEncoder.encode()
method now instead ofnsx-runtime
's deprecatedSimpleUriFormat
class, so it can now supports a far broader range of characters. - Added explicit
assets.internalAsset.duplicateChunk
error toInternalAssetChunkRetriever
when more than one chunk was found for a given position in the asset. - Marked
ByteArrayConverter
class as deprecated.
- The
- Updated expander dependencies:
net.democritus:Expanders
:5.12.1 -> 5.13.0
Moved
Several Expanders and Features have been moved from Expanders
to base-components
:
- Engine(Bean|Local|Remote)Expander (flowElement and serviceElement)
- ClaimCleanerExpander
- InterruptRecovererExpander
- StateTransitionerExpander
- StateViewerExpander
- Claimable feature
- ClaimElement feature
- WorkflowTaskStatus feature
- Service feature
- EngineShutdown feature
- TaskTimers feature
In addition, a new feature has been to extract some workflow-related logic in the FinderBeanExpander and FinderDetailsExpander:
- FindByClaimed feature
Next, 2 new runtime libraries have been added to house runtime classes related to workflow. LayerImplementations have been defined to make sure these libraries are added as a dependency to any expanded project using the workflow.
workflow-shared-common
: Most of the runtime classes in workflow.
- net.democritus.claims.BatchRequest
- net.democritus.claims.ReleaseRequest
- net.democritus.claims.ClaimCleaner
- net.democritus.claims.ClaimCleanerFactory
- net.democritus.claims.ClaimId
- net.democritus.state.NOPStateRecoverer
- net.democritus.state.StateRecoverer
- net.democritus.state.StateRecovererFactory
- net.democritus.state.StateTransitioner
- net.democritus.state.StateTransitionerFactory
- net.democritus.state.StateUpdate
- net.democritus.state.StateViewer
- net.democritus.state.StateViewerFactory
- net.democritus.state.TaskInterruptStateRecoverer
- net.democritus.state.TaskUpdate
- net.democritus.sys.workflow.FlowParameterContext
- net.democritus.sys.workflow.FlowProcessingContext
- net.democritus.sys.workflow.RunId
- net.democritus.sys.workflow.TaskParameterContext
- net.democritus.sys.workflow.TaskProcessingContext
- net.democritus.sys.FlowOrchestrator
- net.democritus.sys.FlowResult
- net.democritus.sys.TaskExecutor
- net.democritus.sys.TaskPerformer
- net.democritus.sys.TaskPerformerByDataRef
- net.democritus.wfe.BatchProcessingContext
- net.democritus.wfe.EngineServiceProcessingContext
workflow-shared-jpa
: Classes related to database functionality related to workflow.
- ClaimQueryParameter (houses
createClaimExistsParameter()
andcreateClaimDoesNotExistParameter()
methods)
2022.8.1 (2022-08-11)
Changed
- Some refactoring to clean up code in
OIDCUserTransformer
. - Updated expander dependencies:
net.democritus:Expanders
:5.12.0 -> 5.12.1
net.democritus.metamodel:prime-core
:2022.6.0 -> 2022.6.1
2022.8.0 (2022-08-10)
Changed
- Refactored use of
Vector
toList/ArrayList
following the rest of the JEE stack expanders. - Removed
java.util.HashSet
import fromUserAuthenticationBean
. - Refactored
UserAuthenticationBean.getNames()
to use Java streams. - Updated expander dependencies:
net.democritus:Expanders
:5.9.3 -> 5.12.0
net.democritus.metamodel:prime-core
:2022.5.6 -> 2022.6.0
2022.7.3 (2022-09-23)
Fixed
- [workflow][VEGA-249] Fixed TimerHandlerBean passing a UserContext where userName is
null
- [workflow][VEGA-233] Adding better error handling in EngineStarterBean and EngineHealthBean postConstruct methods
- Fixed NullPointerException in preDestroy method of EngineHealthBean
2022.7.2 (2022-08-09)
Changed
- Refactored
UserAuthenticationBean
to not useVector
.
Removed
- Cleaned up deprecated code:
- Removed
net.democritus.usr.ProfileUserContext
- Removed
net.democritus.sys.ObjectValueAgent
- Removed
net.democritus.web.acting.EngineControllerAction
- Removed
net.democritus.web.acting.EngineDetailerAction
- Removed
2022.7.1 (2022-06-16)
Fixed
- Check whether OIDC logout URL is provided, as this only applied to OpenID Connect implementations that provide session management capabilities.
2022.7.0 (2022-06-09)
Added
- Added context to user session next to userContext
- [NSX-220] Add support for OIDC logout
Changed
- [NSX-217] Add more OIDC error logging
- Fix some OIDC sonarqube bugs
- [FLOW-40] Optimize database query to update engineService.lastRunAt
Fixed
- [FLOW-16] Fix multiple cached instances
2022.6.0 (2022-05-30)
Changed
- Updated 3rd party dependencies in expanders project (not in expanded code):
- Maven plugins:
org.apache.maven.plugins:maven-jar-plugin
:3.2.0 -> 3.2.2
org.apache.maven.plugins:flatten-maven-plugin
:1.2.1 -> 1.2.7
- Maven plugins:
- Updated NSX Maven plugin in expanders project (not in expanded code):
net.democritus.maven.plugins:expanders-maven-plugin
:2021.5.13 -> 2022.1.6
- Updated expander dependencies (minimum version) to address security vulnerabilities:
net.democritus:Expanders
:5.2.4 -> 5.9.3
net.democritus.metamodel:prime-core
:2021.5.12 -> 2022.5.6
- Updated model files to format supported by
prime-core
version2022.5.6
.
2022.5.2 (2022-05-19)
Fixed
- Fix NPE in TimeWindowValidator
- Fix StateTaskDetailsWithoutRefs -> StateTaskDetails
2022.5.1 (2022-05-16)
- re-release 2022.5.0
2022.5.0 (2022-05-16)
Changed
- Optimize
getParamTargetValue()
with skipCount - Add error logging on workflow related tasks
- [FLOW-16] Cache workflow runtime configuration to reduce database queries
- [FLOW-16] Use
detailsWithoutRefs
projection in workflow orchestration to reduce database queries - [FLOW-16] Update EngineNodeService with projection to reduce database queries
- [FLOW-13] Add 'refresh' button to engineService table to force a timer reset if settings are changed
- [FLOW-26] Ignore collector from EngineService
Fixed
- [FLOW-13] Fixed automatic timer reset on timeout when settings are changed
- [FLOW-36] Fix incorrect timewindow validation in last minute of window
Changed
- [FLOW-22] Add support for task timeout in ExecutorServiceTaskProcessor
2022.4.0 (2022-04-14)
Added
- Added
workflow/workflow-recover-json
endpoint to start recovering instances, mainly used for tests. Provide the workflow reference as a parameter, e.g.workflow/workflow-recover-json?workflow.name=MessageProcessorFlow
2022.2.1 (2022-02-16)
Fixed
- [NSX-213] Verify that email is present in OIDC token as this is a required field.
Added
- [NSX-218] Added support to the OIDC authentication for UserGroups.
Changed
- Performance optimizations in OIDC flow.
2022.2.0 (2022-02-07)
Removed
- [VEGA-173] Removed start/stop engine buttons from workflow page, since they are automatically managed by the EngineStarterBean
Fixed
- OIDC implementation failed on non-standard ports on a reverse proxy in front of the application.
- Added synchronization to
EngineNodeContextRetriever#getEngineNode()
to prevent the EngineNode from being created multiple times
2021.6.1 (2021-12-13)
Fixed
- Fixed DataAccessFinderBean not using ENTITY_NAME in a custom finder harvest
Removed
- Removed obsolete
ProfileFindByUserGroups_ProfileEqDetails
originally used by a long removedUserGroupScreenInfoRetrieverAction
2021.6.0 (2021-12-06)
Removed
- Removed obsolete cocoon
addScreen()
andgetScreenVector()
harvests for Profile and ScreenProfile elements- This is likely to break existing overlays/copy-pastes of
LoginUserSessionHelper
, please sync your code
- This is likely to break existing overlays/copy-pastes of
- Removed obsolete cocoon
ScreenInfoRetrieverAction
behavior (it is a no-op now)
2021.4.4 (2021-10-28)
Fixed
- OpenID Connect pipeline did not always terminate in the authentication process.
2021.4.2 (2021-10-20)
Fixed
- Default value for
defaultLoginTimeout
with OpenID Connect was not set if the property was not present (and empty) in the configuration.
2021.4.1 (2021-10-20)
Fixed
- User profile and account should only update if externally managed through OpenID Connect provider.
2021.4.0 (2021-10-20)
Added
- Option
baseComponents.isAccount
on theaccount
component to match the component in its expanders. - Generic support for OpenID Connect authentication from any provider with the ApplicationInstance
option
baseComponents.authentication.enableOIDC
.
Changed
AccountApplicationSettings
now combines the settings of allaccount.ns.properties
files found in the classpath. This allows some settings to be specified inside the application and some outside of it.- Moved
AccountApplicationSettings
as expander tonet.democritus:Expanders
.
Removed
- Removed support for the proprietary Google authentication implementation for OpenID Connect and the
related
baseComponents.authentication.enableGoogleAuth
option. - Removed
includeBouncyCastle
option onutils
component.
2021.3.0 (2021-07-16)
Fixed
- Translation for
DataAccess.authorized
field.
Added
- [NSX-163] Added support methods to validate listFields in TagValuePairAgent
- Added support for component name in
DataAccess
element. It should be inserted in theelement
field ascomponentName_dataElementName
. Just defining the name of the element is still supported, but discouraged. - Added wildcard right for
DataAccess
asall
, which can be used to deny all rights for an element when the default is allowing all rights, or to allow all rights for an element when the default is denying all rights. - Added simple wildcard support for components and elements in the
DataAccess
element where theelement
can be*
to cover all elements in every component, orcomponentName_*
to cover every element in a component. - Added
net.democritus.acl.ConfigurableDataAuthorizationImpl
andnet.democritus.acl.ConfigurableTaskAuthorizationImpl
classes as an alternative default implementation for the authorization tasks. They default to deny all (or whitelisting), which requires you to define all rights (made easier by the wildcard support). It can be configured to use allow all (or blacklisting) by default if theParamTargetValue
with namedefaultAccessRights
is set toallowAll
.
Changed
DataAccessRights
andTaskAccessRights
can now take an instance ofAccessRightStrategy
, which determines the default authorization for access rights, as well as how access rights are combined.
Removed
- Removed
junit:junit
dependency inassets-shared
, which is already added by the expanders. - Removed
net.democritus:nsx-logging
dependency inassets-shared
, which is already inherited fromnet.democritus:nsx-shared-common
. - Removed unused
org.json:json
dependency inaccount-logic
.
2021.2.1 (2021-06-08)
Fixed
- Fixed issue where AccessInfoInterceptor would reject saveDetails actions when the user has
modify
rights, but notcreate
rights. - Fixed
ParamTargetValueBean#setParamTargetValue
not updating existing values - Fixed
ExecutorServiceTaskProcessor
getting stuck whencompletionService.submit()
throws an exception (e.g. when the executorService queue is too small)
2021.2.0 (2021-05-07)
Added
- Added ExecutorServiceTaskProcessor, which uses an ExecutorService to perform tasks
2021.1.0 (2021-03-10)
Added
- Added base-components-model:jar:model-components classifier containing only pure NS model (without harvest/etc.)
2021.0.1 (2021-01-18)
Fixed
- EngineNodeUpdater now automatically removes EngineNodes with duplicate names during startup.
2020.12.2 (2020-12-04)
Fixed
ParamTargetValueAgent.setParamTargetValue()
now correctly sets theparam
field instead of thename
to the givenparamName
.
2020.12.1 (2020-11-24)
Fixed
- Fixed EmbeddedAssetUpload feature to work with change in expanders 4.11.1
2020.12.0 (2020-11-24)
Added
- Added PTV support to configure a default user timeout value for accounts with Google authentication.
2020.11.3 (2020-11-10)
Fixed
- Fixed issue with
Register external asset
button on Assets page. - Reverted implementation of
LoginValidatorAction
to proxy the login call though theAuthentication
element's task, instead of calling the authentication pipeline inUser
directly. - Removed transaction from run-workflow methods
2020.11.2 (2020-10-23)
Fixed
- Fixed an issue in the TimerHandlerBean where the timer would get stuck if the database failed when trying to retrieve the details projection of the EngineService.
2020.11.0 (2020-09-24)
Added
- A workflow can now be triggered with a POST request to
/workflow/workflow-run-json
.- to run it based on an engineService; You must define a dataRef
engineService
. E.g.http://localhost:9400/messageApp/workflow/workflow-run-json?engineService.name=MessageImportEngineService
- to run it with a set of targetInstance; You must define a dataRef
workflow
and an array of dataRefstargetInstances
. E.g.http://localhost:9400/messageApp/workflow/workflow-run-json
with body:{
"workflow": {
"name": "MessageImportService"
},
"targetInstances": [
{
"id": 351
}
]
}
- to run it based on an engineService; You must define a dataRef
- In addition, the WorkflowAgent has new methods
runWorkflowWithEngineService(DataRef engineService)
andrunWorkflowWithTargets(DataRef workflow, List<DataRef> targetInstances)
that will trigger a workflow.
2020.10.0 (2020-07-16)
Added
- [
account
] Added support for Google authentication. This is enabled by adding the ApplicationInstance optionbaseComponents.authentication.enableGoogleAuth
. The value of this option should be theclient ID
that can be obtained from the Google API console. For more information refer to https://developers.google.com/identity/one-tap/web/guides/get-google-api-clientid. - [
account
] Added an ApplicationInstance option to disable the internal password authenticationbaseComponents.authentication.disableInternalAuth
. This will not remove the mechanism to authenticate, but rather remove the login form from the UI and disable login in the struts action that processes the login. - [
account
] Added a new expanded authentication pipeline in theUser
element. This pipeline passes through the entire stack and ends up in its own newUserAuthenticationBean
in thelogic
layer. This new bean class can be used to add additional authentication methods through expander features. Similar to finders and other pipelines, the type of the POJO sent through the pipeline determines the implication called.
Changed
- [
account
] The internal password authentication implementation has moved to the newUserAuthenticationBean
. The previous authentication system using the authentication TaskElement is still present and behaves the same as previously, but now serves as a proxy to the authentication pipeline.
2020.9.1 (2020-07-09)
- Fixed issue in TimerHandlerBean that would set busy flag to false after any timer tick
2020.9.0 (2020-05-29)
- Updated dependencies
2020.8.0 (2020-05-26)
Added
- Support for external asset types defined in other components. These are represented by DataElements marked with
the
assets.implementsCustomAsset
option. The value of this option is used as the name of the new asset type, or the name of the DataElement is used if no value is given in the option. An implementation stub is generated in the logic layer for the DataElement, where anAssetStream
has to be provided upon retrieval or persisted when uploading. - Struts actions now enforce their specific http methods (same as if globalOptionSettings.enforceHttpMethod was always enabled)
2020.7.0 (2020-05-07)
Added
- Added submodule
base-components-model
providing just the model resource without expanders
Changed
- Renamed standard dependency from
baseComponents
tobase-components
Removed
- Removed cocoon ext code
2020.6.1 (2020-04-24)
Fixed
- Store result of EngineNode name to prevent the name changing due to a changing hostname
- Fix customizations for option
jpa.entity.name.format
2020.6.0 (2020-04-10)
Fixed
- Wrong class was used to check for TaskParameterContext constructors, resulting in context not being passed through as intended.
2020.5.0 (2020-03-19)
Fixed
- AccessInfoRetrieverAction is now compatible with both struts 2.3 and 2.5
2020.2.0 (2020-02-07)
Changed
- Updated AccessInfoRetrieveAction for struts 2.5
Removed
- dependency jar files are no longer packaged
2020.1.0 (2020-01-22)
Added
- WorkflowParameterContextFactory and StateTaskParameterContextFactory now pass the context through to parameterContext. The factories first check if the correct constructor is present, in case the application is expanded with an earlier expander version and thus a nsx-runtime version < 2019.7.1
- Modified the label of
workflow::Workflow::className
to 'Flow element name' to better represent how the actual value is used. - Added clearer error message if
workflow::Workflow::className
is not correctly defined