Find a way to deal with search-metadata.json
- 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
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