2021–11–30
Value Translator
- 1.9.1
- Return bad request (Xlent.Fulcrum.NotFound) if instance does not exist
- Respect Context.HasAutomaticInstanceGeneration when translating
2021–10–25
Data Sync Engine
- 5.15.0:
- Now handle merge for the change of a key attribute where the later value is already used as a key for another object
- Impact for customer: None
2021–10–12
Business Events
- 1.13.0: Support for dynamic subscription registration.
Impact for customers: None
HealthChecker
- 1.10.0:
- Now checks for expired HTTPS certificate. This is checked daily.
Impact for customer: None
2021–09–06
Async Caller
- 1.5.1: Fix for issue with internal logging
Impact for customer: None
2021–06–10
Business Events
- 1.12.0:
- Support for using Async Manager
- A missing customer database could lead to starvation of resources for other customers. Added a circuit breaker to prevent this.
- Dependency on Fundamentals for startup configuration was removed
Impact for customer: None
Async Caller
- 1.5.0: Dependency on Fundamentals for startup configuration was removed
Impact for customer: None
Value Translator
- 1.9.0: Dependency on Fundamentals for startup configuration was removed
Impact for customer: None
Data sync engine
- 5.13.2: Allow longer SQL running times in reset database configuration (test mode)
- 5.14.0: Dependency on Fundamentals for startup configuration was removed
Impact for customer: None
Health Checker
- 1.8.0:
- Easier setup of customer tenants to check
- Dependency on Fundamentals for startup configuration was removed
Impact for customer: None
2021–03–19
Async Caller
- 1.4.3: Fix for Content-Type in Callback request (it's always application/json, not the content-type from the server response)
Impact for customer: None
Business Events
- 1.11.0:
- Callback endpoint can receive any content-type (previously only application/json)
- Added stored procedure CreateOrGetPublication for publications where the id doesn't matter.
- Added stored procedure CreateOrUpdateSubscription2 for subscriptions without any reference to a publication.
- Fix: Stored procedure CreateOrUpdatePublicationById could update all publications to have the same ClientId and EventMinorVersionId.
- Don't log translations on Information level if there are none.
- Better logging of callback response
Impact for customer: None
2021–03–06
Business Events
- 1.10.2:
- Fixed logging issue
- Impact for customer: None
2021–02–24
Async Caller
- 1.4.2:
- Now uses Nexus Link NuGets that handles the Azure Queue time limit of 7 days.
- Impact for customer: None
Value Translator
- 1.8.2
- Fix: 'Lock already exist (InsertRow)' exception when auto-generating values in parallell
- Impact for customer: None
2021–02–23
Business Events
- 1.10.1:
- Authentication property of ClientConfiguration is no longer required
- Impact for customer: None
Data Sync Engine
- 5.13.1:
- Authentication property of ClientConfiguration is no longer required
- Impact for customer: None
2021–02–12
Fundamentals
- 2.3.0:
- Fundamentals internal: Now logs referrer
- Impact for customer: None
2021–02–02
Value Translator
- 1.8.1:
- Better information if program fails in BatchTranslate
- Impact for customer: None
2021–01–20
Value Translator
- 1.8.0:
- Added endpoint for deleting an instance by it's concept value
- Impact for customer: None
Business Events
- 1.10.0:
- Support for 'X-nexus-test-context' header
- Impact for customer: None
2021–01–04
Data Sync Engine
- 5.13.0
- Batch support for KeyAssociate
- Impact for customer: None
2020–12–14
Data Sync Engine
- 5.12.0:
- Message added to DataLog, removed use of language support
- Fix for null reference exception in TimerHandler
- Impact for customer: None
2020–12–02
Data Sync Engine
- 5.11.0:
- Ignore rejection on attributes where the client does not have read access
- Removed redundant code
- Impact for customer: None
- 5.11.1:
- Changed all non-test related .Wait() for async methods into proper async await
- Impact for customer: None
2020–11–11
Value Translator
- 1.7.2:
- Updated Nexus nugets
- 1.7.3:
- Optimization for batch translations
- 1.7.4:
- Now logs instance id on startup
- Stability fix for logging, an issue sometimes caused logs not to be handled properly
Async Caller
- 1.4.0:
- Support for prioritized queues
- New distribution method with easier setup and less code to maintain
- 1.4.1:
- Now logs instance id on startup
- Stability fix for logging, an issue sometimes caused logs not to be handled properly
Business Events
- 1.9.1:
- Now logs instance id on startup
- Stability fix for logging, an issue sometimes caused logs not to be handled properly
- 1.9.2:
- Fix for supporting optional Value Translator concept translation attributes in event contracts ("<attribute name>": "<concept id> | null")
Data Sync Engine
- 5.10.1:
- Now logs instance id on startup
- Stability fix for logging, an issue sometimes caused logs not to be handled properly
Health Checker
- 1.7.1
- Updated Nexus nugets
- 1.7.3
- Made one setting optional that was wrongly set to mandatory
- 1.7.4
- Now logs instance id on startup
- Stability fix for logging, an issue sometimes caused logs not to be handled properly
Fundamentals
- 2.2.2:
- Now logs instance id on startup
- Stability fix for logging, an issue sometimes caused logs not to be handled properly
2020–11–04
Data Sync Engine
- 5.10.0:
- Added support for stopping activity for specific keys; Table column Key.IsStopped. The existing functionality of KeyType.IsSendGetPaused, and IsSendUpdatePaused can be used to pause the activity for all the keys of a specific key type. In some cases this is too broad and the new functionality means that we now can stop activity for specific keys.
- Fixed a bug where setting KeyType.IsUpdatePaused also paused Get requests.
- Impact for customer: No action needed
2020–09–25
Fundamentals
- 2.2.1
- Now accepts colon (':') in basic authentication passwords.
- Impact for customer: No action needed
Business Events
- 1.9.0:
- Support for prioritized subscriptions
- Added support for custom request headers in client configuration
- Impact for customer: No action needed
Data Sync Engine
- 5.9.0:
- Added support for custom request headers in client configuration
- Impact for customer: No action needed
DSE & BE
Read more about how to configure custom request headers:
Transition guide: Version 2 of BE/DSE configuration
Authentication documentation: Client authentication methods
2020–06–17
Data Sync Engine
- 5.8.0
- Now always adds winning object id to merge victim for traceability purposes.
- All endpoints now use Fulcrum exception.
- Impact for customer: No action needed
2020–06–15
Data Sync Engine
- 5.7.4:
- When creating mandatory objects (which was introduced as a new feature in 5.4.11), RootObject was erroneously set to another object.
- Impact for customer: No action needed
2020–05–15
Health Checker
- 1.7.0: Support for HTML emails
2020–04–01
Fundamentals
- 2.1.0
- Clarified difference between 'Authenitcation as a service' and 'Nexus authentication' in the Swagger UI
- The announced removal of the deprecated authentication endpoints 'api/v1/{organization}/{environment}/Tokens' and 'api/v1/{organization}/{environment}/Token/Validate' has been performed
- 2.2.0
- Convenience: When creating a new Tenant, you can create a SystemUser along with it
2020–03–31
Data Sync Engine
- 5.7.3:
- Fixes problem with error when dispatcher receives NotFound response
2020–03–13
Data Sync Engine
- 5.7.2
- Fixes problem with database log level option
- Default database log level (DatabaseLogSeverityLevel) is now information
- Fixed a case where concurrency confuses the update event handling.Now also updated the context
2020–03–06
Value Translator
- 1.7.1: Fix for bug in automatic instance generation with many parallel translation requests
2020–03–04
Async Caller
- 1.3.0: Updated strategy for resend based on FulcrumError.sRetryMeaningful and otherwise the http status codes. Http status codes that will trigger a resend are 404, 408, 425, 429, 500 and above, except 510 and 526.
Value Translator
- 1.7.0
- Added support for getting all the preferred instances for a concept
- Fix for bug in automatic instance generation
Health Checker
- 1.6.1: Make use of configuration setting 'StillErrorRecipientEmails', to enable alerts to an URGENT channel, e.g.
2020–02–21
Data Synchronization Engine
- 5.7.0
- New endpoint for Associating keys
- SDK for Data Sync Engine, containing access to Assocation endpoint
- 5.7.1
- Added missing constraints and indexes
- Logs aimed at the database are now inserted immediately, instead of added to a log queue for later insertion
- Fixes an issue with verbose logging
2019-10-30
Fundamentals
- 2.0.9: Fixes: see Release links
Health Checker
- 1.6.0
- New endpoint for fetching a health check by id
- Fixes and improvements: see Release links
2019-10-11
Fundamentals
- 2.0.4–2.0.8 See Release links
- Impact for customer: None
AsyncCaller
- 1.2.0: Support for tenant specific ServiceMetas and Health
- Minor releases: See Release links
- Impact for customer: None
Value Translator
- 1.5.0: Support for database rollbacks (since PATCH 12)
- 1.6.0: Support for tenant specific ServiceMetas and Health
- Minor releases: See Release links
- Impact for customer: None
Business Events
- 1.5.0: Support for PostContentType in the configuration for authentication type JwtFromUrl
- 1.6.0: Support for optional attributes in event contracts is introduced.
Add "| null
" at the end of the contract type to make it optional. Full documentation is found at Seeding businessevents. - 1.7.0: Support for event contract verification when publishing. Translations are not checked. Use 'VerifyPublications': 'true' in 'businessevents' configuration. See Business Events configuration seeding.
- 1.8.0: Support for tenant specific ServiceMetas and Health
- Minor releases: See Release links
- Impact for customers: None.
Data Sync Engine (fka Match)
- 5.4.9–5.4.12 (and minor releases): See Release links
- 5.5.0: Now handles multi-level models, e.g. MdSubscription->MdEndUser->MdOrganization
- 5.6.0: Support for tenant specific ServiceMetas and Health
- Impact for customer: None
Health Checker
- 1.3.0: Support for sending 'ServiceAlive' mails to different recipients
- 1.4.0
- Introduced tenant configuration option HealthRequest.WarningDelaySeconds (default 5 seconds). If a request to a service' health check endpoint takes longer, status is set to Warning. (Default value of HealthRequest.MaxDelaySeconds is set to 30 s. If a request takes longer, it's considered an Error)
- Support for sending 'StillError' mails to different recipients
- 1.5.0: Support for tenant specific ServiceMetas and Health
- Minor releases: See Release links
- Impact for customer: None
Stabilization
- When up-scaling is necessary, a new web server instance is created and all the Nexus services are started. This release tries to stabilize this process, introducing a couple of retries if the services don't start as expected.
- Impact for customers: None.
Releases:
- Fundamentals 2.0.8
- AsyncCaller 1.2.0
- Key Translator 1.6.0
- Business Events 1.8.0
- Data Sync Engine 5.6.0
- HealthCheck 1.5.0
2019-08-28
Bugfix release of Match (5.4.8) that takes care of a TLS issue where the service threw exceptions when calling and receiving clients required TLS 1.2.
2019-07-08
Fundamentals
- 2.0.1–2.0.3: See Release links
- Impact for customer: None
AsyncCaller
- 1.1.3–1.1.9: See Release links
- Impact for customer: None
Business Events
- 1.4.4–1.4.9: See Release links
- Impact for customer: None
Value Translator (fka KeyTranslator)
- 1.3.0–1.4.4: See Release links
- Impact for customers: None
Match
- 5.4.3–5.4.7: See Release links
- Impact for customer: None
HEalth Checker
- 1.1.3–1.2.2: See Release links
- Impact for customer: None
2019-06-24
This is a major release that is not backwards compatible. For a smooth transition, we have set up a new production environment (called NEXUS-PRD) that customer should migrate to, before mid september 2019. There is also a new PRD-SIM environment that customer should move to from the current VER enviorment. Read more about it in the Transition guide.
Version 2 of self administration of tenants
- Given an instance of the new Organization entity, a customer have access to administration of Organization password, Environments (tenants), SystemUsers (clients that can access the Nexus services)
- For customer using "Authentication as service", i.e. internally in their platform, api methods for admninistration of Roles and Clients
- Administration tasks can be done through Swagger and are authenticated with Basic Auth:
- Organization name + Organization password for OrganizationAdmin access
- Environment name + Tenant password for TenantAdmin access
- Overview of bootstrapping a new tenant
Version 2 of Authentication
- Credentials for authentication against Nexus services are no longer stored in the tenant's authentication database, but with Nexus itself.
- Credentials for using Nexus "Authentication as a service", where adapters and other clients can authenticate themselves inside the customer's platform, are still stored in the tenant's database and the same endpoint in Fundamentals is used for creating tokens.
- Overview of new Authentication
Impact for customers:
- Self administration
- Credentials for the Organization and existing environments will be distributed
- Authentication against Nexus
- Only the API in a customer platform is allowed to access the Nexus services.
- New credentials for the api client will distributed for each tenant.
- A new endpoint in Fundamentals is used to create a token.
- Authentication as a service
FulcrumAuthorizeAttribute
is removed. Use regularAuthorizeAttribute
instead, with roles as strings instead of enums.AuthenticationManager
is still used for validating tokens, but if you wish to validate tokens yourself, the public part of the RSA key is available from Fundamentals (Swagger). The Issuer isAuthenticationManager.AuthServiceIssuer
.
- The database schema has changed, so when using the Nexus PRDSIM enviornment, it is no longer compatible with the current Nexus VER environment.
- Take a backup of the authentication database!
- Transition guide to version 2 of Nexus Authentication for API developers
Releases:
- Fundamentals 2.0.0
- AsyncCaller 1.1.3
- Key Translator 1.2.3
- Business Events 1.4.3
- Match 5.4.2
- HealthCheck 1.1.2
2019-06-18.2
Bugfix release of Fundamentals 1.1.8 that takes care of the memory leak problem in 1.1.7.
2019-06-18.1
Fundamentals 1.1.7 introduced a memory leak, so we rolled back that part of the release to 1.1.6.
This release contains a number of minor features and a number of bug fixes from the Nexus Nuget libraries and SDK:s.
Contains the following changes
- Introduced regex check for instance values (setting in Context table)
- Added a new endpoint for TranslateOrLock that isn't path based to support colons and slashes in the instance path.
- Uses the latest versions of the Nexus libraries and SDK:s
- Reworked translation of errors to exception in RestClient
- Better handling of inner errors for FulcrumError and FulcrumException
- Better logs for exceptions
Impact for customers
- Reworked translations of FulcrumErrors to FulcrumExceptions
- Some changes in log formatting from our services
Releases
- Fundamentals 1.1.7
- AsyncCaller 1.1.5
- KeyTranslator 1.4.0
- BusinessEvents 1.4.5
- Match 5.4.4
2019-05-06
This is a bugfix release.
Contains the following fixes
- Fixed errors on the form 'The form has one or more instances. Must be empty when deleted'
- Instances that are generated are now generated as late as possible (at translation time, not at form creation time)
Impact for customers
- The spurious logs in Business Events due to errors in Key Translator should stop
Releases
- KeyTranslator 1.3.1
2019-04-29
This is a bugfix release.
Contains the following fixes
- KeyTranslator handles certain racing conditions better
- KeyTranslator now logs inbound messages; 400-responses as Warning and 500-responses as Error
- Logging of outbound messages should now be better formulated
Impact for customers
- End of error logs in BusinessEvents regarding FulcrumAsssertExceptions from KeyTranslator
- Better log messages for outbound calls from the Nexus Services
- If you use our NuGet package for logging of outbound calls (Nexus.Link.Libraries.Web) in your own services, then you should update to the latest NuGet version to get the same behavior for your logging
Releases
- Fundamentals 1.1.6
- AsyncCaller 1.1.4
- KeyTranslator 1.3.0
- BusinessEvents 1.4.4
- Match 5.4.3
2019-04-17
This is a bugfix release.
Contains the following fixes
- Bad requests (HTTP Status code 4xx) are now logged as warnings.
- All services use the new message handler; ExceptionToFulcrumResponse
Impact for customers
- We suggest that you add the new message handler ExceptionToFulcrumResponse after the LogRequestResponse message handler in your API and your adapters to get the same logging and error handling experience as from the Nexus Link services.
Releases
- Fundamentals 1.1.5
- AsyncCaller 1.1.3
- KeyTranslator 1.2.3
- BusinessEvents 1.4.3
- Match 5.4.2
2019-04-16
This is a bugfix release.
Release of all services after updating them with the latest Nexus Link NuGet packages. The following bugs should have been taken care of with this release
- When one of our services called another service (e.g. BusinessEvents calls KeyTranslator), then an error in the remote service (KeyTranslator) was considered a programmers error in the first service (BusinessEvents).
- When an inbound request had an error, even errors that where bad requests (HTTP Status code 4xx) where logged as errors. Now only internal errors (HTTP Status code 5xx) are logged as errors.
Releases
- Fundamentals 1.1.4
- AsyncCaller 1.1.2
- KeyTranslator 1.2.2
- BusinessEvents 1.4.2
- Match 5.4.1
2019-04-10
Bug fix
- Code for translating http calls to https did not change port 80
to port 443 so those calls could not be completed.
Releases:
- BusinessEvents 1.4.1
2019-04-10
Better authentication mechanism for when BusinessEvents and Match make calls to subscribers:
- BusinessEvents no longer uses it's service tenant JWT as default, and the "nexus-token" authentication type is removed.
- Match no longer takes the authentication credentials for calling a subscriber from it's app settings, but from configuration (as in BE).
Full support for translations of arrays in Business Events
- See Event contract for syntax
Impact for customers
- You need to update the configuration for Business Events and Match, see below for examples
- In BusinessEvents configuration, either if a subscriber system used the "nexus-token" authentication method or had no method defined, both which implied BE service tenant JWT, then configuration must be added to the configurations database for the BusinessEvents service
- In Match configuration, add credentials for all your subscribed systems
- The old configuration will continue to work for some time
- We recommend that the configuration changes are made ahead of the release. The changes will take effect immediately for Business Events and after release for Match.
Example configuration (same syntax for both Match and BE) can be found at Publish or subscribe to Business Events
Releases
- BusinessEvents 1.4.0
- Match 5.4.0
2019-04-02
Hotfix release.
Removed a recursive exception handling in our Fundamentals service that could result in ever growing need for memory and heavily increased usage of CPU power.
Impact for customers
- The Fundamental service is more robust.
Releases
- Fundamentals 1.1.3
2019-04-01
Hotfix release.
We have noted that if a Nexus service logs a message larger than 64KB, then the Fundamentals service can get into a loop which will consume all available RAM memory. This release is the first step in dealing with this. We will simply truncate all log messages from our services that are too large. We aim to take other measures to ensure that logs are smaller without truncation in a later release.
Impact for customers
- Very large log messages from Nexus services may be truncated to 64KB.
- Log messages from within your own applications are not affected.
Releases
- Fundamentals 1.1.2
2019-01-30
Updated services due to the following changes
- KeyTranslator SDK now URL encode key values in outbound REST calls
- Authentication.AspNet SDK had a security issue, the patched release is 1.2.2.
- Updated all services to .NET Framework 4.7.2, which should solve an issue with supporting the latest TLS versions.
Impact for customers
- A security issue has been patched. We are now more strict regarding our token requirements, so you might get authentication errors with tokens that have worked in the past. Contact us if you want the details.
- If you are using our Authentication SDK, you should update to the latest version to get the patch.
- If you are using Xlent.Lever.Authentication.SDK, you will need to move to Nexus.Link.Authentication.AspNet.Sdk to get the patch.
Releases
- Fundamentals 1.1.1
- AsyncCaller 1.1.1
- KeyTranslator 1.2.1
- BusinessEvents 1.3.1
- Match 5.3.1
2019-01-21
Release of all services after updating them with the latest Nexus Link NuGet packages. A few services also have some smaller new features and changes. For all of them, the impact for customers are "No action needed".
Important
- We have introduced new NuGet packages named Nexus.Link.* instead of the Xlent.Lever.* packages.
- All future changes and bug fixes will be made on the new packages
- The old packages continue to be awailable, but will not be updated.
- We recommend that our customers move to the new packages
- Contact us if you want assistance in migrating to the new packages
The following bugs should have been taken care of with this release
- The Fundamentals Log service could stop sending logs until restarted
Releases
- Fundamentals 1.1.0
- AsyncCaller 1.1.0
- KeyTranslator 1.2.0
- BusinessEvents 1.3.0
- Match 5.3.0
2018-12-17
- Business Events 1.2.0
- Support for arrays in event contracts (but translation will happen only for the first element within the array)
- See Business Events release notes for details.
Impact for customers
No action needed
2018-12-05
Bugfix release for bug reported by customer.
- Business Events 1.1.1
- Events that contained two (or more) equal values of the same concept did just translate the first of those values.
- See Business Events release notes for details.
- Xlent.Lever.KeyTranslator.Sdk 3.4.2
- The bug was in the Key Translator SDK, so a new version was released
- A batch translate with two (or more) equal values of the same concept did just translate the first of those values
Impact for customers
No action needed
2018-11-21
- Business Events 1.1.0
- Introduced new stored procedures; DeleteEvent and CreateOrUpdatePublicationById.
- Key Translator 1.1.0
- Bugfixes.
- Match 5.2.1
- Bugfixes.
Impact for customers
No action needed
2018-11-15
- Health Checker 1.0.0
- Introducing Nexus HealthChecker service that can be used to monitor a Nexus environment. Supports notifications with mail and business events.
- Fundamentals 1.0.1
- Minor configuration for Health Checker
2018-11-12
- Match 5.2.0
- New configuration in Match:
- Client.TimeSpanBetweenCalls_Milliseconds. It was added to prevent choking Match clients. The default value is 0. Any Match instance will make sure that consecutive calls to the same client are done with at least this much time between the individual calls.
- Example: Suppose you set this to 1000 ms for a client. When Match is about to call the client, it first checks how long time it was since the last call and then waits until it was 1000 ms since the last call before making the new call.
- New configuration in Match:
Impact for customers
New database configuration for preventing slow Match clients to be choked.
2018-11-07
- Match 5.1.0
- Mostly bug fixes.
Impact for customers
Items that are "stuck" in the database table KeyQueueItem should now be removed as expected.
New release notes policy
In November 2018 a decision was made to publish release notes for all releases. Before that we only published release notes for major releases.
2018-10-05
- Introduced support for database encryption, see Encrypted databases
Impact for platform clients
Contact Xlent to enable this feature
2018-04-26
- Introduced next version of Health Checking, where each service tells it's dependencies which the new service Nexus Health Checker uses to check the health of an environment
Impact for platform clients
- To use this feature, the api and adapters must implement a simple REST contract
- Contact Xlent to enable this feature
2018-03-08
- Introduced support for "Test Bench" in Business Events and KeyTranslator, so that Adapter developers may verify their events.
- Impact for platform clients
- An API developer can expose the test bench to adapter developers
- Contact Xlent to enable this feature
- Impact for platform clients
- Developer support for calling localhost
-Impact for platform clients
- Developers can install a program that will enable calls from Business Events and Match to reach endpoints on localhost.
- Contact Xlent to enable this feature - Fixed issue with logging
2017-11-30
- Merging of Configurations, Authentication and Logger services into a new service called Fundamentals.
- Impact for platform clients:
- Must change the hostname for the three services to the new one as soon as possible. The old end-points will be removed at the next release.
- Impact for platform clients:
- Renamed Authentication/Token to Authentication/Tokens. The old path is kept for backward compability.
- Impact for platform clients:
- Must change any references to the old Path before 2017-03-01
- Impact for platform clients:
2017-10-01
- First release of the platform as SaaS, including services
- Configurations
- Authentication
- Async Caller
- Key Translator
- Business events
- Match