v1.9 Release Notes
This is an incremental software release that adds several improvements across the board. The API is backwards compatible with v1.8.
With v1.9, Nexus Delta also changes its underlying runtime, allowing to it to work properly, switching from Monix which is not maintained anymore to Cats Effect.
For the detailed list of updates in this release, see the list of addressed issues since v1.8.
If you are currently using Nexus Delta from 1.8.x, please visit the migration instructions for the necessary steps to successfully upgrade.
Nexus Delta
Resources
self, incoming and outgoing links
Those three links are returned in the response of operations related to the different resources. Until 1.9, they were curied/shortened according to the base and the API mappings defined in the project configuration.
This caused consistency problems, as whenever the base or the API mapping was changing, those shortened links were not valid anymore:
- All data in views displaying metadata (which include those links) had to be indexed again ;
- The change also had to be propagated to other external systems ;
- The resources, including download links to files, had to be patched
Therefore, since 1.9, _self
, _incoming
and outgoing
links are not shortened anymore, allowing them to remain stable in time even if the project configuration changes.
Multi fetch
Multiple resources can now be retrieved within a single call with the multi-fetch operation.
Resources trial and resource generation
Until 1.9, operations about resources resulted in writes in the primary store and indexing in the knowledge graph. However, users may also want first to experiment/refine/polish/validate a resource and schema and only create/update the resource when they are happy with it.
Payload validation
It is now forbidden for JSON payloads to contain fields beginning with underscore (_). This can be disabled by setting app.resources.decoding-option
to lenient
; however, it is not recommended as the specification of this data in payloads can have unexpected consequences to both the data and the user interface.
Listings by types can now be controlled with the typeOperator
query parameter. Possible values are or
and and
, which will match any and all types, respectively.
Aggregations
It is now possible to aggregate resources by @type
or project
.
This feature is also available on files, resolvers, schemas, storages, and views.
Remote contexts
When creating/updating a resource, Nexus Delta now keeps track of the remote contexts that have been resolved during the operation.
Schema changes
The schema of a resource can now be changed:
- When performing a resource update, it is possible to specify a new schema.
- A dedicated endpoint to only change the schema without providing any payload is available.
More information about the dedicated endpoint
Tagging at creation/update
Create and update operations on resources now accept an optional tag, allowing the resulting resource to be tagged in the same call.
No new revision on a resource if no change is detected
During update and refresh operations, if no change is detected, no new revision will be created and the last existing revision will be returned.
This was introduced to prevent users from creating a large number of revisions for resources when no change is actually introduced.
Undeprecate resources
Previously deprecated resources can now be undeprecated.
Projects
Undeprecate projects
Previously deprecated projects can now be undeprecated.
Views
Indexing errors listing
Indexing errors can now be listed and filtered for a given view.
Resource type filtering performance improvement
To improve indexing performance, the types defined in the FilterByType pipe, Sparql View payload, or the Composite View source payload are filtered in PostgreSQL rather than in Nexus Delta. This avoids querying for data just to discard it straight away.
Compressing requests to Elasticsearch
The different requests to Elasticsearch are now compressed by default allowing to reduce the I/Os especially during indexing.
Composite views
New features enhance the performance of indexing of composite views, as well as authentication changes for views which incorporate projects on remote Delta instances.
Batching queries to the intermediate space
Construct queries to the intermediate space can now be batched.
Partial reindexing
A diff is performed when a composite view is updated, and only the necessary spaces are reindexed.
For example, if a source is added/updated/removed, all the spaces (intermediate space and projection spaces) get reindexed. However, if a projection is added/updated/removed, now only the space related to this projection is reindexed, which reduces the number of operations and consequently speed up the indexing.
Preserving the intermediate space also reduces the fragmentation of the Blazegraph journal.
Remote authentication
Rather than storing an auth token in the composite view, it is now expected to specify an authentication method in the Delta configuration.
Remove the resourceTag field in projections of composite views
This field was never used, so as there is no plan for it, it has now been removed.
Elasticsearch Views
The Elasticsearch mapping of an Elasticsearch View can be retrieved.
Archives
Add files by their _self
Files can be added to an archive using a _self
.
Annotated source as a format
Annotated source is now available as an output format when creating an archive.
Require only resources/read
permission for archive creation
Creating an archive now requires only the resources/read
permission instead of archives/write
.
Remove support for Tarball archives
Tarball archives are no longer supported due to unnecessary restrictions. ZIP is now the only allowed format and clients should send application/zip
in the Accept
header when creating archives.
Organizations
Support deletion of empty organizations
Previously, it was only possible to deprecate organizations at a specific revision. Now, organizations containing no projects can be deleted by specifying a prune parameter: DELETE /v1/org/{label}?prune=true
Undeprecate organizations
Previously deprecated organizations can now be undeprecated.
Storages
Remote Storages
Storages can no longer be created with credentials that would get stored:
- For S3 storages, this would be
accessKey
/secretKey
. - For remote storages, this means
credentials
.
These should instead be defined in the Delta configuration.
Files
Undeprecate files
Previously deprecated files can now be undeprecated.
Automatic media type configuration
The automatic detection of the media type can now be customized at the Delta level.
NB: The media type provided by the user still prevails over automatic detection.
Tagging at creation/update
Create and update operations on files accept now an optional tag allowing to tag the resulting file in the same call.
Graph analytics
Search endpoint for Graph analytics’ views
The Elasticsearch views behind Graph analytics can now be queried using the _search
endpoint.
Indexing remote contexts in Graph Analytics
Remote contexts used during the JSON-LD resolution for a resource are now indexed in the Graph analytics views and can be found via the search endpoint
Id Resolution
It is now possible to perform ID resolution by providing only the identifier of a resource.
User Permissions
It is now possible to query whether the currently logged-in user has specific permission in a specific context.
Nexus Fusion 1.9 Release Notes
The 1.9 release of Nexus Fusion focuses on enhancing user interaction, resource management, and overall application efficiency. This update introduces new features and key improvements across various sections of the application.
Home Page
- Global User Interface Improvements:
- Improved header menu behavior while scrolling.
- Enhanced uniformity in UI elements.
Data Explorer
- Built beta version of data explorer.
- Multi-type filter selection in the “My Data” section.
- New filtering and navigation features.
- Fullscreen mode for Graph Flow.
- Navigation has been improved with back and forward buttons.
Project Listing Page
- Resource Management and Display:
- Display of resources missing paths and containing specific values.
- Clearer resource counts and enhanced popover information.
- Introduction of Data Cart logic.
- Improved ACL checks and permissions retrieval.
Resource Viewer
- ID resolution in resource viewer/editor.
- ID resolution via the URL input of the browser.
- Code Editor Enhancements:
- URL copying feature in Code Editor.
- Typo corrections and layout adjustments.
- Tagging resources and splitting resource history.
Functional Improvements
- Advanced search and filter capabilities.
- New resource tagging features.
- Enhanced error handling and feedback mechanisms.
- Bulk request resources from the backend to reduce the number of network requests.
Nexus Storage
Automatic file detection
The Nexus storage app also benefits from the changes in automatic file detection.
Removing Delta callback to validate the caller identity
This callback has been replaced by a local validation of the token.