fc4e-cat-api
CAT API that allows for the encoding, recording, and querying of compliance assessments.
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.7%) to scientific vocabulary
Keywords
Repository
CAT API that allows for the encoding, recording, and querying of compliance assessments.
Basic Info
- Host: GitHub
- Owner: FC4E-CAT
- License: apache-2.0
- Language: Java
- Default Branch: master
- Homepage: https://api.cat.argo.grnet.gr
- Size: 3.15 MB
Statistics
- Stars: 2
- Watchers: 2
- Forks: 5
- Open Issues: 3
- Releases: 21
Topics
Metadata Files
README.md
FAIRCORE4EOSC - CAT: Compliance Assessment Toolkit
The FAIRCORE4EOSC project focuses on the development and realisation of core components for the European Open Science Cloud (EOSC). Supporting a FAIR EOSC and addressing gaps identified in the Strategic Research and Innovation Agenda (SRIA). Leveraging existing technologies and services, the project will develop nine new EOSC-Core components aimed to improve the discoverability and interoperability of an increased amount of research outputs.
The Compliance Assessment Toolkit will support the EOSC PID policy with services to encode, record, and query compliance with the policy. To do so, a wide range of compliance requirements ( TRUST, FAIR, PID Policy, Reproducibility, GDPR, Licences) will be evaluated as use cases for definition of a conceptual model. At the same time, vocabularies, concepts, and designs are intended to be re-usable for other compliance needs: TRUST, FAIR, POSI, CARE, Data Commons, etc. This will be followed by a supporting service specification (the framework), accompanied by development and testing of operational services for PID Policy Compliance monitoring.
FAIRCORE4EOSC - CAT: Compliance Assessment Toolkit - API
This is the repository of the CAT API that allows for the encoding, recording, and querying of compliance assessments. Operational examples will support EOSC PID Policy compliance, while FAIR and TRUST will be available as beta versions.
More Information : FAIRCORE4EOSC Website: https://faircore4eosc.eu/
Participants: GRNET, DANS
CAT: Compliance Assessment Toolkit - API Structure
This project is a REST API built using Maven. It follows the service-repository pattern and is divided into several Maven modules.
Modules
The project consists of the following modules:
1) entity
The entity module contains the database ORM (Object-Relational Mapping) entities. These entities represent the data model of the application
and are used for interacting with the database.
2) repository
The repository module contains the repositories responsible for communicating with the database. These repositories provide an abstraction layer for accessing and manipulating data in the database.
They utilize the ORM entities from the entity module.
3) service
The service module contains the business logic of the application. It provides various services and operations that manipulate the data and implement the core functionality of the API.
The services in this module utilize the repositories from the repository module to interact with the database.
4) api
The api module contains the REST endpoints of the API. These endpoints serve as the interface for clients to interact with the application.
The api module depends on the services from the service module to handle the requests and process the data.
5) data-transfer-object
The data-transfer-object module contains the DTOs (Data Transfer Objects). These DTOs are used to transfer data between the API layer and the clients.
They provide a convenient way to encapsulate and transport data without exposing the internal structure of the entities.
6) handler
The handler module is responsible for handling different events, such as exceptions.
It provides error handling and other event-related functionalities to ensure robustness and proper execution of the API.
7) exception
The exception module contains the project-specific exceptions. These exceptions are used to handle exceptional situations and provide meaningful error messages or behavior.
The module defines custom exception classes that extend the standard exception classes or implement specific interfaces.
8) mapper
The mapper module is responsible for mapping entities with DTOs using MapStruct.
9) enum
The enum module contains the available API enumerations.
10) validator
The validator module contains the API Validators. They allow us to express and validate the API constraints.
Access the protected resources
Since the API's endpoints must only be obtainable to verified clients, every client who wants access to the API resources should be authenticated. The communication with protected API endpoints is performed using the Bearer Authentication. Bearer Authentication is a type of token-based authentication commonly used in HTTP-based APIs.
Once the client receives the access token, they should construct their HTTP request to access the protected API endpoint. They should include the access token in the HTTP request by adding an "Authorization" header to the HTTP request. The header's value starts with the word "Bearer" followed by a space and the actual access token.
Authorization: Bearer {{token}}
Access Token Retrieval
This web page allows users to obtain an access token for authentication purposes. By following these instructions, users can retrieve an access token to authenticate API requests.
Instructions
- Open the Web Page
Open your preferred web browser and navigate to the URL of the web page where the access token can be obtained.
- Locate the Access Token Button
Once the web page loads, locate the button that triggers the access token retrieval process. The button should be visible on the web page.
- Click the Obtain an Access Token button
Click the access token button to initiate the process of retrieving an access token. This will trigger the necessary steps to obtain the token from the authentication server.
- Provide Required Information
Choose your preferred identity provider from the available options. After selecting the identity provider, enter your credentials.
- Retrieve the Access Token
After providing the necessary information, the web page will communicate with the authentication server to retrieve the access token. This process may take a few moments. Once the retrieval is successful, the access token will be displayed on the web page.
- Use the Access Token
Once you have obtained the access token, you can use it for authenticating API requests. Follow the documentation or guidelines provided by the API to understand how to include the access token in the appropriate HTTP requests using the Bearer Authentication scheme.
Instructions for Developers
Prerequisites
Before you can use this project, make sure you have the following software installed on your development machine:
- Java Development Kit (JDK) 11 or later
- Apache Maven 3.8.4 or later
- Docker
Install the necessary dependencies
When you clone the project, please switch to the root directory of the project and execute the following command to install the necessary dependencies in your local maven repository:
mvn clean install -DskipTests=true -U
Start the application with Quarkus Dev Services
Please switch to the root directory of the project and execute the following command:
mvn clean quarkus:dev
This command will start the application in development mode and automatically launch the necessary services, such as the database and Keycloak server, using Quarkus Dev Services.
Access the Dev Service Database
To access the database, please execute the following command:
psql -h localhost -U cat -d cat
The development password is cat.
Obtain an access token from Dev Service Keycloak
To obtain an access token, please follow the instructions provided by Quarkus.
Use the following credentials to log into Dev Service Keycloak:
- username :
alice - password :
alice
Owner
- Name: FAIRCORE4EOSC - CAT: Compliance Assessment Toolkit
- Login: FC4E-CAT
- Kind: organization
- Website: https://faircore4eosc.eu/components/compliance-assessment-toolkit-cat
- Repositories: 1
- Profile: https://github.com/FC4E-CAT
Compliance Assessment Toolkit for EOSC: a set of concepts, implemented as a graph database and accessible via APIs, and supported by user interfaces
CodeMeta (codemeta.json)
{
"@context": "https://w3id.org/codemeta/3.0",
"type": "SoftwareSourceCode",
"applicationCategory": "Assessment - API",
"author": [
{
"id": "https://orcid.org/0009-0004-9021-8034",
"type": "Person",
"affiliation": {
"type": "Organization",
"name": "National Infrastructures for Research and Technology - GRNET S.A"
},
"email": "cthermolia@admin.grnet.gr",
"familyName": "Thermolia",
"givenName": "Chryssa"
},
{
"type": "Role",
"schema:author": "https://orcid.org/0009-0004-9021-8034",
"roleName": "Developer"
},
{
"id": "https://orcid.org/0009-0000-0192-3868",
"type": "Person",
"affiliation": {
"type": "Organization",
"name": "National Infrastructures for Research and Technology - GRNET S.A"
},
"email": "irina@admin.grnet.gr",
"familyName": "Skopouli",
"givenName": "Irina"
},
{
"type": "Role",
"schema:author": "https://orcid.org/0009-0000-0192-3868",
"roleName": "Developer"
},
{
"id": "https://orcid.org/0009-0003-6339-3278",
"type": "Person",
"affiliation": {
"type": "Organization",
"name": "National Infrastructures for Research and Technology - GRNET S.A"
},
"email": "fbasios@admin.grnet.gr",
"familyName": "Basios",
"givenName": "Fotios"
},
{
"type": "Role",
"schema:author": "https://orcid.org/0009-0003-6339-3278",
"roleName": "Developer"
}
],
"codeRepository": "https://github.com/FC4E-CAT/fc4e-cat-api",
"dateCreated": "2023-05-10",
"datePublished": "2023-07-19",
"description": "The Compliance Assessment Toolkit will support the EOSC PID policy with services to encode, record, and query compliance with the policy.",
"downloadUrl": "https://github.com/FC4E-CAT/fc4e-cat-api/archive/refs/heads/main.zip",
"releaseNotes": "Release Notes: https://github.com/FC4E-CAT/fc4e-cat-api/releases",
"funder": {
"type": "Organization",
"name": "European Commission"
},
"identifier": "https://github.com/FC4E-CAT/fc4e-cat-api",
"isPartOf": "https://faircore4eosc.eu",
"keywords": [
"Quarkus",
"Java",
"API",
"REST"
],
"license": "https://spdx.org/licenses/Apache-2.0",
"name": "FAIRCORE4EOSC - CAT: Compliance Assessment Toolkit",
"operatingSystem": "Rocky Linux 9.0",
"programmingLanguage": "Java",
"runtimePlatform": "JVM",
"version": "v1.8.1",
"developmentStatus": "active",
"funding": "Funded by European Commission under grant number 101057264.",
"issueTracker": "https://github.com/FC4E-CAT/fc4e-cat-api/issues"
}
GitHub Events
Total
- Release event: 4
- Delete event: 77
- Issue comment event: 1
- Push event: 312
- Pull request review comment event: 3
- Pull request review event: 145
- Pull request event: 349
- Fork event: 1
- Create event: 81
Last Year
- Release event: 4
- Delete event: 77
- Issue comment event: 1
- Push event: 312
- Pull request review comment event: 3
- Pull request review event: 145
- Pull request event: 349
- Fork event: 1
- Create event: 81
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 4
- Total pull requests: 376
- Average time to close issues: 1 day
- Average time to close pull requests: 1 day
- Total issue authors: 3
- Total pull request authors: 5
- Average comments per issue: 0.0
- Average comments per pull request: 0.01
- Merged pull requests: 294
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 4
- Pull requests: 246
- Average time to close issues: 1 day
- Average time to close pull requests: 1 day
- Issue authors: 3
- Pull request authors: 5
- Average comments per issue: 0.0
- Average comments per pull request: 0.01
- Merged pull requests: 190
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- cthermolia-grnet (2)
- irinaskop (1)
- fbasios (1)
Pull Request Authors
- cthermolia-grnet (165)
- fbasios (103)
- irinaskop (94)
- themiszamani (9)
- kaggis (5)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- io.quarkus.platform:quarkus-bom 3.0.2.Final import
- org.projectlombok:lombok 1.18.26 provided
- io.quarkus:quarkus-arc
- io.quarkus:quarkus-oidc
- io.quarkus:quarkus-resteasy-reactive-jackson
- io.quarkus:quarkus-junit5 test
- io.rest-assured:rest-assured test
- io.quarkus:quarkus-arc
- io.quarkus:quarkus-keycloak-authorization
- io.quarkus:quarkus-oidc
- io.quarkus:quarkus-qute
- io.quarkus:quarkus-resteasy-reactive-jackson
- org.grnet:cat-data-transfer-objects
- org.grnet:cat-handlers
- org.grnet:cat-services
- org.grnet:cat-validators
- org.projectlombok:lombok
- io.quarkus:quarkus-junit5 test
- io.quarkus:quarkus-junit5-mockito test
- io.quarkus:quarkus-test-keycloak-server test
- io.rest-assured:rest-assured test
- org.junit.vintage:junit-vintage-engine 5.10.0 test
- org.mockito:mockito-core 5.5.0 test
- com.googlecode.json-simple:json-simple
- io.quarkus:quarkus-smallrye-openapi
- jakarta.ws.rs:jakarta.ws.rs-api
- org.grnet:cat-enums
- org.grnet:cat-repositories
- org.grnet:cat-validators
- org.projectlombok:lombok
- io.quarkus:quarkus-flyway
- io.quarkus:quarkus-hibernate-orm
- io.quarkus:quarkus-jdbc-mysql
- org.flywaydb:flyway-mysql
- org.grnet:cat-enums
- org.projectlombok:lombok
- org.projectlombok:lombok provided
- com.google.code.gson:gson 2.10.1
- com.squareup.okhttp3:okhttp 4.9.1
- com.squareup.okhttp3:okhttp-urlconnection 4.9.1
- com.squareup.okio:okio 2.8.0
- org.grnet:cat-exceptions
- io.quarkus:quarkus-hibernate-validator
- jakarta.ws.rs:jakarta.ws.rs-api
- org.grnet:cat-data-transfer-objects
- org.grnet:cat-exceptions
- org.grnet:cat-validators
- com.googlecode.json-simple:json-simple
- org.grnet:cat-data-transfer-objects
- org.grnet:cat-entities
- org.mapstruct:mapstruct
- org.mapstruct:mapstruct-processor
- org.projectlombok:lombok
- io.quarkus:quarkus-hibernate-orm-panache
- io.quarkus:quarkus-keycloak-admin-client-reactive
- org.grnet:cat-entities
- com.pivovarit:throwing-function
- org.grnet:cat-exceptions
- org.grnet:cat-mappers
- org.grnet:cat-repositories
- org.projectlombok:lombok
- io.quarkus:quarkus-hibernate-validator
- io.vavr:vavr
- org.apache.commons:commons-lang3
- org.grnet:cat-exceptions
- org.grnet:cat-repositories