v1.4 Release Notes

This is an incremental software release that adds several improvements across the board. The API is backwards compatible to v1.3 (and the rest of the v1.x releases, i.e. v1.2, v1.1 and v1.0) but requires rebuilding all indices and performing schema migrations. Please visit the migration instructions for the exact steps necessary to upgrade from the previous release.

Highlights

The goal of this release is to improve performance and shrink the service footprint when deploying the Nexus ecosystem.

Services merge

Up until 1.3, Nexus backend was splitted into 3 services:

  • iam: dealing with identity and access management.
  • admin: dealing with organizations and project management.
  • kg: dealing with resources and their lifecycle.

In 1.4 we have merged the 3 services together. Combining the 3 services into one has the following benefits:

  • Easier to deploy, test and monitor.
  • Decrease latency since the services do not have to interact with each other. The degree to which this aspect improves depends on the quality of the network where the service are running.

Listing results

Listing API responses return, along with the resource metadata, the following predicates: sko:prefLabel, schema:name and rdfs:label when they are present in the resource payload.

GET /v1/resources/{org_label}/{project_label}

An example response:

{
  "@context": [
    "https://bluebrain.github.io/nexus/contexts/search.json",
    "https://bluebrain.github.io/nexus/contexts/resource.json"
  ],
  "_total": 1,
  "_results": [
    {
      "@id": "https://nexus.example.com/v1/resources/myorg/myproj/fd8a2b32-170e-44e8-808f-44a8cbbc49b0",
      "@type": "http://example.com/Custom",
      "prefLabel": "my prefered label",
      "name": "my schema name",
      "label": "my schema label",
      "_incoming": "https://nexus.example.com/v1/resources/myorg/myproj/myschema/base:fd8a2b32-170e-44e8-808f-44a8cbbc49b0/incoming",
      "_outgoing": "https://nexus.example.com/v1/resources/myorg/myproj/myschema/base:fd8a2b32-170e-44e8-808f-44a8cbbc49b0/outgoing",
      "_self": "https://nexus.example.com/v1/resources/myorg/myproj/myschema/base:fd8a2b32-170e-44e8-808f-44a8cbbc49b0",
      "_constrainedBy": "https://bluebrain.github.io/nexus/schemas/resource",
      "_project": "https://nexus.example.com/v1/projects/myorg/myproj",
      "_rev": 4,
      "_deprecated": true,
      "_createdAt": "2018-09-17T14:54:42.939Z",
      "_createdBy": "https://nexus.example.com/v1/realms/myrealm/users/john",
      "_updatedAt": "2018-09-17T15:02:42.939Z",
      "_updatedBy": "https://nexus.example.com/v1/realms/myrealm/users/john"
    }
  ]
}