Skip to content

FAIRDataTeam/FAIRDataPoint

FAIR Data Point

GitHub release (latest SemVer) Libraries.io License Docker Pulls Documentation Status DOI

The FAIR Data Point (FDP) provides an HTTP API for creating, storing, and serving FAIR (Findable, Accessible, Interoperable, Reusable) metadata in the form of RDF. The metadata content is generated semi-automatically according to the FAIR Data Point specification.

Usage

More information about the FDP, how to deploy it, and how to use it, can be found in the FDP documentation.

API Documentation

The FAIR Data Point API also comes with embedded OpenAPI documentation based on SwaggerUI. Each FDP serves its own human friendly API documentation at the path /swagger-ui.html, for example, https://app.fairdatapoint.org/swagger-ui.html. In addition, machine readable API docs (JSON) are available at the path /v3/api-docs, for example, https://app.fairdatapoint.org/v3/api-docs.

Development

Technology Stack

The FDP runs on the following technology stack and is typically deployed as a Docker container.

  • Spring-boot
  • Java
  • Maven
  • MongoDB
  • Docker (only required for building a Docker image and running the container)

Build & Run

The FDP requires a MongoDB instance to store its application data, such as user accounts and settings. This can be achieved by running the official mongo docker image.

To configure the FDP to use MongoDB with standard connection (mongodb://localhost:27017/fdp), instruct Spring Boot to use the development profile, as follows:

$ mvn spring-boot:run -Dspring-boot.run.profiles=development

Alternatively, create an application.yml file in the project root with the desired configuration settings, and run:

$ mvn spring-boot:run

Run tests

Tests can be run, from the root of the project, as follows:

$ mvn test

Create a Docker image

To build a Docker image, run this from the project root:

$ docker build -f Dockerfile -t fairdatapoint:local .

Security

Most of the API endpoints allow GET requests without authentication. In contrast, POST, PUT, DELETE, and PATCH requests typically do require authentication. We use JWT Tokens and Bearer Token Authentication. A token can be obtained by posting username and password to the /tokens endpoint. For more details, visit the FDP OpenAPI documentation at /swagger-ui.html.

By default, the FDP sets up the following default users.

Warning

The default users are convenient for local testing, but they must be removed, or modified, before exposing the FDP to the public internet.

  • ADMIN:
    • Username: albert.einstein@example.com
    • Password: password
  • USER:
    • Username: nikola.tesla@example.com
    • Password: password

Contributing

Interested in contributing to FDP development? Take a look at our contribution guidelines and code of conduct.

Citation

The following paper can be cited as a reference for the FAIR Data Point:

@article{
  10.1162/dint_a_00160,
  author = {Bonino da Silva Santos, Luiz Olavo and Burger, Kees and Kaliyaperumal, Rajaram and Wilkinson, Mark D.},
  title = "{FAIR Data Point: A FAIR-oriented approach for metadata publication}",
  journal = {Data Intelligence},
  pages = {1-21},
  year = {2022},
  month = {08},
  issn = {2641-435X},
  doi = {10.1162/dint_a_00160},
  url = {https://doi.org/10.1162/dint\_a\_00160},
  eprint = {https://direct.mit.edu/dint/article-pdf/doi/10.1162/dint\_a\_00160/2038268/dint\_a\_00160.pdf}
}

License

This project is licensed under the MIT License - see the LICENSE file for more details.

Related GitHub Projects