Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warning

UNMAINTAINED.  This documentation has been moved to the official DSpace documentation at COAR Notify - LDN Services

Table of Contents
stylecircle

Introduction

The The Arcadia-funded COAR Notify Project is developing and accelerating community adoption of a standard, interoperable, and decentralised approach to linking research outputs hosted in the distributed network of repositories with resources from external services such as overlay-journals and open peer review services, using linked data notifications. As part of this project, COAR is funding the development of platforms and systems to support the exchange of linked data notifications across partner organisations and the workflows to manage notifications in those platforms and systems. As the largest adopted repository platform in the World one of the first platforms to be addressed is DSpace the implementation of which has been entrusted to 4Science.

The application can receive and send LDN messages concerning items with external systems. The LDN system is the protocol of message exchanging; the Quality Assurance system is the mechanism used to approve or reject item updates.

How to enable

Configuration properties involved:



ldn.enabled = true|false


true

 

=> message is received and managed the server responds with an HTTP 202 code
false

 

=> message is

refuced

refused and the server

respond

responds with an HTTP 404 code

ldn.notify.inbox = DSpace\url\address\ = <ldn inbox endpoint> 

where the ldn inbox rest service is mapped on the current DSpace instance. IE: ${dspace.server.url}/ldn/inbox

coar-notify.ip-range.enabled = true|false

enables the filter on validation against the IP of the sender (external) for received ldn message (into the DSpace ldn inbox)against the registered range

Relation with the Quality Assurance Correction Service

The LDN system, as a message exchanging i/o system, has an inbox and an outbox. Every LDN message refers to a Notify Service: all the Notify Services are configured manually from the admin application form. A Notify Service is just like an authority labelled on LDN messages.

...

The match between LDN message type and the QAEvent topic (suddenly created by the evaluation of the ldn message from the queue) is configured onto ldn-coar-notify.xml spring file. Every Processor owns a list of actions. An action is often an email to be sent and an action to create the qa event. The LDN processor receives the QAEvent topic as a parameter and creates the relative QAEvent.

LDN Autodiscovery mechanism

Third party system can retrieve the location of the repository LDN InBox via the LDN autodiscovery mechanism, nevertheless to be able to interact with DSpace they need to be approved by a Repository Administrators and listed in the LDN Services Directory (see next paragraph); otherwise their messages will be flagged as untrusted and not processed at all.


LDN Services Directory

...

(Registering Services)

Anchor
Notify Service
Notify Service

You need to register the external services to trust allow the handling of the incoming LDN messages / send LDN messages to:.

These services are also used to send LDN notification during the submission process of an item (Please take a look at LDN Inbound pattern)


Administrators can do that manage services using the menu LDN Services. New/Edit Notify Service with this form

The following page is used to submit a new LDN Service:


Name: a label for the Notify Service used on the UI
Description: the description of the Notify Service - add details here

Service URL: the url of the remote Notify Service. This is mostly used

when DSpace sends out LDN Messages

as a descriptive URL when sending notification to an external system.

The service URL must not be confused with the inbox url. As said this url is descriptive so we expect the main application URL to be added here

Level of Trust: floating point number value accepted between 0 and 1.

This value is passed into every QA Event created by every LDN Message

associated with this Notify Service: it goes to evaluate the "score" attribute of the QA Event. Score attribute is used for rejection/acceptance

used to assign to the service a TRUST value that describes how much reliable the external service is.

This value is not used if the automatic processing of QA Events is disabled

Check the configuration file qa event automation. See the project file dspace/config/spring/api/qaevents.xml on the bean qaAutomaticProcessingMap/qaScoreEvaluation to enable the automatic approval

When the automatic approval is configured the trust value of the LDN Service is check against configured score thresholds. 

Thresholds for automatic Approval/Rejection/Ignoring can be set.

Also within a specified range QA Events will need a manual approval

Service IP Range: two IP addresses Service IP Range: two IP numbers expected as minimum and maximum.

This range can be is used to add a filter to entrust the identified Notify Service of 

every incoming LDN Messages. If IP Range is enabled, the sender Notify Service is identified but the current LDN Message is coming from an IP

validate the received LDN Messages.

When the LDN notification doesn't match the configured IP Range the notification is stored as UNTRUSTEDout of this range - the LDN Message is set as untrusted.

LDN Inbox URL: every incoming LDN Message must have an identifiable Notify Service. We match this field to the origin.inbox attribute of the

LDN Message. Despite the ip range - this field is mandatory. Every incoming LDN Message with a non-identifiable Notify Service associated is set

as untrusted and won't be enrouted to the Ldn Router.

this is the url used to send the LDN Notifications. 

This url is also used when a notification is received to retrieve the registered LDN service it belongs to

This URL must is unique among the registered LDN Services

Inbound Pattern: the section for Inbound pattern is the section which describes what operations/actions are supported by the external service

Inbound Pattern: stored into the database table notifyservice_inbound_pattern - we can add at least 1 of them for each Notify Service. Every inbound

pattern is the triple of [ pattern, item filter, automatic flag ] :

pattern: see

The pattern itself can be selected from the dropdown as there's a list of pattern. To better understand pattern usage please 
refer to the official documentation

https://notify.coar-repositories.org/patterns/

for all possible combinations, currently are hardcoded on the angular frontend project;

 

The item filter is used to describe which item can be processed for the current LDN Service/Inbound pattern. 
if the item filter is not set any item is allowed. If the filter is selected only for matching items the LDN Notification will be sent
(in case of automatic LDN Notification the notification is not sent, In case of NON-automatic service a validation will prevent requests 
to be sent to the external service) 

The automatic flag when set to true the ldn message exchange is performed automatically right after the item submission has finished.
this Automatic workflow generates an Outgoing LDN message targeting the Notify service for the just submitted item.
The automatic flag involves only the submission phase

  • item filter: known on DSpace and declared onto dspace\config\spring\api\item-filters.xml
  • automatic flag: when activated the ldn message exchange starts automatically at the item submission time. Automatic triggers an Outgoing LDN
    message targeting the Notify service and the item in submission. The automatic flag involves only the submission phase

    of an item.
    If no item filter is set - the

    flag is applied on all submissions.

    LDN notification is generated for any submitted item. 


    LDN Inbox queueing

    LDN incoming messages are stored into the ldn_message database table. As far as the property ldn.enabled  is true and the incoming json is valid, the LDN Message is stored on the table. Together with the storage of the record, the queue status of the message is initialized. The queue_status column of the table contains the status of the LDN message inside the queue. All the possible queue_status values are described into the java class org.dspace.app.ldn.LDNMessageEntity as integer constants.

    Status name

    Value in DBDescription

    QUEUE_STATUS_UNTRUSTED_IP

    QUEUE_STATUS_UNTRUSTED

    0

    5

    Message must not be routed as it is not trusted.
    This may occur if the IP address of the notifications' sender doesn't match the provided "IP Range"
     or if the service inbox URL in the origin section of the message doesn't match with any registered LDN Service entry's Inbox URL.the message must not be enrouted
    QUEUE_STATUS_QUEUED1Message is waiting in the queue the message needs to be evaluated processed by the Extractor
    QUEUE_STATUS_PROCESSING2Message the message is currently being evaluated processed by the extractorExtractor
    QUEUE_STATUS_PROCESSED3the message Message has been already evaluated successfully processed by the Extractor
    QUEUE_STATUS_FAILED4Message the message has been evaluated but its routing has failed



    If valued as queued the LDN message will be processedall validations are run successfully the LDN Notification status is set as QUEUE_STATUS_QUEUED and the notification will be processed as soon as the extractor retrieves it from the queue

    The LDN Message logical queue is managed by:

    • The LDN Message Extractor is an asynchronous DSpace task that reads which retrieves the oldest manageable processable LDN message and enroute it to the LDN Router; an ldn message is manageable .
      A LDN notification is processable by the Extractor only if its queue status is QUEUE_STATUS_QUEUED. the extractor instance other status will not be considered by the extractor.
      The extractor process ends as soon as the LDN extracted message extracted is routed and processed or failed. For each tentative the attempts counter of the message is (either with success of failure).
    • The LDN Message Timeout Checker  is an asynchronous DSpace task that looks for timed-out messages with attempts less than Y, where Y= the value of the configuration property ldn.processor.max.attempts. Cron configuration at property ldn.queue.timeout.checker.cron
      Each notification if not successfully processed is retrieved in the next execution of the Checker and attempts are kept up to date (increased by 1 and the timeout is increased by X minutes), where X= the value of the configuration property ldn.processor.queue.msg.timeout | defaulted to 60. Cron configuration at property ldn.queue.extractor.cron
    • The LDN Message Timeout Checker  is an asynchronous DSpace task that looks for timed-out messages with attempts less than Y, where Y= the value of the configuration property ldn.processor.max.attempts. Cron configuration at property ldn.queue.timeout.checker.cron

    Please consider that Please consider that this means that the corresponding QAEvent is not automatically created as soon as the LDN Message is received. LDN Message (accepted by the inbox controller and stored into ldn_message table) => Extractor (started runtime as a batch) => Routing => Processor => Action that creates the QA - see class org.dspace.app.ldn.action.LDNCorrectionAction

    ...


    The QA Event related to the LDN Notification will be created only once the notification is successfully processed by the extractor (LDN queue status set to QUEUE_STATUS_PROCESSED).

    Notify status boxes

    Considering these possible scenarios here at: COAR Notify Protocol: Example Scenarios

    ...

    When Offer message has been followed by a related Announce incoming message, the box shown is blue! It is blue because receiving an Announce means - then the message is extracted - we produce a new QA Event. As every QA Event it is shown on Item Page and myDSpace page.


    Configuring automatic QA evaluation using the Level of Trust

    It’s Score is a number 0 < # < 1. Triggers
    If the proper configuration is enabled an automatic check for approval of QAEvent QAEvents is run once the LDN message is extracted.
    On qaevents.xml spring configuration files   file the bean qaScoreEvaluation describes we can configure three different boundaries defaults to manage to automatically approve/reject/ignore the level of trust:

    <property name="scoreToReject" value="0.3" />
    <property name="scoreToIgnore" value="0.5" />
    <property name="scoreToApprove" value="0.8" />

    • if score <= rejection deletes the QAEvent;

    ...

    • if score <= ignore discards the QAEvent;

    ...

    • if score >= approval accepts the QAEvent automatically

    ...

    • if score respects the following:  scoreToIgnore < score < scoreToApprove
      no automatic action is performed and the user must check manually the QA event

    This feature must not be confused with the automatic triggering for LDN Inbound pattern

    Sending LDN Notifications during the submission of an item

    ...

    In the example below it is shown the submission of an Item with a new section named for COAR-Notify. 
    In this section we can manually choose manually specific ldn-services which cover the request on (which were not marked as automatic) in order to ask for Review, Endorsement and ReviewIngest to external services.
    If No LDN-Services have been configured with these Inbound Patterns, combos on the COAR-Notify section are going to be empty! Example:  by flagging automatic to the Inbound Pattern Request Review of LDN Service named "X" , it means that the LDN Service X will not be visible on the Request Review combo of the COAR-Notify submission section. This is the meaning of automatic: a Request Review is going to be sent out to X every time an Item is submitted. All items? No, the items filtered by the Item Filter configured on that Inbound Pattern. 

    ...

    Image Removed

    Test calls: Request Endorsement (LDN Message on item submission)

    Let's configure a new Notify Service such as:

    Image Removed

    and save.

    ...

    Image Removed

    Create a new Collection inside the community

    created above.

    It is important for this community to have no Entity Type set.

    Take a look into the item-submission.xml file for the

    "traditional" steps sequence configuration. Here we've set

    the coarnotify-step! The traditional step sequence is used as the

    default, and the default is used for Collection with no entity

    type associated.

    If the coar-notify step is needed for every collection possible,

    the entry-step must be added onto every <submission-process>

    described into item-submission.xml

    ...

    Image Removed

    Create a new Item, select the collection created above.

    As expected we see the COAR Notify section: here it is the

    ldn request configuration: comboes for Review, Endorsement and

    Ingest are filled with the corresponding configured LDN Services.

    For this example we see only one value for the Endorsement 

    combo (see the Inbound Pattern configured onto the Notify Service

    ...

    A new LDN Message of type Offer: Endorsement Action

    is stored and enqueued! As soon as the Extractor manages it, it is

    enrouted to the Processor configured at ldn-coar-notify.xml

    (as one of the <outcomingProcessors>). The processor

    is the bean named outcomingAnnounceEndorsementAction, which lists 

    the SendLDNMessageAction. So, it is only at this point, when the

    action SendLDNMessageAction is executed - that the notification

     is sent out to the external Notify Service.

    To whom the notification is sent out? To the url configured 

    as the LDN Inbox property of the Notify Service

    (see above: https://notify-inbox.info/inbox/).

    ...

    Image Removed

    as soon as our Offer is correctly received on the Notify Service side,

    the Notify Service has to provide us - asynchronously as a separate Acknowledge

    LDN message - the Acceptance or Rejection of the Endorsement we offered.

    When Acceptance is received:

    The Acknowledge LDN Message - when received - is managed by the Processor

    configured into the bean named acceptAckAction.

    When Rejection is received:

    The Acknowledge LDN Message - when received - is managed by the Processor

    configured into the bean named rejectAckAction.

    (non-automatic) pattern has been configured for the LDN Service this service will not be displayed in any of the dropdown. 

    Image Added

    Automatic Inbound pattern triggering

    When adding new LDN Inbound pattern to a LDN Service we can select if a pattern has to be automatic or not.

    Flagging a pattern as automatic means that the request described by the current pattern is sent automatically to the external service:

    • No action is required during the submission to select the LDN Service for a specific pattern
    • The service in not even listed in the COAR notify step of the submission 


    Item filters for Inbound pattern

    When adding inbound pattern to a service we have the possibility to add an item-filter for each described pattern

    An item filter allows to filter items according to specified criteria.

    • If the pattern is flagged as automatic the item filter is evaluated automatically
      • if the item filter is respected the LDN Notification is stored and queued for sending
      • if the item filter is not respected the LDN Notification is not even generated an nothing will be sent to the external service
    • If the pattern is not flagged as automatic the item filter is evaluated when choosing the service from the dropdown for Notify in the submission
      • if the pattern is not respected an error message will be displayed saying the selected LDN service cannot be used for the current item
      • if the pattern is respected no error message is displayed 

    Item Filter is a non-mandatory field. It activates a filter to be applied to the item during the submission. 
    If the item matches the item filter condition the submission will be successful: otherwise the submission will fail with a talkative message.
    Visible item filters are configured into a static list mapped into item-filters.xml file - on a bean named ldnItemFilters. We established for the following item filter to be shown:

    Has one Bitstream = the item must have exactly one bundle named "ORIGINAL";
    Item is public = anonymous user can see/read the item;
    Title starts with pattern = the dc.title metadata of the item must start with 'Pattern';
    Type equals dataset = the dc.type metadata of the item must be 'Dataset';
    Type equals dataset = the dc.type metadata of the item must be 'Journal Article';

    item-filter.xml has all item filters declarations: only the ones declared inside the ldnItemFilters map are shown.

    Image Added


    The LDN Consumer

    The LDN Consumer is the consume responsible for generating the outgoing LDN Notification.

    This consumer is triggered any time an Item is successfully installed and a check against the registered LDN Services/patterns is done to generate the appropriate LDN Notification

    This consumer is responsible for the handling of both automatic a non-automatic patterns


    event.consumer.ldnmessage.class = org.dspace.app.ldn.LDNMessageConsumer
    event.consumer.ldnmessage.filters = Item+Install



    Understanding the structure of the LDN Notification

    The LDN Notification includes some important section many of these if improperly set might led to errors in evaluations on the notification

    Let's take a deeper look at the LDN Notification structure

    @context

    The context section is the same for any LDN Notification 

      "@context": [
        "https://www.w3.org/ns/activitystreams",
        "https://purl.org/coar/notify"
      ]

    actor

    This section describes the actor which performs the request
    This is a descriptive section and doesn't include important information

      "actor": {
        "id": "https://review-service.com",
        "name": "Review Service",
        "type": "Service"
      }

    context

    This is one of the most important section.
    In this section we have a description of the Item being involved in the LDN Notification

    • id → is the identifier URL of the item in the repository
      this field is really important to identify and link the Item to the current notification

    other fields are descriptive fields for the item

      "context": {
        "id": "https://research-organisation.org/repository/preprint/201203/421/",
        "ietf:cite-as": "https://doi.org/10.5555/12345680",
        "type": "sorg:AboutPage",
        "url": {
          "id": "https://research-organisation.org/repository/preprint/201203/421/content.pdf",
          "mediaType": "application/pdf",
          "type": [
            "Article",
            "sorg:ScholarlyArticle"
          ]
        }
      }

    id

    The identifier of the LDN notification (Each notification has a different id)

    "id": "urn:uuid:94ecae35-dcfd-4182-8550-22c7164fe23f"

    inReplyTo

    This field is used to reply to other LDN notification so that the system knows if the current notification is a response

    "inReplyTo": "urn:uuid:0370c0fb-bb78-4a9b-87f5-bed307a509dd"

    object

    This is a descriptive section of the received Review, Endorsement etc..

    • id → is the URL of the review/endorsement etc.
      "object": {
        "id": "https://review-service.com/review/geo/202103/0021",
        "ietf:cite-as": "https://doi.org/10.3214/987654",
        "type": [
          "Document",
          "sorg:Review"
        ]
      }

    origin

    This is an important section since it is used (for incoming notifications) to determine the service among the registered ones.
    If the service is not recognized as registered the notification is untrusted

    The field being used for this check is inbox

      

      "origin": {
        "id": "https://review-service.com/system",
        "inbox": "https://review-service.com/inbox/",
        "type": "Service"
      }

    target

    This section is used to describe the target system involved in the notification workflow 

      "target": {
        "id": "https://generic-service.com/system",
        "inbox": "https://generic-service.com/system/inbox/",
        "type": "Service"
      }

    type

    This type section is important since it's determining how to process/evaluate any received notification

      "type": [
        "Announce",
        "coar-notify:ReviewAction"
      ]




    ...

    Testing

    Request Endorsement (LDN Message on item submission)

    Let's configure a new Notify Service such as:

    Image Added


    and save.

    (NOTE: If you plan to test with Docker, the "Service IP Range" should likely include 172.23.0.1 – this is the IP that your Host machine will likely appear as when running the backend in Docker.)


    Create a new Community:

    Image Added

    Create a new Collection inside the community

    created above.

    It is important for this community to have no Entity Type set.

    Take a look into the item-submission.xml file for the

    "traditional" steps sequence configuration. Here we've set

    the coarnotify-step! The traditional step sequence is used as the

    default, and the default is used for Collection with no entity

    type associated.

    If the coar-notify step is needed for every collection possible,

    the entry-step must be added onto every <submission-process>

    described into item-submission.xml


    Image Added

    Create a new Item, select the collection created above.

    As expected we see the COAR Notify section: here it is the

    ldn request configuration: comboes for Review, Endorsement and

    Ingest are filled with the corresponding configured LDN Services.

    For this example we see only one value for the Endorsement 

    combo (see the Inbound Pattern configured onto the Notify Service

    named NotifyService Score0.123 - first screenshot of this paragraph)

     Deposit the item.


    A new LDN Message of type Offer: Endorsement Action

    is stored and enqueued! As soon as the Extractor manages it, it is

    enrouted to the Processor configured at ldn-coar-notify.xml

    (as one of the <outcomingProcessors>). The processor

    is the bean named outcomingAnnounceEndorsementAction, which lists 

    the SendLDNMessageAction. So, it is only at this point, when the

    action SendLDNMessageAction is executed - that the notification

     is sent out to the external Notify Service.


    To whom the notification is sent out? To the url configured 

    as the LDN Inbox property of the Notify Service

    (see above: https://notify-inbox.info/inbox/).

    Image Added

    as soon as our Offer is correctly received on the Notify Service side,

    the Notify Service has to provide us - asynchronously as a separate Acknowledge

    LDN message - the Acceptance or Rejection of the Endorsement we offered.


    When Acceptance is received:

    The Acknowledge LDN Message - when received - is managed by the Processor

    configured into the bean named acceptAckAction.


    When Rejection is received:

    The Acknowledge LDN Message - when received - is managed by the Processor

    configured into the bean named rejectAckAction.


     Until an Acknowledge or an Announce is received for this item, on the item page you can see the upper yellow

    window as:
    Image Added 

    at time of writing COAR service for test purposes is responding an HTTP 500

    as we sent the Offer. This error did not exist back in December 2023 when we

    firstly developed the LDN implementation.



    Testing Announce Review against current repository

    Let's trigger an Request Review (see COAR official pattern documentation here).

    For this specific example we can set just the first Inbound Pattern as Request Review and leave the item filter blank. This test is not about item submission.
    Pick the following POST call from the Postman project (see below to download it and import it to your installed PostMan instance): let's emulate the Notify Service external system sending us an LDN Message!  

    For this test to succeed you must update the json below based on your system configuration.  See the "IMPORTANT" lines.

    {
        "@context":[
            "https://www.w3.org/ns/activitystreams",
            "https://purl.org/coar/notify"
        ],
        "actor":{
            "id":"https://orcid.org/0000-0002-1825-0097",
            "name":"Josiah Carberry",
            "type":"Person"
        },
        "id":"urn:uuid:0370c0fb-bb78-4a9b-87f5-bed307a50dff", //// IMPORTANT!! this MUST be a unique value because it's going to be stored as uuid into the ldn_message table.
        "object

    ...

     Until an Acknowledge or an Announce is received for this item, on the item page you can see the upper yellow

    window as:
    Image Removed 

    ...

    at time of writing COAR service for test purposes is responding an HTTP 500

    as we sent the Offer. This error did not exist back in December 2023 when we

    firstly developed the LDN implementation.

    Test calls: Announce Review

    Let's trigger an Request Review (see COAR official pattern documentation here).

    Create a new Item into the COAR Notify Collection (collection created for the previous test).

    Configure a new Notify Service such as:

    Image Removed

    By clicking the + New green button fill the form as:
    Image Removed

    For this specific example we can set just the first Inbound Pattern as Request Review and leave the item filter blank. This test is not about item submission.
    Pick the following POST call from the Postman project (see below to download it and import it to your installed PostMan instance): let's emulate the Notify Service external system sending us an LDN Message!

    ...

    See below the successful response:

    Image Removed

    This means the LDN Message has been enqueued. Please remember the enqueued ldn messages must be evaluated by the Extractor for a QA Event (with source=coar-notify) to be produced. As soon as it is, a blue popup is shown on Item and myDSpace pages:

    ...

    Image Removed

    ...

    Image Removed

    by clicking on that Check button navigation brings to the Quality Assurance Page for the source coar-notify:

    ...

    Image Removed

    If we navigate to the Quality Assurance page we can see the counter for QA Event of coar-notify source increased by 1!

    ...

    Image Removed

    Here it is the page of the specific QA Event in example:

    ...

    Image Removed

    Let's accept it with a click on the Green Check.
    Go back to the item page to see the new Review metadata!

    ...

    Image Removed

    ...

    Image Removed

    WORK IN PROGRESS Test calls: Request Review

     
    Image Removed

    Let's evaluate the request' json body (some field is commented) according to the COAR official documentation of this pattern:

    ...

    ":{
            "id":"

    ...

    ...

    ...

      ////IMPORTANT!! this MUST be the URL of an Item in your DSpace repository. It can be either a handle-based URL or a UUID-based URL. 
            "

    ...

    ietf:

    ...

    cite-as":"https://doi.org/10.5555/12345680",
            "type":"sorg:AboutPage",
            "url":{
                "id":"

    ...

    ...

    ...

    mediaType":"

    ...

    application/pdf",
                "type":[
                    "Article",
                    "sorg:

    ...

    ScholarlyArticle"
                ]
            }
        },
        "

    ...

    origin":{

    ...

            "id":"https://research-organisation.org/repository

    ...

    ",
           

    ...

    "inbox":"https://research-organisation.org/inbox",  /// IMPORTANT!! this field MUST match the "LDN Inbox URL" for one of the LDN/Notify Services you've added to your repository. (See previous screenshot)
           

    ...

    "type":

    ...

    "Service"
       

    ...

    }

    ...

    ,
        "

    ...

    target":{
            "id":"

    ...

    https://review-service.com/system",
            "inbox":"

    ...

    ...


            "type":"Service"
        },
        "

    ...

    type":

    ...

    [
            "

    ...

    Offer",
            "coar-notify:ReviewAction"
        ]
    }


    See below the successful response:

    Image Added

    This means the LDN Message has been received.
    At this point there's not feedback if the notification has been stored & enqueued or just stored as untrusted.

    Please remember the enqueued ldn messages must be evaluated by the Extractor for a QA Event (with source=coar-notify) to be created.

    As soon as it is processed by the extractor, a blue popup is shown on Item and myDSpace pages:

    Image Added

    Image Added


    by clicking on the Check button we are redirected to the Quality Assurance Page for the source coar-notify:

    Image Added


    If we navigate to the previous Quality Assurance page we can see the counter for QA Event of coar-notify source increased by 1!

    Image Added


    Here it is the page of the specific QA Event in example:

    Image Added


    Let's accept it with a click on the Green Check.
    Go back to the item page to see the new Review metadata!

    Image Added

    Image Added


    Postman Collection for testing COAR-Notify Feature

    See below the successful response:

    Image Removed

    This means the LDN Message has been enqueued. Please remember the enqueued ldn messages must be evaluated by the Extractor.

    ...

    Here’s the Postman collection for all test purposesscenarios

    View file
    nameCoar Notify.postman_collection.json
    height150

    ...