Project
A Project is the main resource of the Accounting System. The first step a user must follow is to create a project under which the metric data will belong.
Currently, we support only projects that are available in the EU database. Basically, we register information about a particular Project in our system using the unique ID that every European Project has for its identification.
[POST] - Associate Providers with a specific Project
To be able to register Metrics in an installation, first you must associate a Project with one or more Providers. The following action is responsible for generating a hierarchical relationship between a Project and one or more Providers:
POST /accounting-system/projects/{project_id}/associate
Content-Type: application-json
Authorization: Bearer {token}
{
"providers":[
"bioexcel",
"osmooc",
"grnet",
"sites"
]
}
The response is:
Success Response 200 OK
{
"code": 200,
"message": "The following providers [bioexcel, osmooc, grnet, sites] have been associated with Project {project_id}"
}
[POST] - Dissociate Providers from a Project
You can also dissociate one or more Providers from a Project:
POST /accounting-system/projects/{project_id}/dissociate
Content-Type: application-json
Authorization: Bearer {token}
{
"providers":[
"grnet"
]
}
The response is :
Success Response 200 OK
{
"code": 200,
"message": "The following providers [grnet] have been dissociated from Project {project_id}"
}
If there are Installations registered to Provider, the dissociation is not allowed:
Error Response 409 CONFLICT
{
"code": 409,
"message": "Dissociation is not allowed. There are registered Installations to {project_id, provider_id}"
}
[GET] - Project Hierarchical Structure
You can retrieve the Providers and Installations associated with a specific project:
GET /accounting-system/projects/{project_id}
Authorization: Bearer {token}
Basically, the hierarchical structure of a Project is returned:
Success Response 200 OK
{
"id": "725025",
"acronym": "AgeConsolidate",
"title": "The Missing Link of Episodic Memory Decline in Aging: The Role of Inefficient Systems Consolidation",
"start_date": "2017-05-01",
"end_date": "2022-10-31",
"call_identifier": "ERC-2016-COG",
"providers": [
{
"id": "sites",
"name": "Swedish Infrastructure for Ecosystem Science",
"website": "https://www.fieldsites.se/en-GB",
"abbreviation": "SITES",
"logo": "https://dst15js82dk7j.cloudfront.net/231546/95187636-P5q11.png",
"installations": [
{
"id": "6350f13072dda00a3ce5f0cb",
"infrastructure": "infra-grnet-test",
"installation": "installation-grnet",
"unit_of_access": "6350f12772dda00a3ce5f0ca"
}
]
},
{
"id": "carlzeissm",
"name": "Carl Zeiss Microscopy",
"website": "https://www.zeiss.com/",
"abbreviation": "Carl Zeiss",
"logo": "https://images.zeiss.com/corporate-new/about-zeiss/history/images/logo/logo_heute.ts-1537187631211.jpg?auto=compress%2Cformat&fm=png&ixlib=java-1.1.11&w=640&s=982838e7e4ea9f38fde897b6a61a544b",
"installations": []
}
]
}
[GET] - Fetch all Projects
You can retrieve all Projects assigned to you by executing the following GET request:
GET /accounting-system/projects
Authorization: Bearer {token}
By default, the first page of 10 Projects will be returned. You can tune the default values by using the query parameters page and size as shown in the example below.
GET /accounting-system/projects?page=2&size=5
Authorization: Bearer {token}
Success Response 200 OK
{
"size_of_page": 10,
"number_of_page": 1,
"total_elements": 15,
"total_pages": 2,
"content": [
{
"id": "888743",
"acronym": "DABAT",
"title": "DNA-sensing by AIM2 in activated B cells: novel targets to improve allogeneic haematopoietic stem cell transplantation",
"start_date": "2020-10-01",
"end_date": "2023-09-30",
"call_identifier": "H2020-MSCA-IF-2019",
"providers": [
{
"id": "sites",
"name": "Swedish Infrastructure for Ecosystem Science",
"website": "https://www.fieldsites.se/en-GB",
"abbreviation": "SITES",
"logo": "https://dst15js82dk7j.cloudfront.net/231546/95187636-P5q11.png",
"installations": [
{
"id": "6351002527962d7967919fa7",
"infrastructure": "infra-grnet-test",
"installation": "installation-grnet",
"unit_of_access": "6351002027962d7967919fa6"
}
]
},
{
"id": "carlzeissm",
"name": "Carl Zeiss Microscopy",
"website": "https://www.zeiss.com/",
"abbreviation": "Carl Zeiss",
"logo": "https://images.zeiss.com/corporate-new/about-zeiss/history/images/logo/logo_heute.ts-1537187631211.jpg?auto=compress%2Cformat&fm=png&ixlib=java-1.1.11&w=640&s=982838e7e4ea9f38fde897b6a61a544b",
"installations": []
}
]
},
{
"id": "709328",
"acronym": "IN VIVO MOSSY",
"title": "Is the hippocampal mossy fiber synapse a detonator in vivo?",
"start_date": "2016-04-01",
"end_date": "2018-03-31",
"call_identifier": "H2020-MSCA-IF-2015",
"providers": []
},
{
"id": "895916",
"acronym": "MXTRONICS",
"title": "MXene Nanosheets For Future Optoelectronic Devices",
"start_date": "2020-11-01",
"end_date": "2022-10-31",
"call_identifier": "H2020-MSCA-IF-2019",
"providers": [
{
"id": "ubora",
"name": "Open Biomedical Engineering e-platform for Innovation through Education",
"website": "http://ubora-biomedical.org/",
"abbreviation": "UBORA",
"logo": "http://ubora-biomedical.org/wp-content/uploads/2017/01/UBORA-Logo-Final-JPEGb.jpg",
"installations": []
}
]
},
{
"id": "887530",
"acronym": "NONORMOPERA",
"title": "Sexual and Gender Non-Normativity in Opera after the Second World War",
"start_date": "2020-11-01",
"end_date": "2024-05-02",
"call_identifier": "H2020-MSCA-IF-2019",
"providers": []
},
{
"id": "843702",
"acronym": "LCxLCProt",
"title": "Comprehensive two-dimensional liquid chromatography for the characterization of protein biopharmaceuticals at the protein level",
"start_date": "2020-01-01",
"end_date": "2020-12-31",
"call_identifier": "H2020-MSCA-IF-2018",
"providers": []
},
{
"id": "894897",
"acronym": "DEFORM",
"title": "Dead or Alive: Finding the Origin of Caldera Unrest using Magma Reservoir Models",
"start_date": "2020-11-01",
"end_date": "2022-10-31",
"call_identifier": "H2020-MSCA-IF-2019",
"providers": []
},
{
"id": "895478",
"acronym": "ANACLETO",
"title": "Noise and drag reduction by riblets.",
"start_date": "2020-07-01",
"end_date": "2022-06-30",
"call_identifier": "H2020-MSCA-IF-2019",
"providers": []
},
{
"id": "894921",
"acronym": "PlaGE",
"title": "Playing at the Gateways of Europe: theatrical languages and performatives practices in the Migrants' Reception Centres of the Mediterranean Area",
"start_date": "2020-10-01",
"end_date": "2023-09-30",
"call_identifier": "H2020-MSCA-IF-2019",
"providers": []
},
{
"id": "654496",
"acronym": "NanoCytox",
"title": "Development of Novel Analytical Methods to assess Nanoparticle cytotoxicity",
"start_date": "2015-11-01",
"end_date": "2017-10-31",
"call_identifier": "H2020-MSCA-IF-2014",
"providers": []
},
{
"id": "701538",
"acronym": "TransIt",
"title": "Translating science in the long Italian Eighteenth-Century. The role of translators and publishers as “cultural mediators” (1760-1790s)",
"start_date": "2017-02-01",
"end_date": "2019-01-31",
"call_identifier": "H2020-MSCA-IF-2015",
"providers": []
}
],
"links": [
{
"href": "http://localhost:8080/accounting-system/projects?page=1&size=10",
"rel": "first"
},
{
"href": "http://localhost:8080/accounting-system/projects?page=2&size=10",
"rel": "last"
},
{
"href": "http://localhost:8080/accounting-system/projects?page=1&size=10",
"rel": "self"
},
{
"href": "http://localhost:8080/accounting-system/projects?page=2&size=10",
"rel": "next"
}
]
}
[POST] - Access Control Entry for a particular Project
The general endpoint that is responsible for creating an Access Control entry for a Project is as follows:
POST /accounting-system/projects/{project_id}/acl/{who}
Content-Type: application/json
Authorization: Bearer {token}
{
"roles":[
{role_name}
]
}
where {who}
is the client ID in which the roles will be assigned.
The response is :
Success Response 200 OK
{
"code": 200,
"message": "Project Access Control was successfully created."
}
One client can have different roles at different Projects. For instance, in one Project can be an admin executing all the Project operations while in another it can only read the Project Metrics. Consequently, any client can have different responsibilities at different Projects. The actions the client can perform at each Project are determined by the role, and the permissions it has.
Keep in mind that to execute the above operation, you must have been assigned a role containing the Project Acl permission.
[POST] - Search for Projects
You can search on Projects, to find the ones corresponding to the given search criteria. Projects can be searched by executing the following request:
POST accounting-system/projects/search
Content-Type: application/json
Example 1:
{
"type": "query",
"field": "title",
"values": "Functional and Molecular Characterisation of Breast Cancer Stem Cells",
"operand": "eq"
}
Example 2:
{
"type": "filter",
"operator": "OR",
"criteria": [
{
"type": "query",
"field": "title",
"values": "Functional and Molecular Characterisation of Breast Cancer Stem Cells",
"operand": "eq"
},
{
"type": "query",
"field": "acronym",
"values": "El_CapiTun",
"operand": "eq"
}
]
}
The context of the request should be a json object. The syntax of the json object , is described here
If the operation is successful, you get a list of projects
{
"size_of_page": 1,
"number_of_page": 1,
"total_elements": 1,
"total_pages": 1,
"content": [
{
"id": "655710",
"acronym": "CONRICONF",
"title": "Contentious Rights: A Comparative Study of International Human Rights Norms and their Effects on Domestic Social Conflict",
"start_date": "2016-01-17",
"end_date": "2020-02-08",
"call_identifier": "H2020-MSCA-IF-2014",
"providers": [
{
"id": "msw",
"name": "MyScienceWork",
"website": "https://www.mysciencework.com",
"abbreviation": "MSW",
"logo": "https://www.mysciencework.com/bundles/home/images/logo-secondary-medium.png?202012111405-56",
"installations": [
{
"id": "635111fcbc140d44766be86b",
"infrastructure": "okeanos-knossos-5",
"installation": "GRNET-KNS-5",
"unit_of_access": "635111dabc140d44766be86a"
}
]
},
{
"id": "meeo",
"name": "Meteorological Environmental Earth Observation",
"website": "https://www.meeo.it/",
"abbreviation": "MEEO",
"logo": "https://www.meeo.it/wp-content/uploads/2020/09/logo-meeo-dark2.svg",
"installations": []
}
]
}
],
"links": []
}
Otherwise, an empty response will be returned.
Errors
Please refer to section Errors to see all possible Errors.