{"id":22814595,"url":"https://github.com/kit-data-manager/base-repo","last_synced_at":"2025-07-16T18:38:13.946Z","repository":{"id":39378164,"uuid":"133506210","full_name":"kit-data-manager/base-repo","owner":"kit-data-manager","description":"Basic repository service used as central component of the KIT DM 2.0 infrastructure.","archived":false,"fork":false,"pushed_at":"2025-07-08T12:07:40.000Z","size":1748,"stargazers_count":1,"open_issues_count":3,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-08T13:28:29.594Z","etag":null,"topics":["datacite","research-data-management","research-data-repository","restful-api"],"latest_commit_sha":null,"homepage":"https://kit-data-manager.github.io/webpage/base-repo/index.html","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kit-data-manager.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-05-15T11:28:14.000Z","updated_at":"2025-02-12T17:33:52.000Z","dependencies_parsed_at":"2024-02-10T21:28:34.724Z","dependency_job_id":"35fe2c2f-ac1e-4bfd-9a78-9375a10e6067","html_url":"https://github.com/kit-data-manager/base-repo","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/kit-data-manager/base-repo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kit-data-manager%2Fbase-repo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kit-data-manager%2Fbase-repo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kit-data-manager%2Fbase-repo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kit-data-manager%2Fbase-repo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kit-data-manager","download_url":"https://codeload.github.com/kit-data-manager/base-repo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kit-data-manager%2Fbase-repo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265531319,"owners_count":23783213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["datacite","research-data-management","research-data-repository","restful-api"],"created_at":"2024-12-12T13:09:22.697Z","updated_at":"2025-07-16T18:38:13.604Z","avatar_url":"https://github.com/kit-data-manager.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KIT Data Manager - Base Repository Service\n\n[![Build Status](https://github.com/kit-data-manager/base-repo/actions/workflows/gradle.yml/badge.svg)](https://github.com/kit-data-manager/base-repo/actions/workflows/gradle.yml)\n[![Codecov](https://codecov.io/gh/kit-data-manager/base-repo/branch/master/graph/badge.svg)](https://codecov.io/gh/kit-data-manager/base-repo)\n![License](https://img.shields.io/github/license/kit-data-manager/base-repo.svg)\n[![SQAaaS badge shields.io](https://img.shields.io/badge/Docker-white?logo=docker)](https://github.com/kit-data-manager/base-repo/pkgs/container/base-repo)\n[![SQAaaS badge shields.io](https://img.shields.io/badge/sqaaas%20software-silver-lightgrey)](https://api.eu.badgr.io/public/assertions/onNKx_lhTn68bPKnMAg-eQ \"SQAaaS silver badge achieved\")\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7660036.svg)](https://doi.org/10.5281/zenodo.7660036)\n\nThis project contains the repository service microservice for the KIT DM infrastructure. The service provides\ndata resource management, e.g. register DataCite-oriented metadata and upload/download content to data resources.\n\n## How to build\n\nIn order to build this microservice you'll need:\n\n* Java SE Development Kit 17 or higher\n\nAfter obtaining the sources change to the folder where the sources are located perform the following steps:\n\n```bash\nuser@localhost:/home/user/base-repo$ ./gradlew -Dprofile=minimal build\nRunning gradle version: 7.4.2\nBuilding base-repo version: 1.5.5\nJDK version: 11\nUsing minimal profile for building base-repoo\n\u003c-------------\u003e 0% EXECUTING [0s]\n[...]\nuser@localhost:/home/user/base-repo$\n```\n\nThe Gradle wrapper will now take care of downloading the configured version of Gradle, checking out all required libraries, build these\nlibraries and finally build the base-repo microservice itself. As a result, a fat jar containing the entire service is created at 'build/libs/base-repo.jar'.\n\n## How to start\n\n### Prerequisites\n\n* PostgreSQL 9.1 or higher\n* RabbitMQ 3.7.3 or higher (in case you want to use the messaging feature, which is recommended)\n* Elastic 8.X or higher (in case you want to use the search feature)\n\n### Setup\n\nBefore you are able to start the repository microservice, you have provide a configuration file according to your local setup.\nTherefor, copy the file 'config/application-default.properties' to your project folder, rename it to 'application.properties' and customize it as required. Special attentioned should be payed to the datasource url as well as to the repository base path. Also, the property 'repo.messaging.enabled' should be changed to 'true' in case you want to use the messaging feature of the repository.\n\nAs soon as you finished modifying 'application.properties', you may start the repository microservice by executing the following command inside the project folder,\ne.g. where the service has been built before:\n\n```bash\nuser@localhost:/home/user/base-repo$ ./build/libs/base-repo.jar\n\n  .   ____          _            __ _ _\n /\\\\ / ___'_ __ _ _(_)_ __  __ _ \\ \\ \\ \\\n( ( )\\___ | '_ | '_| | '_ \\/ _` | \\ \\ \\ \\\n \\\\/  ___)| |_)| | | | | || (_| |  ) ) ) )\n  '  |____| .__|_| |_|_| |_\\__, | / / / /\n =========|_|==============|___/=/_/_/_/\n :: Spring Boot ::        (v2.7.5)\n[...]\n1970-01-01 00:00:00.000  INFO 56918 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''\n\n```\n\nIf your 'application.properties' is not located inside the project folder you can provide it using the command line argument --spring.config.location=\u003cPATH_TO_APPLICATION.PROPERTIES\u003e\n\nAs soon as the microservice is started, you can browse to\n\n\u003chttp://localhost:8090/swagger-ui.html\u003e\n\nin order to see available RESTful endpoints and their documentation.\n\n### Enhanced Startup\n\nAt certain points, base-repo offers and will offer extension points allowing to add custom features that are not part of the default distribution, e.g. custom message handlers. If you are familiar with software development, it might be no big deal to include an additional dependency to 'build.gradle' of base-repo. However, in some cases this might not be desirable or possible. Therefor, base-repo allows to place additional libraries required at runtime in a separate folder which is then loaded as soon as the microservice starts and made available using the dependency injection feature of Spring Boot.\n\nIn order to tell Spring Boot where to look for additional libraries, you have to define an environment variable JAVA_OPTS looking as follows:\n\n```bash\nexport JAVA_OPTS=\"-cp .:./config:./base-repo.jar -Dloader.path=./base-repo.jar,./lib/,.\"\n```\n\nThe first part '-cp' has to contain three elements divided by ':':\n\n1. The configuration folder where your application.properties is located (this element can be omitted, if application.properties\nis located in the current folder),\n2. the current folder,\n3. and the microservice jar file.\n\nThe second part '-Dloader.path' basically contains the same information as '-cp' but with the difference, that the config folder is not required, whereas the folder\ncontaining all additional libraries has to be provided, in our case it's './lib'.\n\nPlease keep in mind that all arguments shown in the example assume, that you are in the same folder where your microservice jar file is located and that you start the service\nby calling './base-repo.jar'. If your microservice jar is located elsewhere, you should consider to provide absolute paths for all arguments above.\nIn case you want to choose a different folder for placing your additional libraries, you have to rename it in JAVA_OPTS accordingly.\n\nWhat you now have to do before you start the microservice is to place additional jar files (and required dependencies!) in the 'lib' folder. At the next startup, the new functionality should be available.\n\n## More Information\n\n* [Getting Started \u0026 Documentation](https://kit-data-manager.github.io/webpage/base-repo/index.html)\n* [API documentation](https://kit-data-manager.github.io/webpage/base-repo/documentation/api-docs.html)\n* [Docker container](https://github.com/kit-data-manager/base-repo/pkgs/container/base-repo%2Fbase-repo)\n* [Information about the DataCite metadata schema](https://schema.datacite.org/)\n\n## License\n\nThe KIT Data Manager is licensed under the Apache License, Version 2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkit-data-manager%2Fbase-repo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkit-data-manager%2Fbase-repo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkit-data-manager%2Fbase-repo/lists"}