Jisc Common Abstraction Layer - adammoore/corda GitHub Wiki

Abstract Layer Diagram shows internal infrastructure and open sources along with ORCID data connected to layer which in turn feeds dashboard

https://blog.mimas.ac.uk/ukorcidsupport/wp-content/uploads/sites/23/2019/02/jisc-abstraction-figure-01.2.png

Overview

The Jisc Common Abstract Layer (JCAL) allows interfaces to various parts of infrastructure without a need to define the exact nature of that underlying infrastructure. Connectors mediate the abstract instructions of the JCAL with specific instances of infrastructure.

For example, the JCAL has a repository function set. An eprints connector would interpret that funtion set into a series of calls to the eprints CRUD (or via a specific plugin) and return the expected responses

JCAL Function sets

Base level common functions

Exists (Boolean) Checks that the piece of infrastructure is present

Connected (Boolean) Checks that the piece of infrastructure is correctly connected

ReturnIDList(format) (LIST) Returns a list of stored ORCID iD from the connected infrastructure in the requested format Formats: CSV, XML, JSON

Query endpoint for a test Haplo instance: https://dev7a26.infomanaged.co.uk/api/demojisc-hackday/get-people-data

With: code for implementing plugin

Rough JSON format for data requested:

// JCAL REQUESTS FROM SYSTEMS
person: {
    emailAddresses:
    names:
    institutions:
    orcid:
    orcidIsAuthenticated:
    repositoryId:
    crisId:
    studentRecordSystemId:
    // Used for matching in JCAL
    publishedWorks: [
        {
            title: 
            doi: 
            handle: 
            issn: 
            isbn: 
        }
    ]
}

// JCAL THEN COLLATES:
singleOrcid: {
    emailAddresses: [],
    names: [],
    institutions: [],
    repositoryId: [],
    crisIds: [],
    studentRecordSystemIds: [],
    authenticatedIn: [],
    scopusIds: [],
    // Used for matching in JCAL
    publishedWorks: [
        {
            title: 
            doi: 
            handle: 
            issn: 
            isbn: 
            pubmedID:
            pubmedCentralId:
        }
    ]
}





Prototype of the service:

Return ID List

http://63.35.7.234/corda-restler/public/corda/index.php/Downloader/ReturnIDList

Ingest data from Haplo

http://63.35.7.234/corda-restler/public/corda/index.php/DemoConnector/connect

The following function sets are currently in development:

Repository

CRIS

HR

ReturnDept(format) (LIST) Returns a list of institutional organisational units from the connected infrastructure in the requested format Formats: CSV, XML, JSON

Note - should HR include LDAP / AD or should that be separate??

ORCID Reports

Possible output from API implemented in ORCID, to export report data.

{
    groupID: '4444-4444-4444-4444',
    group name: 'Test org',
    clientID: '5555-5555-5555-5555',
    client name: 'Test client',
    reportDate: 'YYYY-MM-DD',
    reportStartDate: 'YYYY-MM-DD',
    reportEndDate: 'YYYY-MM-DD',
    emailDomains: [
        'abc.ac.uk': {
            recordCount: 123
        },
        'def.edu': {
            recordCount: 456
        }
    ],
    userActions: {
        AuthorizeP_READ_LIMITED: {
            totalEvents: 123,
            uniqueEvents: 456
        },
        Authorize_Deny: {
            totalEvents: 123,
            uniqueEvents: 456
        },
        New-Registration: {
            totalEvents: 123,
            uniqueEvents: 456
        },
    }
}

JCAL Feature Set

JCAL is currently available as a RESTful interface and via ....