-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PR for v1.5.0 #132
Merged
Merged
PR for v1.5.0 #132
Changes from all commits
Commits
Show all changes
77 commits
Select commit
Hold shift + click to select a range
529f0eb
Create PR for #116
ThomasJejkal 5bbcfaf
Create PR for #118
ThomasJejkal 38e6b4b
Fix 118, Added system property org.apache.tomcat.util.buf.UDecoder.AL…
ThomasJejkal 42e0bf1
Merge pull request #119 from kit-data-manager/issue-118-Improper_deal…
ThomasJejkal ded6938
Merge branch 'main' into development
ThomasJejkal e0a4890
Started updating to spring-boot 3.1.0
ThomasJejkal b4faa9e
Migration to Spring Boot 3 finished
ThomasJejkal 761482d
Update gradle.yml
ThomasJejkal 24604eb
Merge pull request #117 from kit-data-manager/issue-116-Bump_CodeQL_f…
ThomasJejkal 5e5d0e2
Update dependencies
ThomasJejkal 471d49b
Merge branch 'development' of https://github.com/kit-data-manager/bas…
ThomasJejkal f7c9bca
Merge branch 'main' into development
ThomasJejkal 65f4d21
Update gradle.yml
ThomasJejkal 634e435
Update docker-publish.yml
ThomasJejkal bd15c47
Update codeql-analysis.yml
ThomasJejkal d1dfa64
Bump com.bazaarvoice.jolt:json-utils from 0.1.7 to 0.1.8
dependabot[bot] 32fc297
Fix #131, user-provided @Ids are now removed
ThomasJejkal 591229b
Merge branch 'development' of https://github.com/kit-data-manager/bas…
ThomasJejkal 236da8a
Update changelog, cleanup and documentation of EntityUtils
ThomasJejkal fb1b487
Bump com.h2database:h2 from 2.1.214 to 2.2.224
dependabot[bot] 5224b9e
Bump de.codecentric:spring-boot-admin-starter-client from 3.1.0 to 3.1.7
dependabot[bot] 0b353d1
Bump com.nimbusds:nimbus-jose-jwt from 9.24.3 to 9.37
dependabot[bot] 6d0bdb1
Create INTERFACE.md
ThomasJejkal 41e46e3
Update INTERFACE.md
ThomasJejkal 13cde44
Update INTERFACE.md
ThomasJejkal a327185
Update INTERFACE.md
ThomasJejkal 90541bb
Update INTERFACE.md
ThomasJejkal c0e9ed6
Shrink TOC and add some Emojis
VolkerHartmann 392a988
Unify emojis for 'configuration', put emoji in front of 'Note' and typo.
VolkerHartmann 4969dd2
External emojis replaced by existing ones.
VolkerHartmann c0caacc
Replace messaging emoji
VolkerHartmann 36536a1
Fix typos.
VolkerHartmann 06f0d74
Fix links in TOC of 'INTERFACE.md'.
VolkerHartmann 9512c51
Fix link in INTERFACE.md
VolkerHartmann ad2a18c
Fix two more links in INTERFACE.md
VolkerHartmann 742f514
Bump org.springframework.boot from 3.1.0 to 3.1.5
dependabot[bot] 536e50d
Merge pull request #150 from VolkerHartmann/fixInterface.md
ThomasJejkal cddf61b
Merge branch 'development' into interface_documentation
ThomasJejkal dd67815
Merge pull request #148 from kit-data-manager/dependabot/gradle/devel…
ThomasJejkal 06c391a
Merge pull request #151 from kit-data-manager/dependabot/gradle/devel…
ThomasJejkal 0f8528d
Merge pull request #146 from kit-data-manager/dependabot/gradle/devel…
ThomasJejkal 87e3e70
Merge pull request #143 from kit-data-manager/dependabot/gradle/devel…
ThomasJejkal 33564f7
Merge pull request #136 from kit-data-manager/dependabot/gradle/devel…
ThomasJejkal 06beae2
Merge pull request #149 from VolkerHartmann/interface_documentation
ThomasJejkal 384ca75
Bump org.springframework:spring-messaging from 6.0.2 to 6.0.13
dependabot[bot] 16b2aed
Bump org.owasp.dependencycheck from 8.3.1 to 8.4.2
dependabot[bot] 449a502
Bump org.springframework.cloud:spring-cloud-starter-netflix-eureka-cl…
dependabot[bot] 5ac9317
Tidy up note about relational databases in INTERFACE.md
pjoKIT c07433f
Merge pull request #156 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] c3482c5
Merge pull request #155 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] 14b5b5e
Merge pull request #154 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] d5c866e
Bump org.springframework.security:spring-security-config
dependabot[bot] 8579cc4
Bump org.springframework.data:spring-data-elasticsearch
dependabot[bot] fce43ec
Merge pull request #153 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] 5f5f307
Merge pull request #157 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] 111010b
Bump org.owasp.dependencycheck from 8.4.2 to 8.4.3
dependabot[bot] ca4c263
Bump org.springframework.security:spring-security-web
dependabot[bot] d041dd6
Bump de.codecentric:spring-boot-admin-starter-client from 3.1.7 to 3.1.8
dependabot[bot] 1bdf236
Bump org.postgresql:postgresql from 42.6.0 to 42.7.0
dependabot[bot] 9be8dc7
Merge pull request #162 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] 73ffa5e
Merge pull request #161 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] 219414c
Merge pull request #160 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] ae50c23
Bump org.springframework:spring-messaging from 6.0.13 to 6.1.0
dependabot[bot] 4b8fb9d
Merge pull request #158 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] 3635d1b
Merge pull request #159 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] 660e86f
Bump org.springframework.cloud:spring-cloud-starter-config
dependabot[bot] d9f17db
Bump io.freefair.maven-publish-java from 8.0.1 to 8.4
dependabot[bot] 3989fcd
Fixed elastic configuration, updated OpenAPI version number for next …
ThomasJejkal 6152283
Merge pull request #166 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] a98cb5a
Bump io.freefair.lombok from 8.0.1 to 8.4
dependabot[bot] ca149ea
Merge pull request #164 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] 7811e41
Merge pull request #163 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] 075bfe0
Bump org.owasp.dependencycheck from 8.4.3 to 9.0.2
dependabot[bot] f67c514
Merge pull request #169 from kit-data-manager/dependabot/gradle/devel…
dependabot[bot] 748ad66
Updated spring-security to 6.2.0, fixed CORS configuration
ThomasJejkal 7e90888
Cleanup EntityUtils.java
ThomasJejkal d12abcd
Update README.md
ThomasJejkal File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
# Interfaces Overview for base-repo | ||
|
||
This document aims to answer questions on how to configure external dependencies and which public interfaces are offered by base-repo in a comprehensive way. | ||
It is meant to be used for getting an overview and guidance in addition to the official documentation, which is available at the official [base-repo web page](https://kit-data-manager.github.io/webpage/base-repo/). | ||
|
||
> ℹ️ **Note:** | ||
> This document applies to the base-repo version it is shipped with. If you have a specific version running, please refer to `INTERFACE.md` of this particular release. | ||
|
||
## TOC | ||
|
||
- [Interfaces Overview for base-repo](#interfaces-overview-for-base-repo) | ||
* [External Dependencies](#external-dependencies-) 📤 | ||
+ [Relational Database (mandatory)](#relational-database-mandatory-) ⛁ | ||
+ [Local Filesystem (mandatory)](#local-filesystem-mandatory-) 📂 | ||
+ [Messaging (optional)](#messaging-optional-) 💬 | ||
+ [Enhanced Search (optional)](#enhanced-search-optional-) 🔍 | ||
+ [Access Control (optional)](#access-control-optional-) 🔐 | ||
* [Public Interfaces](#public-interfaces-) 📥 | ||
+ [HTTP / REST](#http--rest) | ||
+ [Elasticsearch Proxy](#elasticsearch-proxy-) 🔍 | ||
+ [OAI-PMH](#oai-pmh) | ||
+ [Digital Object Interface Protocol (DOIP)](#digital-object-interface-protocol-doip) | ||
|
||
|
||
## External Dependencies 📤 | ||
|
||
External dependencies are third-party services that are required for base-repo to work properly or that can be added optionally to provide additional functionality. Typically, external dependencies require | ||
additional software to be installed and configured, before they can be included in the base-repo configuration, which is typically done via the main configuration file `application.properties`. | ||
|
||
### Relational Database (mandatory) ⛁ | ||
A relational database is required by base-repo to store administrative metadata for resources and content information. If not configured properly, base-repo will fail to start. | ||
|
||
#### Configuration ⚙️ | ||
- H2 In-Memory (driver included, used for testing, not recommended for production) [Example](https://github.com/kit-data-manager/base-repo/blob/4e90c6aeaced4715d419482f3cb127cddc85bd37/src/test/resources/test-config/application-test.properties#L31-L34) | ||
- H2 File-Based (driver included, used for basic Docker setup, not recommended for production) [Example](https://github.com/kit-data-manager/base-repo/blob/4e90c6aeaced4715d419482f3cb127cddc85bd37/config/application-docker.properties#L17C1-L24) | ||
- PostgreSQL (driver included, requires a running PostgreSQL server, used for production) [PostgreSQL](https://www.postgresql.org/), [Example](https://github.com/kit-data-manager/base-repo/blob/4e90c6aeaced4715d419482f3cb127cddc85bd37/config/application-default.properties#L38-L45) | ||
|
||
> ℹ️ **Note:** | ||
> Other relational databases, e.g., MariaDB, SQLite, or Oracle, may also work but require additional actions. To allow base-repo to connect, the source code repository must be cloned, an appropriate JDBC driver has to be added to `build.gradle` | ||
> and base-repo has be be compiled. Proper JDBC drivers are typically provided on the database's Web page. Afterwards, the database can be configured in `application.properties` similar to PostgreSQL but with database-specific property naming. Please refer | ||
> to the driver documentation for details. | ||
|
||
### Local Filesystem (mandatory) 📂 | ||
Access to the local filesystem is required by base-repo to store and manage uploaded data. base-repo only needs access to a single folder, which can be located on the local hard drive or mounted, e.g., via NFS. | ||
|
||
#### Configuration ⚙️ | ||
- see `application.properties` [Documentation1](https://github.com/kit-data-manager/base-repo/blob/4e90c6aeaced4715d419482f3cb127cddc85bd37/config/application-default.properties#L137-L139), [Documentation2](https://github.com/kit-data-manager/base-repo/blob/4e90c6aeaced4715d419482f3cb127cddc85bd37/config/application-default.properties#L154-L165) | ||
|
||
### Messaging (optional) 💬 | ||
AMQP-based messaging is an optional feature of base-repo, which allows base-repo to emit messages about creation, modification, and deletion events related to resources and content information. These messages can be received by registered consumers and processed in an asynchronous way. | ||
|
||
#### Configuration ⚙️ | ||
- RabbitMQ (dependencies included, serves as messaging distributor, requires a running RabbitMQ server) [RabbitMQ](https://www.rabbitmq.com/), [Documentation](https://kit-data-manager.github.io/webpage/base-repo/documentation/messaging-configuration.html) | ||
|
||
### Enhanced Search (optional) 🔍 | ||
By default, base-repo offers basic search via RESTful API by example document or certain query parameters. Optionally, enhanced search via a search index can be enabled and used for fine-grained and facetted search operations. | ||
|
||
#### Configuration ⚙️ | ||
- Elasticsearch (dependencies included, serves as seach index, requires a running Elasticsearch server) [Elasticsearch] (https://www.elastic.co/de/elasticsearch/), [Documentation](https://kit-data-manager.github.io/webpage/base-repo/documentation/search-configuration.html), [Example](https://github.com/kit-data-manager/base-repo/blob/4e90c6aeaced4715d419482f3cb127cddc85bd37/config/application-default.properties#L104-L107) | ||
|
||
|
||
### Access Control (optional) 🔐 | ||
By default, base-repo itself is open for all kinds of operations, i.e., read and write, where write access should be restricted on the user interface level, e.g., by a password-protected area for critical operations. Optionally, authentication and authorization via JSON Web Tokens (JWT) issued by a Keycloak instance, can be configured. | ||
|
||
#### Configuration ⚙️ | ||
- Keycloak (dependencies included, serves as identity provider, requires a running Keycloak server) [Keycloak](https://www.keycloak.org/), [Documentation (TODO)](), [Example](https://github.com/kit-data-manager/base-repo/blob/4e90c6aeaced4715d419482f3cb127cddc85bd37/config/application-default.properties#L192-L201) | ||
|
||
## Public Interfaces 📥 | ||
|
||
Public Interfaces are used to access base-repo in order to obtain its contents, typically this happens via HTTP/REST. Depending on the interface, special clients or protocols must be used to access a specific public interface. | ||
|
||
### HTTP / REST | ||
The default way to access base-repo is via RESTful interfaces. They allow to create, update, and delete resources and content information, as well as upload and download data. | ||
|
||
#### Documentation 📖 | ||
- [OpenAPI](https://kit-data-manager.github.io/webpage/base-repo/documentation/api-docs.html) | ||
- [Usage with Examples](https://kit-data-manager.github.io/webpage/base-repo/documentation/index.html) | ||
|
||
#### Application Examples 📋 | ||
- Scripts | ||
- Graphical frontends ([frontend-collection/repo-management.html](https://github.com/kit-data-manager/frontend-collection)) | ||
|
||
### Elasticsearch Proxy 🔍 | ||
If [Enhanced Search](#enhanced-search-optional-) is enabled, an additional REST endpoint becomes available, which allows to tunnel search queries to the underlying Elasticsearch instance. The advantage for proxying Elasticsearch access is, that access restrictions enabled via [Access Control](#access-control-optional-) are included in the query such that only results accessible by the caller are returned. | ||
|
||
#### Documentation 📖 | ||
- [Search Configuration](https://kit-data-manager.github.io/webpage/base-repo/documentation/search-configuration.html) | ||
|
||
#### Application Examples 📋 | ||
- Scripts | ||
- Graphical frontends ([frontend-collection/elastic-search-base-repo.html](https://github.com/kit-data-manager/frontend-collection)) | ||
|
||
### OAI-PMH | ||
[OAI-PMH](https://www.openarchives.org/pmh/) is a standardized harvesting protocol that allows to build up external search indices that can be kept up to data by regular harvesting changes from an OAI-PMH source. For base-repo, OAI-PMH functionality can be optionally added via plugin. | ||
|
||
#### Source Code 📋 | ||
- [OAI-PMH-Controller-Plugin](https://git.scc.kit.edu/kitdatamanager/2.0/oai-pmh-controller-plugin) | ||
|
||
#### Documentation 📖 | ||
- [Plugin Configuration](https://git.scc.kit.edu/kitdatamanager/2.0/oai-pmh-controller-plugin) | ||
- [base-repo Integration](https://github.com/kit-data-manager/base-repo#enhanced-startup) | ||
|
||
> ℹ️ **Note:** | ||
> Currently, the plugin is only available from an internal repository, which will change in near future. Furthermore, the plugin might not work with the current version of base-repo, but will be revised as soon as it becomes publicly available. | ||
|
||
### Digital Object Interface Protocol (DOIP) | ||
[DOIP](https://www.dona.net/sites/default/files/2018-11/DOIPv2Spec_1.pdf) is a novel protocol to provide generic access to digital resources. Instead of using HTTP-based communication, the protocol acts directly on top of TCP/IP and is therefore mainly relevant for special ecosystems. | ||
|
||
#### Source Code 📋 | ||
- [DOIP-Plugin](https://git.scc.kit.edu/kitdatamanager/2.0/doip-plugin) | ||
|
||
#### Documentation 📖 | ||
- [Plugin Configuration](https://git.scc.kit.edu/kitdatamanager/2.0/doip-plugin) | ||
- [base-repo Integration](https://github.com/kit-data-manager/base-repo#enhanced-startup) | ||
|
||
> ℹ️ **Note:** | ||
> Currently, the plugin is only available from an internal repository, which will change in near future. Furthermore, the plugin might not work with the current version of base-repo, but will be revised as soon as it becomes publicly available. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
distributionBase=GRADLE_USER_HOME | ||
distributionPath=wrapper/dists | ||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip | ||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip | ||
zipStoreBase=GRADLE_USER_HOME | ||
zipStorePath=wrapper/dists |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For better readability it may be better to use a tag instead of the id of the commit.
e.g.: https://github.com/kit-data-manager/base-repo/blob/v1.4.0/src/test/resources/test-config/application-test.properties#L31-34
Cons:
May cause problems when referencing future tags.