BlueBrain / BlueBrain/nexus

Add an endpoint to compare two resources

Open
#4,787 0 comments 1 reaction 0 assignees View on GitHub
delta feature
Dominant language
Scala
Stars
301
Forks
76
PR merge metrics
No merged PRs in 30d

Description

**Motivation**
We have more and more resources and we want to be able to compare.
Besides, some of them are starting to have a complex history so we also want to be able to compare two revisions of the same resource.

This ticket means to address that by adding a new endpoint where the user can provide two resource identifiers which can contain a revision or a tag

**Acceptance criteria**
1. Only "data" resources can be compared
2. The user must have access to both resources
3. It is possible to compare two revisions of the same resource
4. Resources can live in different projects
5. The diff is done on the following fields:
* The resource types
* The original payload
* The compacted form
* The remote contexts
* The schema used to validate those resources

**Not in scope**
1. The diff just indicates if the value are not equals for performance reasons, complete diffs will be implemented later
2. Comparing files, schemas will addressed in later tickets if needed

Contributor guide

Open the contributing guide

Research direction

Start by locating the existing resource endpoint and authorization entry points, then trace how resource identifiers, revisions, tags, projects, and data-only resources are handled. Define the endpoint contract around the listed acceptance criteria and verify that comparisons cover the five named fields while returning only equality indicators; no files or tests are identified in the issue.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.