Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
brianjahnke committed May 18, 2021
2 parents e95dd95 + 548cd41 commit c06006a
Show file tree
Hide file tree
Showing 535 changed files with 65,603 additions and 6,963 deletions.
38 changes: 3 additions & 35 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,35 +1,3 @@
target/
images/
README.md
CONTRIBUTING.md
CHANGELOG.md
.gitignore
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/

### VS Code ###
.vscode/
**
!pom.xml
!src/main/**
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
9 changes: 9 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
blank_issues_enabled: false
contact_links:
- name: Ask a question or get support
url: https://github.com/International-Data-Spaces-Association/DataspaceConnector/discussions
about: Ask a question or request support for using the Dataspace Connector
- name: Take a look at the wiki
url: https://github.com/International-Data-Spaces-Association/DataspaceConnector/wiki
about: Browse the wiki for help regarding the Dataspace Connector
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
8 changes: 8 additions & 0 deletions .github/dependabot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: 2
updates:
- package-ecosystem: "maven"
directory: "/"
schedule:
interval: "daily"
target-branch: "develop"
open-pull-requests-limit: 10
37 changes: 37 additions & 0 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: Java CI with Maven

on:
pull_request:
branches: [ master, develop ]

concurrency:
group: ${{ github.head_ref }}
cancel-in-progress: true

jobs:
build:
timeout-minutes: 30
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
java: [11, 12, 13, 14, 15]

steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Cache maven packages
uses: actions/cache@v2
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Build with Maven
run: mvn -B -U verify --file pom.xml
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ target/
!**/src/main/**
!**/src/test/**

/log/

### STS ###
.apt_generated
.classpath
Expand Down
4 changes: 1 addition & 3 deletions .mvn/wrapper/MavenWrapperDownloader.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;

import java.util.Properties;

public class MavenWrapperDownloader {
Expand Down
173 changes: 169 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,179 @@
# Changelog
All notable changes to this project will be documented in this file.

## [5.0.0] - 2021-05-17

### Added
- Partially support of HATEOAS.
- Add pagination for REST calls on resources.
- Integration and configuration of Jaeger for using open telemetry.
- Set default application name to `Dataspace Connector` in `application.properties`.
- Add custom spring banner.
- Add separate controller methods for each IDS message type.
- Add global exception handlers for `ResourceNotFoundException`, `JsonProcessingException`, and any
`RuntimeException`.
- Add possibility to disable http tracer in `application.properties`.
- Add possibility to restrict depth of returned IDS information on `DescriptionRequest`.
* Change IDS self-description to returning only a list of catalogs instead of their whole content.
* Add possibility to send `DescriptionRequestMessages` for other elements than resources.
- Add remote IDs to each object for tracking origin.
- Support multiple policy patterns in one contract.
- Add Unit tests and integration tests.
- Add quality checks and project reports to `pom.xml`: execute with `mvn verify site`.
- Improve contract negotiation and usage control.
* Add contract agreement validation in `ContractAgreementHandler`.
* Note pre-defined providers for contract offers in `ContractRequestHandler`.
* Use contract agreements for policy enforcement.
* Handle out contract agreements for multiple artifacts (targets) within one negotiation sequence.
* Restrict agreement processing to confirmed agreements.
* Add relation between artifacts and agreements.

### Changed
- Support of IDS Infomodel v4.0.4 (direct import in `pom.xml`).
- Change IDS Framework version to v4.0.7.
- Http tracer is limited to 10000 characters per log line.
- Log file creation is disabled by default.
- Move Swagger UI to `/api/docs`.
- Change response type from string to object.
- Use correct response codes as defined by RFC 7231.
- Replace old data model: catalogs, resources, representations, artifacts, contract, rules, and
agreements.
* Separate `ResourceRepresentation` into `Representation` and `Artifact`.
* Separate `ResourceContract` into `Contract` and `Rule`.
* Handle data in own database entity.
* Separate management of resources and its relations.
* Define clear interfaces between data model and the IDS Infomodel objects.
* Add IDS object builder classes.
* Build ids:Resource only if at least 1 representation and 1 contract is present.
* Build ids:Representation only if at least 1 artifact is present.
* Build ids:ContractOffer only if at least 1 rule is present.
* Move remote information from `BackendSource` to `Artifact`.
- Strict implementation of model view controller pattern for data management.
* Controller methods for resources and representations.
* Provide strict access control to backend. Information can only be read and changed by services.
* Strict state validation for entities via factory classes.
- Change IDS messaging sequence: Start with `ContractRequestMessage` for automated
`DescriptionRequestMessage` and `ArtifactRequestMessage`.
- Improve data transfer.
* Process bytes instead of strings.
* Remove limit for data in internal database.
* Establish connection via `ArtifactRequestMessage` for always pulling recent data.

### Fixed
- Fix of buffer overflow in http tracer.
- Make message handler stateless.

### Security
- Prevent leaking of technology stack in case of errors/exceptions.
- Logger sanitizes inputs to prevent CRLF injections.
- Mass Bindings.
- Timezone independence.

## [4.3.1] - 2021-04-15

### Changed
- Set builder image to JDK 11.

## [4.3.0] - 2021-03-24

### Added
- Configure timeout values for http connections via `application.properties`.

## [4.2.0] - 2021-03-09

### Added
- New policy pattern: connector-restricted data usage.
- Validate `CONNECTOR_RESTRICTED_USAGE` on data request (as a provider).

## [4.1.0] - 2021-03-02

### Added
- Handle `ResourceUpdateMessage`: Update the local copy of resource upon receiving a `ResourceUpdateMessage`.
- Add attribute for endpoint documentation reference to `ResourceMetadata`.
- Store `ownerURI`, `contractID`, `artifactID`, and `originalUUID` in `RequestedResource`.
- Add support for query params, path variables, and additional headers when requesting artifacts.
- Add input validation for query params, path variables, and headers.
- Add usage control framework checking to the classes `PolicyEnforcement` and `PolicyHandler`.
- Add example files for deployment in Kubernetes.

### Changed
- Configure Spring to fail on unknown properties in request bodies.
- Move settings for policy negotiation and allowing unsupported patterns to `application.properties`.
- Refactor HttpUtils to use the IDS Framework's `HttpService`.
- Add data string as request body instead of request parameter.

### Fixed
- Exclusive use of the `ConfigurationContainer` for processing the connector's self-description and
configurations to avoid state errors (relevant for the broker communication).

## [4.0.2] - 2021-02-04

### Added
- Add message handler for `ContractAgreementMessage`.

### Changed
- Answer with a `MessageProcessedNotificationMessage` to the consumer's `ContractAgreementMessage`.
- Save the `ContractAgreement` to the database and the Clearing House when the second
`AgreementMessage` has been processed.
- Refine exception handling in the message building and sending process.
- Update from IDS Framework v4.0.2 to v4.0.3.

### Fixed
- Send `ContractAgreementMessage` as request message.

## [4.0.1] - 2021-01-28

### Changed
- Update from IDS Framework v4.0.1 to v4.0.2.

## [4.0.0] - 2021-01-25

### Added
- Add public endpoint for self-description without resource catalog and public key.
- Add example endpoints.
- Add exceptions and detailed exception handling.
- Create `UUIDUtils` for uuid handling.
- Create `ControllerUtils` for http responses.
- Add endpoints for contract negotiation.
- Add http tracing and improved logging.
- Add custom profiles for Maven.
- Add negotiation service.
- Add Spring actuators.
- Add contract agreement repository.

### Changed
- Change object handling and model classes.
- Move attribute `system` from `BackendSource` as `name` to `ResourceRepresentation`.
- Move attribute `sourceType` from `ResourceRepresentation` as `type` to `BackendSource`.
- Migrate `ResourceRepresentation` to map.
- Remove requested resource list from description response.
- Rename broker communication and self-description endpoints.
- Improve exception handling.
- Improve message handler and sending request messages in `de.fraunhofer.isst.dataspaceconnector.services.messages`.
- Change package structure.
- Add abstract class to resource service implementations.
- Edit policy handler.
- Improve `pom.xml`.
- Remove local caching of ids resources.
- Update to IDS Framework v4.0.1.
- Restructure `README.md` and wiki.
- Move code of conduct from `CONTRIBUTING.md` to `CODE_OF_CONDUCT.md`.
- Add response code annotations to endpoint methods.
- Change http response formatting.
- Replace Log4j1 with Log4j2.

### Fixed
- Update connector of configuration container before sending a broker message.
- Enforce access counter usage by moving it to an isolated method.

## [3.2.1] - 2020-11-05

### Changed
### Changed
- Update to IDS framework v3.2.3.
- Move self-service and example endpoints to admin API.
- Improve Dockerfile.
- Add key- and truststore to example configuration.
- Add default policy (provide access) to resource on creation.
- Add default policy (provide access) to resource on creation.

### Added
- Update and delete resources from broker.
Expand Down Expand Up @@ -36,13 +201,13 @@ All notable changes to this project will be documented in this file.
- Add file URI scheme to paths of KeyStore and TrustStore in config.json.
- Add test classes: SelfDescriptionTest, RequestDescriptionTest, RequestArtifactTest, DescriptionRequestMessageHandlingTest, ArtifactRequestMessageHandlingTest.

### Removed
### Removed
- IDS Connector certificate file.

## [3.1.0] - 2020-09-29

### Changed
- Integrate IDS policy language.
- Integrate IDS policy language.
- Modify policy patterns.
- Adapt policy reader to new policy language.
- Adapt usage control implementation to new patterns.
Expand Down
Loading

0 comments on commit c06006a

Please sign in to comment.