openlibhums / openlibhums/janeway
Cited By: Implement an endpoint for Crossref's Notification callback service
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 238
- Forks
- 97
- Avg merge
- 9d 1h
- Merged PRs (30d)
- 8
Description
Is your feature request related to a problem? Please describe.
Janeway can currently fetch cited-by data on demand using a command line utility (metrics.fetch_forward_links)
Crossref have since made available a notification callback service which would allow them to "push" notifications on cited-by (and also for XML deposits) rather than having to follow a "pull" approach.
https://www.crossref.org/documentation/register-maintain-records/verify-your-registration/notification-callback-service/
Describe the solution you'd like
Implement an endpoint that we can share with Crossref for their notification callback service.
When a journal is configured to use the Crossref integration, a deposit is made indicating the URI for the payloads to be sent to.
Additional context
We still need to preserve the pull approach in order to process past cited-by data when a journal is being setup or problems have occurred processing the push feed from Crossref. This utility needs some new work as well to ensure it can cope with large payloads, by chunking the requested dataset, as it often times out when asking for the cited-by data for a large installation.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the metrics.fetch_forward_links command and the Crossref notification callback service documentation, then trace the existing Crossref integration and deposit configuration. Done means a shareable callback endpoint is implemented while the pull workflow remains available and can process large cited-by datasets in chunks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100