Versions Compared

Key

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

...

Configuration properties involved:

coar-notify.enabled = true|false

show/hide the COAR Notify logo in the footer linked to the informative page;  used also in the authorization feature at java class org.dspace.app.rest.authorization.impl.CoarNotifyEnabled 

ldn.enabled = true|false

true => message is received and managed
false => message is refuced and the server respond with an HTTP 404

ldn.notify.inbox = DSpace\url\address\

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

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

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

Relation with the Quality Assurance Correction Service

...

To process an LDN message means to create a QAEvents; as soon as the QAEvent is accepted the referred item is updated. We do it by routing LDN Messages from the queue to the LDN Router. The LDN Router is designed into the spring file /dspace/config/spring/api/ldn-coar-notify.xml on the bean ldnRouter. The router de-multiplex two attributes read from the LDN Message (two string values inside the array called type) content to java classes called Processors: see org.dspace.app.ldn.processor.* package to view them all.

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 LDN message type has an action related, which Processor owns a list of actions. An action is often an email to be sent and an LDNProcessor to callaction to create the qa event. The LDN processor receives the QAEvent topic as a parameter and creates the relative QAEvent.

...

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

Image Modified

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 used when DSpace sends out LDN Messages

Level of Trust: floaing 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

qa event automation. See the project file dspace/config/spring/api/qaevents.xml on the bean qaAutomaticProcessingMap/qaScoreEvaluation

Service IP Range

Name: a label for the Notify Service ;

Description: the description of the Notify Service ;

Service URL: the url of the remote Notify Service used when DSpace sends out LDN messages ;

Level of Trust:  0 < possible values <=1 : passed into every QAEvent created by every ldnmessage having this Notify Service. 

this

All fields, except 'Description', are required, and at least one Inbound pattern must be defined.

Every LDN message is going to have a link referring to the stored notify service. At time of writing it is the LDN Inbox URL. If the incoming LDN message has the LDN inbox URL equals to one of the stored Notify Service' ldn_url, the LDN message is stored and queued as a trusted message, otherwise it’s flagged as untrusted.

Please note that service URLs are unique, and a service can't be registered if the service URL entered in the form matches the one of an already registered service.

For additional security, for each service a valid IP range must be set. When a LDN Notification is received, the extractor perform a check of the source IP against the provided IP range for the service. If the source IP is valid the LDN is queued as a trusted message, otherwise if the source IP is invalid it’s flagged as untrusted.

...

: two IP numbers expected as minimum and maximum. This range can be 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

out 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.



LDN Inbox queueing

LDN incoming messages are stored into the ldn_message database table. The incoming LDN messages is stored into a logical queue. The queue_status column of the table contains the status of the LDN message inside the queue. If valued as queued the LDN message will be processed. The LDN Message Extractor is an asynchronous DSpace task that reads the oldest manageable LDN message and route it to be processed; the extractor instance ends as soon as the LDN message extracted is routed and processed or failed to be.

...