BlueBrain / BlueBrain/nexus

Find a way to deal with search-metadata.json

Open
#2,390 0 comments 0 reactions 0 assignees View on GitHub
bug delta
Dominant language
Scala
Stars
301
Forks
76
PR merge metrics
No merged PRs in 30d

Description

the context https://bluebrain.github.io/nexus/contexts/search-metadata.json it is a generated context from all the `MetadataContextValue` that every plugin publishes.

However if someone creates a third party plugin, the content of the file https://bluebrain.github.io/nexus/contexts/search-metadata.json (published to github pages) won't change and someone relying on some json-ld library to resolve that context will probably have issues.

In order to fully support that, we will probably have to do the following. change:
```scala
final case class MetadataContextValue(id: Iri, value: ContextValue) extends AnyVal
```
So, instead of having just one aggregated context(search-metadata.json) we will have a set of contexts, and elasticsearch listings response should return them in the `@context` array. In this way we will support plugin extensibility.

Contributor guide

Open the contributing guide

Research direction

Start with MetadataContextValue and trace how the aggregated search-metadata.json context is generated and how Elasticsearch listings responses assemble their @context. Compare the current published context with the proposed set of plugin contexts; the work is done when third-party plugin metadata contexts can be returned and resolved without changing the published aggregate.

Written by the indexing model from the issue text.

Assessment

Tech stack
elasticsearch, scala
Domain
backend, search
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.