Add an endpoint to compare two resources
- 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
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