diff --git a/connector-ui/.browserslistrc b/connector-ui/.browserslistrc
new file mode 100644
index 000000000..427441dc9
--- /dev/null
+++ b/connector-ui/.browserslistrc
@@ -0,0 +1,17 @@
+# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
+# For additional information regarding the format and rule options, please see:
+# https://github.com/browserslist/browserslist#queries
+
+# For the full list of supported browsers by the Angular framework, please see:
+# https://angular.io/guide/browser-support
+
+# You can see what browsers were selected by your queries by running:
+# npx browserslist
+
+last 1 Chrome version
+last 1 Firefox version
+last 2 Edge major versions
+last 2 Safari major versions
+last 2 iOS major versions
+Firefox ESR
+not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.
diff --git a/connector-ui/.dockerignore b/connector-ui/.dockerignore
new file mode 100644
index 000000000..12c789440
--- /dev/null
+++ b/connector-ui/.dockerignore
@@ -0,0 +1,8 @@
+.idea
+.vscode
+misc
+openapi
+tmp
+node_modules
+src/assets/config/*.json
+.env*
diff --git a/connector-ui/.editorconfig b/connector-ui/.editorconfig
new file mode 100644
index 000000000..2c2cc3650
--- /dev/null
+++ b/connector-ui/.editorconfig
@@ -0,0 +1,17 @@
+# Editor configuration, see https://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
+end_of_line = lf
+
+[*.ts]
+quote_type = single
+
+[*.md]
+max_line_length = off
+trim_trailing_whitespace = false
diff --git a/connector-ui/.env.local-dev b/connector-ui/.env.local-dev
new file mode 100644
index 000000000..ccb1d67d5
--- /dev/null
+++ b/connector-ui/.env.local-dev
@@ -0,0 +1,11 @@
+# .env file configured for default npm run start commands
+# see app-config-properties.ts for list of all configurable values
+EDC_UI_ACTIVE_PROFILE=sovity-open-source
+
+EDC_UI_USE_FAKE_BACKEND=true
+EDC_UI_MANAGEMENT_API_URL=http://edc.fake-backend
+EDC_UI_MANAGEMENT_API_KEY=no-api-key-required-in-local-dev
+EDC_UI_CATALOG_URLS=http://existing-other-connector/api/dsp,http://does-not-exist-but-is-super-long-so-we-can-test/api/dsp, http://how-wrapping-works-in-subtext-of-catalog-url-select/api/dsp
+EDC_UI_LOGOUT_URL=https://example.com/logout
+EDC_UI_CONNECTOR_ENDPOINT=http://localhost:3000/api/dsp
+EDC_UI_MANAGEMENT_API_URL_SHOWN_IN_DASHBOARD=http://localhost:3000/api/control/management
diff --git a/connector-ui/.github/ISSUE_TEMPLATE/bug_report.yaml b/connector-ui/.github/ISSUE_TEMPLATE/bug_report.yaml
new file mode 100644
index 000000000..93c91f3fd
--- /dev/null
+++ b/connector-ui/.github/ISSUE_TEMPLATE/bug_report.yaml
@@ -0,0 +1,62 @@
+name: Bug Report Template
+description: Report a bug to help us improve
+labels: ["kind/bug"]
+body:
+ - type: textarea
+ id: description
+ attributes:
+ label: Description - What happened? *
+ description: A clear and concise description of the bug.
+ placeholder: Tell us what you see!
+ validations:
+ required: true
+ - type: textarea
+ id: expected
+ attributes:
+ label: Expected Behavior *
+ description: A clear and concise description of what you expected to happen.
+ placeholder: Tell us what you expected!
+ validations:
+ required: true
+ - type: textarea
+ id: observed
+ attributes:
+ label: Observed Behavior *
+ description: A clear and concise description of what happened instead.
+ placeholder: Tell us what you observed!
+ validations:
+ required: true
+ - type: textarea
+ id: steps
+ attributes:
+ label: Steps to Reproduce
+ description: Steps to reproduce the behavior.
+ placeholder: Tell us how to reproduce the issue!
+ validations:
+ required: false
+ - type: textarea
+ id: context
+ attributes:
+ label: Context Information
+ description: Add any other context about the problem here.
+ validations:
+ required: false
+ - type: textarea
+ id: logs
+ attributes:
+ label: Relevant log output
+ description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
+ render: shell
+ validations:
+ required: false
+ - type: textarea
+ id: screenshots
+ attributes:
+ label: Screenshots
+ description: If applicable, add screenshots or other information to help explain your problem.
+ validations:
+ required: false
+ - type: markdown
+ attributes:
+ value: |
+ _* These fields are mandatory, without filling them it is not possible to create the issue._
diff --git a/connector-ui/.github/ISSUE_TEMPLATE/config.yml b/connector-ui/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 000000000..0086358db
--- /dev/null
+++ b/connector-ui/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1 @@
+blank_issues_enabled: true
diff --git a/connector-ui/.github/ISSUE_TEMPLATE/documentation.md b/connector-ui/.github/ISSUE_TEMPLATE/documentation.md
new file mode 100644
index 000000000..4ca8c166d
--- /dev/null
+++ b/connector-ui/.github/ISSUE_TEMPLATE/documentation.md
@@ -0,0 +1,30 @@
+---
+name: Documentation Update Request
+about: Create a report to help us improve our documentation
+title: ""
+labels: "task/documentation"
+assignees: ""
+---
+
+# Documentation Update Request
+
+## Description
+
+
+## Current Documentation
+
+
+## Proposed Changes
+
+
+## Justification
+
+
+## Additional Context
+
+
+## Deadline
+
+
+## Notes
+
diff --git a/connector-ui/.github/ISSUE_TEMPLATE/epic_template.md b/connector-ui/.github/ISSUE_TEMPLATE/epic_template.md
new file mode 100644
index 000000000..390a48995
--- /dev/null
+++ b/connector-ui/.github/ISSUE_TEMPLATE/epic_template.md
@@ -0,0 +1,46 @@
+---
+name: Epic
+about: Help us with new ideas
+title: ""
+labels: "kind/epic"
+assignees: ""
+---
+
+# Epic
+
+## Description
+
+
+### Requirements
+
+
+
+## Work Breakdown
+
+
+```[tasklist]
+### Stories
+- [ ] Create Stories which can be converted into issues
+```
+
+### Security Constraints
+
+- [ ] Final solution design has been challenged for security related topics
+
+## Initiative / goal
+
+
+### Hypothesis
+
+
+## Acceptance criteria and must have scope
+
+
+## Stakeholders
+
+
+## Timeline
+
+
+## Need for refinement
+
diff --git a/connector-ui/.github/ISSUE_TEMPLATE/feature_request.md b/connector-ui/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 000000000..979aa2a5b
--- /dev/null
+++ b/connector-ui/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,36 @@
+---
+name: Feature Request
+about: Help us with new features
+title: ""
+labels: "kind/enhancement"
+assignees: ""
+---
+
+# Feature Request
+
+## Description
+
+- As a USER who PRECONDITIONS, I want to DO_THING, so I can ACCOMPLISH_GOAL.
+
+## Which Areas Would Be Affected?
+
+
+## Why Is the Feature Desired?
+
+
+## How does this tie into our current product?
+
+
+## Stakeholders
+
+
+## Solution Proposal and Work Breakdown
+
+
+```[tasklist]
+- [ ] Fix the GitHub Projects Labels, Sprint and other Metadata
+- [ ] Refine a Solution Proposal / Work Breakdown
+- [ ] (For Tech Team): Include acceptance criteria for the sub-tasks of the work breakdown
+- [ ] Add security related tasks and checks
+- [ ] Final solution design has been challenged for security related topics
+```
diff --git a/connector-ui/.github/ISSUE_TEMPLATE/process.md b/connector-ui/.github/ISSUE_TEMPLATE/process.md
new file mode 100644
index 000000000..f49cf43b2
--- /dev/null
+++ b/connector-ui/.github/ISSUE_TEMPLATE/process.md
@@ -0,0 +1,24 @@
+---
+name: Refine Process Request
+about: Existing processes must be adapted or new ones created
+title: ""
+labels: ["task/refine-process","task/documentation"]
+assignees: ""
+---
+
+# Process Refinement Request
+
+## Description
+
+
+## Current State
+
+
+## Proposed Changes
+
+
+## Related Issues or PRs
+
+
+## Additional Information
+
diff --git a/connector-ui/.github/ISSUE_TEMPLATE/release.md b/connector-ui/.github/ISSUE_TEMPLATE/release.md
new file mode 100644
index 000000000..247365ad8
--- /dev/null
+++ b/connector-ui/.github/ISSUE_TEMPLATE/release.md
@@ -0,0 +1,34 @@
+---
+name: Release
+about: Create an issue to track a release process.
+title: "Release x.y.z"
+labels: ["task/release", "scope/ce"]
+assignees: ""
+---
+
+# Release
+
+## Work Breakdown
+
+Feel free to edit this release checklist in-progress depending on what tasks need to be done:
+- [ ] Decide a release version depending on major/minor/patch changes in the CHANGELOG.md.
+- [ ] Update this issue's title to the new version
+- [ ] `release-prep` PR:
+ - [ ] Update the CHANGELOG.md.
+ - [ ] Check that all the entries have a link to an issue or a pull request.
+ - [ ] Add a clean `Unreleased` version.
+ - [ ] Add the version to the old section.
+ - [ ] Add the current date to the old version.
+ - [ ] Reorder, reword or combine changelog entries from a product perspective for consistency.
+ - [ ] Check the [Dependabot Alerts](https://github.com/sovity/edc-ui/security/dependabot) for anything fixable pre-release.
+ - [ ] Write or review a `Deployment Migration Notes` section.
+ - [ ] Write or review a release summary.
+ - [ ] Remove empty sections from the patch notes.
+ - [ ] Review the Screenshots in the Readme and update them if necessary.
+ - [ ] Merge the `release-prep` PR.
+- [ ] Wait for the main branch to be green.
+- [ ] Create a release and re-use the changelog section as release description, and the version as title.
+- [ ] Check if the pipeline built the release versions in the Actions-Section (or you won't see it).
+- [ ] Revisit the changed list of tasks and compare it with [.github/ISSUE_TEMPLATE/release.md](https://github.com/sovity/edc-ui/blob/main/.github/ISSUE_TEMPLATE/release.md). Propose changes where it
+ makes sense.
+- [ ] Close this issue.
diff --git a/connector-ui/.github/PULL_REQUEST_TEMPLATE.md b/connector-ui/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 000000000..de7153040
--- /dev/null
+++ b/connector-ui/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,10 @@
+_What issues does this PR close?_
+
+
+```[tasklist]
+### Checklist
+- [ ] The PR title is short and expressive.
+- [ ] I have updated the CHANGELOG.md and linked the changes to their issues. See [changelog_update.md](https://github.com/sovity/authority-portal/blob/main/docs/dev/changelog_updates.md) for more information.
+- [ ] I have updated the Deployment Migration Notes Section in the CHANGELOG.md for any configuration / external API changes.
+- [ ] I have performed a **self-review**
+```
diff --git a/connector-ui/.github/workflows/add_issue_to_project.yml b/connector-ui/.github/workflows/add_issue_to_project.yml
new file mode 100644
index 000000000..655427ddb
--- /dev/null
+++ b/connector-ui/.github/workflows/add_issue_to_project.yml
@@ -0,0 +1,17 @@
+name: Add issue to project action
+
+on:
+ issues:
+ types:
+ - opened
+
+jobs:
+ add_issue_to_project:
+ if: "!(startsWith(github.event.issue.title, '[Zammad Ticket') && github.event.issue.user.login == 'sovitybot')"
+ name: add_issue_to_project
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/add-to-project@v1.0.2
+ with:
+ project-url: https://github.com/orgs/sovity/projects/9
+ github-token: ${{ secrets.ADD_ISSUE_TO_PROJECT_PAT }}
diff --git a/connector-ui/.github/workflows/automerge.yml b/connector-ui/.github/workflows/automerge.yml
new file mode 100644
index 000000000..f0357d2b5
--- /dev/null
+++ b/connector-ui/.github/workflows/automerge.yml
@@ -0,0 +1,18 @@
+name: auto-merge
+
+on:
+ pull_request:
+
+jobs:
+ automerge:
+ runs-on: ubuntu-latest
+ continue-on-error: true
+ permissions:
+ pull-requests: write
+ contents: write
+ steps:
+ - uses: fastify/github-action-merge-dependabot@v3
+ continue-on-error: true
+ with:
+ target: patch
+
diff --git a/connector-ui/.github/workflows/build-and-release-image.yaml b/connector-ui/.github/workflows/build-and-release-image.yaml
new file mode 100644
index 000000000..8e57acc14
--- /dev/null
+++ b/connector-ui/.github/workflows/build-and-release-image.yaml
@@ -0,0 +1,73 @@
+name: Build and Release Image
+
+
+on:
+ workflow_dispatch:
+ inputs:
+ imageName:
+ description: 'Name of the image, that will be available as package'
+ required: true
+ type: string
+ push:
+ branches:
+ - main
+ tags:
+ - "*"
+
+
+env:
+ # Use docker.io for Docker Hub if empty
+ REGISTRY: ghcr.io
+ # github.repository as /
+ IMAGE_NAME: edc-ui
+ IMAGE_NAME_BASE: ${{ github.repository_owner }}
+
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ packages: write
+ steps:
+ # Checkout code
+ - uses: actions/checkout@v3
+
+ - name: Log in to the Container registry (push-only)
+ uses: docker/login-action@v2
+ with:
+ registry: ${{ env.REGISTRY }}
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Store last commit's author, message and SHA
+ run: |
+ echo "Saving local commit details in src/assets/config/version.txt"
+ git log -1 > src/assets/config/version.txt
+ echo "Saving build date to src/assets/config/ui-build-date.txt"
+ date --utc +%FT%TZ > src/assets/config/ui-build-date.txt
+
+ - name: Extract metadata (tags, labels) for Docker
+ id: meta
+ uses: docker/metadata-action@v4
+ with:
+ images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_BASE }}/${{ env.IMAGE_NAME }}
+ labels: |
+ org.opencontainers.image.title=EDC-UI extended by sovity
+ org.opencontainers.image.description=EDC-UI for sovity's extended EDC-Connector.
+ tags: |
+ type=semver,pattern={{version}},enable=${{ startsWith(github.ref, 'refs/tags/') }}
+ type=raw,value=latest,enable={{is_default_branch}}
+ type=sha,enable={{is_default_branch}}
+ type=raw,value=${{ inputs.imageName }},enabled=${{ github.event_name == 'workflow_dispatch' }}
+
+ - name: Build EDC-UI image
+ uses: docker/build-push-action@v4
+ with:
+ file: docker/Dockerfile
+ context: .
+ build-args: |
+ EDC_UI_CONFIGURATION=production
+ push: true
+ tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}
diff --git a/connector-ui/.github/workflows/code_analysis.yml b/connector-ui/.github/workflows/code_analysis.yml
new file mode 100644
index 000000000..0e9cab29b
--- /dev/null
+++ b/connector-ui/.github/workflows/code_analysis.yml
@@ -0,0 +1,59 @@
+name: Code Analysis
+
+on:
+ workflow_dispatch:
+ pull_request:
+ branches: [main]
+ paths-ignore:
+ - "**.md"
+ - "docs/**"
+
+jobs:
+ is_java_project:
+ runs-on: ubuntu-latest
+ outputs:
+ pom_exists: ${{ steps.check_files.outputs.files_exists }}
+ checkstyle_active: ${{ steps.check_checkstyle.outputs.checkstyle_active }}
+ spotbugs_active: ${{ steps.check_spotbugs.outputs.spotbugs_active }}
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+ - name: Check file existence
+ id: check_files
+ uses: andstor/file-existence-action@v2
+ with:
+ files: "pom.xml"
+ - name: check_checkstyle
+ id: check_checkstyle
+ run: echo "checkstyle_active=$(if grep -q "maven-checkstyle-plugin" pom.xml; then echo "true"; else echo "false"; fi)" >> $GITHUB_OUTPUT
+ - name: check_spotbugs
+ id: check_spotbugs
+ run: echo "spotbugs_active=$(if grep -q "spotbugs-maven-plugin" pom.xml; then echo "true"; else echo "false"; fi)" >> $GITHUB_OUTPUT
+ run_checkstyle:
+ needs: [is_java_project]
+ if: needs.is_java_project.outputs.pom_exists == 'true' && needs.is_java_project.outputs.checkstyle_active == 'true'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up JDK ${{ matrix.java }}
+ uses: actions/setup-java@v3
+ with:
+ distribution: "temurin"
+ java-version: "17"
+ cache: "maven"
+ - name: Run style checks
+ run: mvn -B checkstyle:check --file pom.xml
+ run_spotbugs:
+ needs: [is_java_project]
+ if: needs.is_java_project.outputs.pom_exists == 'true' && needs.is_java_project.outputs.spotbugs_active == 'true'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up JDK ${{ matrix.java }}
+ uses: actions/setup-java@v3
+ with:
+ distribution: "temurin"
+ java-version: "17"
+ cache: "maven"
+ - name: Run static code analysis
+ run: mvn -B compile spotbugs:check --file pom.xml
diff --git a/connector-ui/.github/workflows/license_scan.yml b/connector-ui/.github/workflows/license_scan.yml
new file mode 100644
index 000000000..52e335bcc
--- /dev/null
+++ b/connector-ui/.github/workflows/license_scan.yml
@@ -0,0 +1,45 @@
+name: Trivy License Scan
+
+on:
+ push:
+
+jobs:
+ license_scan1:
+ name: License scan (rootfs)
+ runs-on: ubuntu-latest
+ timeout-minutes: 30
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Run license scanner
+ uses: aquasecurity/trivy-action@0.26.0
+ env:
+ #try default GitHub DBs, if failing, use AWS mirror instead (https://github.com/aquasecurity/trivy-action/issues/389)
+ TRIVY_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-db,public.ecr.aws/aquasecurity/trivy-db
+ TRIVY_JAVA_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-java-db,public.ecr.aws/aquasecurity/trivy-java-db
+ with:
+ scan-type: "rootfs"
+ scan-ref: "."
+ scanners: "license"
+ severity: "CRITICAL,HIGH"
+ exit-code: 1
+ license_scan2:
+ name: License scan (repo)
+ runs-on: ubuntu-latest
+ timeout-minutes: 30
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+ - name: Run license scanner
+ uses: aquasecurity/trivy-action@0.26.0
+ env:
+ #try default GitHub DBs, if failing, use AWS mirror instead (https://github.com/aquasecurity/trivy-action/issues/389)
+ TRIVY_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-db,public.ecr.aws/aquasecurity/trivy-db
+ TRIVY_JAVA_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-java-db,public.ecr.aws/aquasecurity/trivy-java-db
+ with:
+ scan-type: "repo"
+ scan-ref: "."
+ scanners: "license"
+ severity: "CRITICAL,HIGH"
+ exit-code: 1
diff --git a/connector-ui/.github/workflows/secret_scan.yml b/connector-ui/.github/workflows/secret_scan.yml
new file mode 100644
index 000000000..b0eb00f02
--- /dev/null
+++ b/connector-ui/.github/workflows/secret_scan.yml
@@ -0,0 +1,29 @@
+name: Trivy Secret Scan
+
+on:
+ push:
+
+env:
+ REGISTRY: ghcr.io
+ IMAGE_NAME: ${{ github.repository }}
+
+jobs:
+ secret-scan:
+ name: secret_scan
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+ - name: Run vulnerability scanner
+ uses: aquasecurity/trivy-action@0.26.0
+ env:
+ #try default GitHub DBs, if failing, use AWS mirror instead (https://github.com/aquasecurity/trivy-action/issues/389)
+ TRIVY_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-db,public.ecr.aws/aquasecurity/trivy-db
+ TRIVY_JAVA_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-java-db,public.ecr.aws/aquasecurity/trivy-java-db
+ with:
+ scan-type: "fs"
+ exit-code: "1"
+ ignore-unfixed: true
+ scanners: secret
diff --git a/connector-ui/.github/workflows/security_scan.yml b/connector-ui/.github/workflows/security_scan.yml
new file mode 100644
index 000000000..703d1dcc5
--- /dev/null
+++ b/connector-ui/.github/workflows/security_scan.yml
@@ -0,0 +1,51 @@
+name: Trivy Security Scan
+
+on:
+ push:
+ workflow_dispatch:
+
+jobs:
+ security_scan_rootfs:
+ name: security_scan_rootfs
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Run static analysis (rootfs)
+ uses: aquasecurity/trivy-action@0.26.0
+ env:
+ #try default GitHub DBs, if failing, use AWS mirror instead (https://github.com/aquasecurity/trivy-action/issues/389)
+ TRIVY_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-db,public.ecr.aws/aquasecurity/trivy-db
+ TRIVY_JAVA_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-java-db,public.ecr.aws/aquasecurity/trivy-java-db
+ with:
+ scan-type: "rootfs"
+ scanners: "vuln,misconfig"
+ ignore-unfixed: true
+ format: "sarif"
+ output: "trivy-results-rootfs.sarif"
+ severity: "CRITICAL,HIGH"
+ security_scan_repo:
+ name: security_scan_repo
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ - name: Run static analysis (repo)
+ uses: aquasecurity/trivy-action@0.26.0
+ env:
+ #try default GitHub DBs, if failing, use AWS mirror instead (https://github.com/aquasecurity/trivy-action/issues/389)
+ TRIVY_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-db,public.ecr.aws/aquasecurity/trivy-db
+ TRIVY_JAVA_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-java-db,public.ecr.aws/aquasecurity/trivy-java-db
+ with:
+ scan-type: "repo"
+ scanners: "vuln,misconfig"
+ ignore-unfixed: true
+ format: "sarif"
+ output: "trivy-results-repo.sarif"
+ severity: "CRITICAL,HIGH"
+ - name: Upload Trivy scan results to GitHub Security tab (repo)
+ uses: github/codeql-action/upload-sarif@v2
+ continue-on-error: true
+ with:
+ sarif_file: "trivy-results-repo.sarif"
+ category: "code"
diff --git a/connector-ui/.github/workflows/test_angular_project.yaml b/connector-ui/.github/workflows/test_angular_project.yaml
new file mode 100644
index 000000000..4e7bf1eaa
--- /dev/null
+++ b/connector-ui/.github/workflows/test_angular_project.yaml
@@ -0,0 +1,27 @@
+name: Angular GitHub CI
+on:
+ push:
+ branches:
+ - '*'
+
+jobs:
+ ci:
+ timeout-minutes: 5
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - uses: actions/setup-node@v3
+ with:
+ node-version: 16
+ cache: 'npm'
+ cache-dependency-path: 'package-lock.json'
+
+ - name: Install Dependencies
+ run: |
+ npm ci
+
+ - name: Test
+ run: |
+ npm run test -- --browsers=ChromeHeadless --watch=false
diff --git a/connector-ui/.gitignore b/connector-ui/.gitignore
new file mode 100644
index 000000000..a165f8f24
--- /dev/null
+++ b/connector-ui/.gitignore
@@ -0,0 +1,44 @@
+# See http://help.github.com/ignore-files/ for more about ignoring files.
+
+# compiled output
+/dist
+/tmp
+/out-tsc
+# Only exists if Bazel was run
+/bazel-out
+
+# dependencies
+/node_modules
+
+# profiling files
+chrome-profiler-events*.json
+
+# IDEs and editors
+/.idea
+.project
+.classpath
+.c9/
+*.launch
+.settings/
+*.sublime-workspace
+
+# IDE - VSCode
+.vscode/*
+.history/*
+
+# misc
+/.sass-cache
+/connect.lock
+/coverage
+*.log
+/typings
+
+# System Files
+.DS_Store
+Thumbs.db
+
+.terraform*
+.angular/
+
+# ENV
+.env
diff --git a/connector-ui/.pre-commit-README.md b/connector-ui/.pre-commit-README.md
new file mode 100644
index 000000000..3f10297fa
--- /dev/null
+++ b/connector-ui/.pre-commit-README.md
@@ -0,0 +1,28 @@
+# Pre-Commit-Hook
+
+The defined pre-commit-hook prevents committing passwords to the repository. In
+case a password is detected git commit fails.
+
+## Install pre-commit
+
+1. Install pre-commit-hook tool `$ pip install pre-commit`
+2. Install detect-secrets `$ pip install detect-secrets`
+
+## Enable secret-scanning pre-commit hook
+
+1. Update pre-commit-hook `$ pre-commit autoupdate`
+2. Enable defined pre-commit-hook `$ pre-commit install`
+
+## On repository initialization of pre-commit hook with detect-secrets
+
+If no `.secrets.baseline` is present, simply generate it:
+
+1. `$ detect-secrets scan --disable-plugin KeywordDetector --disable-plugin AWSKeyDetector > .secrets.baseline`
+2. Use Notepad++ or IntelliJ-Editor to convert `.secrets.baseline` to UTF-8
+
+## Add false-positives or force adding secrets
+
+1. `$ detect-secrets scan --baseline .secrets.baseline`
+2. If secrets are identified, add them to .secrets.baseline manually For more
+ details see:
+ https://github.com/Yelp/detect-secrets#adding-secrets-to-baseline
diff --git a/connector-ui/.pre-commit-config.yaml b/connector-ui/.pre-commit-config.yaml
new file mode 100644
index 000000000..199a5c037
--- /dev/null
+++ b/connector-ui/.pre-commit-config.yaml
@@ -0,0 +1,7 @@
+repos:
+ - repo: https://github.com/Yelp/detect-secrets
+ rev: v1.4.0
+ hooks:
+ - id: detect-secrets
+ args: ['--baseline', '.secrets.baseline']
+ exclude: package.lock.json
diff --git a/connector-ui/.prettierignore b/connector-ui/.prettierignore
new file mode 100644
index 000000000..753d16651
--- /dev/null
+++ b/connector-ui/.prettierignore
@@ -0,0 +1,11 @@
+build
+coverage
+e2e
+node_modules
+.angular
+.github
+dist
+
+package-lock.json
+
+openapi
diff --git a/connector-ui/.secrets.baseline b/connector-ui/.secrets.baseline
new file mode 100644
index 000000000..aadd87dde
--- /dev/null
+++ b/connector-ui/.secrets.baseline
@@ -0,0 +1,131 @@
+{
+ "version": "1.4.0",
+ "plugins_used": [
+ {
+ "name": "ArtifactoryDetector"
+ },
+ {
+ "name": "AzureStorageKeyDetector"
+ },
+ {
+ "name": "Base64HighEntropyString",
+ "limit": 4.5
+ },
+ {
+ "name": "BasicAuthDetector"
+ },
+ {
+ "name": "CloudantDetector"
+ },
+ {
+ "name": "DiscordBotTokenDetector"
+ },
+ {
+ "name": "GitHubTokenDetector"
+ },
+ {
+ "name": "HexHighEntropyString",
+ "limit": 3.0
+ },
+ {
+ "name": "IbmCloudIamDetector"
+ },
+ {
+ "name": "IbmCosHmacDetector"
+ },
+ {
+ "name": "JwtTokenDetector"
+ },
+ {
+ "name": "MailchimpDetector"
+ },
+ {
+ "name": "NpmDetector"
+ },
+ {
+ "name": "PrivateKeyDetector"
+ },
+ {
+ "name": "SendGridDetector"
+ },
+ {
+ "name": "SlackDetector"
+ },
+ {
+ "name": "SoftlayerDetector"
+ },
+ {
+ "name": "SquareOAuthDetector"
+ },
+ {
+ "name": "StripeDetector"
+ },
+ {
+ "name": "TwilioKeyDetector"
+ }
+ ],
+ "filters_used": [
+ {
+ "path": "detect_secrets.filters.allowlist.is_line_allowlisted"
+ },
+ {
+ "path": "detect_secrets.filters.common.is_ignored_due_to_verification_policies",
+ "min_level": 2
+ },
+ {
+ "path": "detect_secrets.filters.heuristic.is_indirect_reference"
+ },
+ {
+ "path": "detect_secrets.filters.heuristic.is_likely_id_string"
+ },
+ {
+ "path": "detect_secrets.filters.heuristic.is_lock_file"
+ },
+ {
+ "path": "detect_secrets.filters.heuristic.is_not_alphanumeric_string"
+ },
+ {
+ "path": "detect_secrets.filters.heuristic.is_potential_uuid"
+ },
+ {
+ "path": "detect_secrets.filters.heuristic.is_prefixed_with_dollar_sign"
+ },
+ {
+ "path": "detect_secrets.filters.heuristic.is_sequential_string"
+ },
+ {
+ "path": "detect_secrets.filters.heuristic.is_swagger_file"
+ },
+ {
+ "path": "detect_secrets.filters.heuristic.is_templated_secret"
+ }
+ ],
+ "results": {
+ "terraform\\terraform.tfstate.backup": [
+ {
+ "type": "Base64 High Entropy String",
+ "filename": "terraform\\terraform.tfstate.backup",
+ "hashed_secret": "d9382ccd310be3886186f889ecf94f3994eb9529",
+ "is_verified": false,
+ "line_number": 101
+ },
+ {
+ "type": "Base64 High Entropy String",
+ "filename": "terraform\\terraform.tfstate.backup",
+ "hashed_secret": "2803e1c27bcb762d1877c3c2b286a7aa1bd0d55c",
+ "is_verified": false,
+ "line_number": 118
+ }
+ ],
+ "terraform\\terraform.tfvars": [
+ {
+ "type": "Base64 High Entropy String",
+ "filename": "terraform\\terraform.tfvars",
+ "hashed_secret": "d9382ccd310be3886186f889ecf94f3994eb9529",
+ "is_verified": false,
+ "line_number": 1
+ }
+ ]
+ },
+ "generated_at": "2022-12-06T12:00:42Z"
+}
diff --git a/connector-ui/.trivyignore b/connector-ui/.trivyignore
new file mode 100644
index 000000000..3b17b7880
--- /dev/null
+++ b/connector-ui/.trivyignore
@@ -0,0 +1,3 @@
+# This concerns the dev dependency @angular-devkit/build-angular.
+# This dependency uses webpack-merge@5.8.0 that uses wildcard which uses minimist 1.2.0 (which is causing the error)
+CVE-2021-44906
diff --git a/connector-ui/CHANGELOG.md b/connector-ui/CHANGELOG.md
new file mode 100644
index 000000000..2aac1e4ce
--- /dev/null
+++ b/connector-ui/CHANGELOG.md
@@ -0,0 +1,1087 @@
+# Changelog
+
+All notable changes to this project will be documented in this file - formatted
+and maintained according to the rules documented on .
+
+This file will not cover changes about documentation, code clean-up, samples, or
+the CI pipeline. With each version (respectively milestone), the core features
+are highlighted. Relevant changes to existing implementations can be found in
+the detailed section referring to by linking pull requests or issues.
+
+## [vx.x.x] - UNRELEASED
+
+### Overview
+
+### Detailed Changes
+
+#### Major
+
+#### Minor
+
+#### Patch
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v4.1.8] - 2024-12-13
+
+### Overview
+
+MDS Patch release
+
+### Detailed Changes
+
+#### Patch
+
+- Fix wrong placeholders for On Request data offer type
+ ([#878](https://github.com/sovity/edc-ui/issues/878))
+- Rearrange Sidebar Navigation Groups
+ ([#836](https://github.com/sovity/edc-ui/issues/836))
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v4.1.7] - 2024-10-21
+
+### Overview
+
+Fixing a label in the asset creation dialog.
+
+### Detailed Changes
+
+#### Patch
+
+- Fix wrong label for description field on asset creation dialog
+ ([#870](https://github.com/sovity/edc-ui/issues/870))
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v4.1.6] - 2024-10-07
+
+### Overview
+
+MDS Patch release
+
+### Detailed Changes
+
+#### Patch
+
+- Fixed a button label stating "Method Parameterization" instead of "Path
+ Parameterization" ([#857](https://github.com/sovity/edc-ui/issues/857))
+- Made the Custom Http Method mandatory if the corresponding option is chosen
+ ([#739](https://github.com/sovity/edc-ui/issues/739))
+- Fixed inconsistent renaming of "Contract Definition" to "Data Offer" after
+ i18n ([#831](https://github.com/sovity/edc-ui/issues/831))
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v4.1.5] - 2024-09-26
+
+### Overview
+
+MDS Patch release
+
+### Detailed Changes
+
+#### Patch
+
+- Fixed the gaps in renaming "Contract Definition" to "Data Offer"
+ ([#831](https://github.com/sovity/edc-ui/issues/831))
+- Replaced hints with info boxes in On Request data source
+ ([#820](https://github.com/sovity/edc-ui/issues/820))
+- Fixed cropping of Contract Offer Ids on catalog browser page
+ ([#795](https://github.com/sovity/edc-ui/issues/795))
+- Used the `createDataOffer` endpoint to create an asset, policies and a
+ contract definition in a single call
+ ([#841](https://github.com/sovity/edc-ui/issues/841))
+- Fixed config not being applied properly after a version upgrade
+- Fixed Date to DateTime conversion issues when using operators less than `LT`
+ and greater than `GT` ([#846](https://github.com/sovity/edc-ui/issues/846))
+- Added initial support for UI internationalization
+ ([#680](https://github.com/sovity/edc-ui/issues/680))
+- Implemented Data Offer wizard wording change request by MDS
+- ([PR#850](https://github.com/sovity/edc-ui/pull/850))
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v4.1.4] - 2024-09-17
+
+### Overview
+
+MDS Patch release
+
+### Detailed Changes
+
+Various bugfixes.
+
+#### Patch
+
+- Changed wording on the data offer creation page
+ ([#817](https://github.com/sovity/edc-ui/issues/795))
+- Data Offer details now display the contract ID for each contract offer
+ ([#795](https://github.com/sovity/edc-ui/issues/795))
+- Warn the user when using an invalid Policy Id
+ ([#746](https://github.com/sovity/edc-ui/issues/746))
+- Warn the user when using an invalid Data Offer Id
+ ([#745](https://github.com/sovity/edc-ui/issues/745))
+- Fixed time restriction upper bound "local day to datetime" conversion issues
+ ([#815](https://github.com/sovity/edc-ui/issues/815))
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v4.1.3] - 2024-09-03
+
+### Overview
+
+Bug fixes
+
+#### Patch
+
+- Check the contract limits before negotiating a new one.
+- Changed the title of Contract Definitions to Data Offers.
+- Enhanced EDC UI terminologies for the Create Data Offer tab.
+- Date and time display fixes, unified date format.
+
+## [v4.1.2] - 2024-08-20
+
+### Overview
+
+Bug fixes
+
+### Detailed Changes
+
+#### Patch
+
+- Added description for fields in asset creation mask
+- Added description for fields in Create Data Offer page
+- Added proper handling of custom JSON properties in edit asset process
+
+## [v4.1.1] - 2024-08-09
+
+### Overview
+
+MDS 2.2 patch release
+
+### Detailed Changes
+
+Various UI improvements and bug fixing
+
+#### Patch
+
+- Copyable contact email and subject fields on asset and data offer detail
+ dialogs
+- Assets Page search input field is now case-insensitive
+- Markdown support for Reference files description, Conditions for use fields
+- Fixed wrong date format when creating a new data offer
+- Temporarily re-implemented the Create Asset Dialog
+- Performance improvement when fetching a single contract agreement
+
+## [v4.1.0] - 2024-07-24
+
+### Overview
+
+MDS 2.2 release
+
+### Detailed Changes
+
+#### Minor
+
+- Reworked data offer creation page for easier data sharing
+- Complex policies using AND, OR and XONE
+- Both providers and consumers can now terminate contracts
+- Contracts can be filtered by their termination status
+- Adjusted data offer card/detail dialog UI to differentiate live and on request
+ assets
+
+#### Patch
+
+- Fixed an issue that caused the auth information to get lost during asset
+ creation.
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v4.0.0] - 2024-07-15
+
+### Overview
+
+Broker UI removal refactoring, ToS dialog.
+
+### Detailed Changes
+
+#### Major
+
+- Removed the Broker UI, as it has been moved into the Authority Portal.
+
+#### Minor
+
+- Added Initiate Negotiation Confirm ToS Dialog
+- Support for creating "On Request" Data Offers
+
+### Deployment Migration Notes
+
+- Connector UI:
+ - _No special deployment migration steps required_
+- Broker UI:
+ - Can be undeployed, the Broker no longer exists as a stand-alone component.
+
+## [v3.2.2] - 2024-04-20
+
+### Overview
+
+MDS Bufix Release
+
+### Detailed Changes
+
+#### Patch
+
+- Connector UI & Broker UI: Fixed an issue causing pages using asset cards to
+ crash if object custom properties were used.
+- Removed HTTP Option "HEAD" as it is not supported by the backend.
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v3.2.1] - 2024-04-18
+
+### Overview
+
+NGINX Config Fix
+
+### Detailed Changes
+
+#### Patch
+
+- Revert NGINX header changes because they disallow E2E testing of edc-ce
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v3.2.0] - 2024-04-18
+
+MDS Bufix Release
+
+### Overview
+
+### Detailed Changes
+
+#### Minor
+
+- Security headers added to NGINX Docker Image
+
+#### Patch
+
+- Fix `nutsLocations` field
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v3.1.0] - 2024-04-11
+
+### Overview
+
+Small improvements for Connector and Broker UI
+
+### Detailed Changes
+
+#### Minor
+
+- Management API URL now displayed on the dashboard page
+
+#### Patch
+
+- Broker UI: "Name" column renamed to "Title"
+- Fix status icon for data offers
+
+### Deployment Migration Notes
+
+- New **optional** environment variable:
+ - `EDC_UI_MANAGEMENT_API_URL_SHOWN_IN_DASHBOARD` as override for shown
+ Management API URL on the dashboard
+
+## [v3.0.0] - 2024-03-22
+
+### Overview
+
+Bugfixes and improvement of Broker UI integration with AP
+
+### Detailed Changes
+
+#### Major
+
+- Broker UI: Catalog page no longer supports query parameter `connectorEndpoint`
+ to filter connectors
+- Broker UI: Catalog page now supports query parameter `mdsId` to filter
+ connectors
+
+#### Patch
+
+- Fixed an asset select issue caused by a bad compare function
+- Asset: Fix double encoding of query params by disallowing '&' and '=' chars in
+ form field and sending them unencoded
+- Fixed an issue that prevented custom headers from being included in HTTP Data
+ Transfers
+- Fix `Content-Type` header being ignored by backend for transfers
+- Fixed Method Parameterization always showing "GET", added unselected option.
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v2.5.0] - 2024-02-28
+
+### Overview
+
+Enable better integration of Broker UI and Authority Portal
+
+### Detailed Changes
+
+#### Minor
+
+- Broker UI: Added query params for the connector endpoints filter
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v2.4.0] 2024-02-14
+
+### Overview
+
+MDS feature and bugfix release for Connector UI and Broker UI
+
+### Detailed Changes
+
+#### Minor
+
+- Added new MDS fields to assets
+
+#### Patch
+
+- Ensured GDPR compliance of Fonts usage
+- Fixed auth proxy issues
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v2.3.1] 2024-01-18
+
+### Overview
+
+Bugfix release for minor UI bugs
+
+### Detailed Changes
+
+#### Patch
+
+- Fixed "No Description" only showing sometimes in cards.
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v2.3.0] 2024-01-17
+
+### Overview
+
+MDS feature release for Connector UI and Broker UI
+
+### Detailed Changes
+
+#### Minor
+
+- Asset descriptions now support Markdown
+- Asset metadata is now editable
+- Negotiate button is no longer shown for own connector endpoints
+- Broker: Catalog now supports list view
+- Broker: Connectors page now shows organization names and connector IDs
+
+#### Patch
+
+- Improved handling of asset keywords in cards
+- EE: Fixed issues around logout page
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v2.2.0] 05.12.2023
+
+### Overview
+
+Aligned Participant ID / Connector ID and Connector Restricted Policy.
+
+### Detailed Changes
+
+#### Minor
+
+- MDS Connector UI: Renamed Participant IDs to MDS Connector IDs
+- Connector Restricted Policy now supports entry of multiple connectors.
+- New Transfer History Page Column: Participant ID / Connector ID
+
+### Deployment Migration Notes
+
+_No special deployment migration steps required_
+
+## [v2.1.0] 17.11.2023
+
+### Overview
+
+Broker UI EDC 0 Upgrade and some Connector UI bugfixes.
+
+### Detailed Changes
+
+#### Minor
+
+- New optional marketing banner for MDS Basic Enterprise Edition Connectors.
+- Finalize Migrate Broker UI to EDC 0
+
+#### Patch
+
+- Improved visibility of buttons in "Create New Asset" and "Initiate Transfer"
+ Dialogs
+- Broker Server API now also has a type-safe fake backend.
+- Fix Data Category not being set correctly when creating assets.
+
+### Deployment Migration Notes
+
+- Enterprise Edition only, MDS variants only: New optional config variable
+ `EDC_UI_SHOW_EE_BASIC_MARKETING=true`. Default `false`
+
+## [v2.0.0] 10.10.2023
+
+### Overview
+
+EDC 0 compatible version (Connector UI only).
+
+### Detailed Changes
+
+#### Major
+
+- Switched to semantic versioning
+- Migrated transfer history page to the api wrapper
+- Migrated contract definition page to the api wrapper
+- Migrated policy definition page to the api wrapper
+- Migrated asset page to the api wrapper
+- Migrated dashboard page to the api wrapper
+- The Docker Container now uses the port `8080` instead of ~~`80`~~.
+
+#### Minor
+
+- Added custom 404 pages to connector and broker ui
+- New Asset Property "Participant ID"
+
+#### Patch
+
+- Fixed HTTP Parameterization Hints not showing in Asset Details.
+- Removed 404-causing login polling from broker UI
+- Renamed button from cancel to close in json-dialogs
+- Broker: Fixed popularity not logged when clicking on a data offer
+- Broker: Fixed missing name in legal notice
+
+### Deployment Migration Notes
+
+- The Docker Container now uses the port `8080` instead of ~~`80`~~.
+- The following ENV Vars were changed:
+ - ~~`EDC_UI_DATA_MANAGEMENT_API_URL`~~ became `EDC_UI_MANAGEMENT_API_URL`
+ - ~~`EDC_UI_DATA_MANAGEMENT_API_KEY`~~ became `EDC_UI_MANAGEMENT_API_KEY`
+- The following ENV Vars were removed and should not be specified anymore:
+ - `EDC_UI_CONNECTOR_ID`
+ - `EDC_UI_CONNECTOR_NAME`
+ - `EDC_UI_CURATOR_ORGANIZATION_NAME`
+ - `EDC_UI_CURATOR_URL`
+ - `EDC_UI_DAPS_OAUTH_JWKS_URL`
+ - `EDC_UI_DAPS_OAUTH_TOKEN_URL`
+ - `EDC_UI_IDS_DESCRIPTION`
+ - `EDC_UI_IDS_ID`
+ - `EDC_UI_IDS_TITLE`
+ - `EDC_UI_MAINTAINER_ORGANIZATION_NAME`
+ - `EDC_UI_MAINTAINER_URL`
+ - `EDC_UI_ASSET_PROP_ORIGINATOR_ORGANIZATION`
+ - `EDC_UI_ASSET_PROP_ORIGINATOR`
+- New **optional** ENV Vars:
+ - `NGINX_ACCESS_LOG`, default: `/dev/stdout`
+ - `NGINX_ERROR_LOG`, default: `/dev/stderr`
+
+## [v0.0.1-milestone-8-sovity12] 12.07.2023
+
+### Overview
+
+Broker Server Feature + Bugfix Release
+
+### Detailed Changes
+
+#### Added
+
+- Broker Server: Connector Online Status is now visualized.
+
+#### Fixed
+
+- Fixed Policies not being displayed properly.
+
+## [v0.0.1-milestone-8-sovity11] 07.07.2023
+
+### Overview
+
+Bugfix Release
+
+### Detailed Changes
+
+#### Fixed
+
+- Fixed a bug causing http parameterization not being accessible due to asset
+ properties not being persisted on the consumer side.
+
+## [v0.0.1-milestone-8-sovity10] 07.07.2023
+
+### Overview
+
+Bugfix Release
+
+### Detailed Changes
+
+#### Fixed
+
+- Fixed a bug causing data address dtos to be built wrongly.
+
+## [v0.0.1-milestone-8-sovity9] 04.07.2023
+
+### Overview
+
+Full support for parameterized HTTP Data Sources, some Basic EE features.
+
+### Detailed Changes
+
+#### Added
+
+- Parameterization of Http Data Sources.
+- Enteprise Edition (Basic): Added support for consuming contract agreement
+ limits.
+
+## [v0.0.1-milestone-8-sovity8] 23.06.2023
+
+### Overview
+
+Bugfix release.
+
+### Detailed Changes
+
+#### Fixed
+
+- Broker UI: Fixed sorting not applied.
+
+## [v0.0.1-milestone-8-sovity7] 23.06.2023
+
+### Overview
+
+Build dates, open-ended date intervals, Broker UI MvP features.
+
+### Detailed Changes
+
+#### Added
+
+- Added Connector Build date and Commit Information to Additional Properties
+ section in Dashboard
+- Added Open-Ended Date Option to Time-Period-Restricted Policies
+- Broker UI: Added sorting, filtering and pagination to catalog page.
+- Broker UI: Added legal notice page.
+
+## [v0.0.1-milestone-8-sovity6] 06.06.2023
+
+### Overview
+
+Added Broker UI and minor Connector UI improvements.
+
+### Detailed Changes
+
+#### Added
+
+- Added Broker PoC UI:
+ - Refactored Module Structure
+ - Added Catalog Page
+ - Added Connector Page
+ - Added Copyright Footer
+- Tooltips for Asset Properties that show the asset property names.
+
+#### Fixed
+
+- Fixed Card titles exploding when containing too large words.
+- Fixed missing section header for consuming contract agreements.
+
+## [v0.0.1-milestone-8-sovity5] 09.05.2023
+
+### Overview
+
+Removed catalog browser timeouts.
+
+### Detailed Changes
+
+#### Changed
+
+- Catalog Page now has no timeouts.
+- Catalog Page now displays partial results.
+
+## [v0.0.1-milestone-8-sovity4] 03.05.2023
+
+### Overview
+
+Bugfixes and minor UI improvements.
+
+### Detailed Changes
+
+#### Added
+
+- Added "Show Details" option to each entry in Transfer History Page
+
+#### Fixed
+
+- Fixed bug in contract definition page that prevented the entire page from
+ showing when any contract definition used a non-array operatorRight.
+- Fixed contract agreement transfer button being available for providing
+ contract agreements.
+
+## [v0.0.1-milestone-8-sovity3] 28.04.2023
+
+### Overview
+
+Reworked Contract Agreement Page, improved stability and full contract offer
+information is now displayed.
+
+### Detailed Changes
+
+#### Added
+
+- Reworked the Contract Agreement Page, it now uses its own dedicated API
+ Wrapper endpoint.
+- Added login polling to prevent auto-logout when page is open.
+- Showing all asset properties for assets and contract offers via an "Additional
+ Properties" section.
+- Showing policies for contract offers in the asset details dialog.
+
+#### Changed
+
+- Marked `EDC_UI_MANAGEMENT_API_URL` as deprecated in favor of
+ `EDC_UI_MANAGEMENT_API_URL`.
+- Marked `EDC_UI_DATA_MANAGEMENT_API_KEY` as deprecated in favor of
+ `EDC_UI_MANAGEMENT_API_KEY`.
+
+#### Removed
+
+- Removed Datasource Payload support, it is probably only intended for Push
+
+#### Fixed
+
+- Fixed getting started docker-compose-yaml to use the newly renamed `edc-dev`
+ image.
+- Fixed labels of MDS categories and sub-categories.
+- Fixed issue when navigating back after clicking logout.
+
+## [v0.0.1-milestone-8-sovity2] 24.03.2023
+
+### Overview
+
+Bugfixes for our productive connectors.
+
+### Detailed Changes
+
+#### Fixed
+
+- Fixed implicit limit of 50 being applied to all views.
+
+## [v0.0.1-milestone-8-sovity1] 20.03.2023
+
+### Overview
+
+Organization names are now prominent in both asset cards and contract offer
+cards.
+
+### Detailed Changes
+
+#### Added
+
+- Made asset IDs less prominent in favor of Organization Name
+
+#### Fixed
+
+- Removed password suggestions for ID and related fields in Chrome
+- Fixed handling of http error response code 401 when user logout from edc-ui
+- Bumped minor dependencies
+
+## [v0.0.1-milestone-7-sovity8] 07.03.2023
+
+### Overview
+
+Minor UI fixes.
+
+### Detailed Changes
+
+#### Changed
+
+- Updated the icon for Fetch Status option in the catalog browser
+
+#### Fixed
+
+- Fixed closing of side nav-bar on pressing escape button
+- Fixed "Your Contract Definitions" being called "Your Data Offers" in the
+ dashboard.
+
+## [v0.0.1-milestone-7-sovity7] 06.03.2023
+
+### Overview
+
+More Connector Self-Description properties in Dashboard.
+
+### Detailed Changes
+
+#### Added
+
+- Added Connector Self-Description property grid in Dashboard.
+- Added info texts to differentiate Connector ID and Connector Endpoint.
+- Added support for loading additional config from `EDC_UI_CONFIG_URL` on
+ startup.
+
+#### Changed
+
+- Deprecated property `EDC_UI_ASSET_PROP_ORIGINATOR` in favor of
+ `EDC_UI_CONNECTOR_ENDPOINT`.
+- Deprecated property `EDC_UI_ASSET_PROP_ORIGINATOR_ORGANIZATION_NAME` in favor
+ of `EDC_UI_CURATOR_ORGANIZATION_NAME`.
+
+#### Fixed
+
+- Fixed Contract Definition successfully created message.
+
+## [v0.0.1-milestone-7-sovity6] 02.03.2023
+
+#### Changed
+
+- Navigation Item Order: Switched Contract Definitions and Asset Viewer
+
+#### Fixed
+
+- Fixed Contract Definition Page Button Typo.
+
+## [v0.0.1-milestone-7-sovity5] 24.02.2023
+
+### Overview
+
+New contract definition list, catalog status info and Http Datasink fields.
+
+### Detailed Changes
+
+#### Added
+
+- Added Additional Http Datasink properties.
+- Catalog Browser now shows if individual Connector Endpoints were unreachable.
+- Reworked Contract Definition cards.
+
+#### Changed
+
+- Renamed Connector ID to Connector Endpoint to emphasize differentiate:
+ - Connector ID: Configured in certificate, contained in DAT.
+ - Connector Endpoint: Configured IDS Endpoint
+
+#### Fixed
+
+- Compatibility section in README.md
+
+## [v0.0.1-milestone-7-sovity4] 20.02.2023
+
+### Overview
+
+New policy list, new http data source properties, UX improvements
+
+### Detailed Changes
+
+#### Added
+
+- Reworked page loading, empty messages and error states
+- Reworked policy list, new cards, new detail dialog.
+- Additional Http Datasource Properties: method, content type, request body,
+ auth header/value, headers
+
+#### Fixed
+
+- Placeholder URLs missing "/control/" path
+- Fixed Keyword select not adding keywords on input field blur, causing loss of
+ input.
+- Fixed transfer dialog submitting on cancel
+- Fixed transfer dialog validation not working
+- Fix exception on contract definition dialog cancel
+
+## [v0.0.1-milestone-7-sovity3] 06.02.2023
+
+### Fixed
+
+- Fixed dashboard splitting transfers and contract agreements in incoming /
+ outgoing. Contract Agreements currently cannot be distinguished as incoming /
+ outgoing.
+
+## [v0.0.1-milestone-7-sovity2] 01.02.2023
+
+### Overview
+
+A new dashboard and other quality of life improvements.
+
+### Detailed Changes
+
+#### Added
+
+- Dashboard with KPIs and charts.
+- Current Connector Organization & URL on Landing Page / Dashboard
+- Simplified adding of data sources in Catalog Browser via Connector ID.
+- Source code version of deployed edc-ui can now be accessed under
+ /assets/config/version.txt
+
+#### Changed
+
+- Connector URL is now called Connector ID, fixed naming and added good
+ placeholders.
+
+#### Fixed
+
+- Fixed additional PolicyDefinition uid vs id issues.
+- Fixed E-Mail in README.MD
+- Added API Endpoint to workaround extension that fixes an API problem:
+ - Could not start transfer processes with just contract agreement ids when
+ asset came from a custom catalog provider.
+ - It would need the asset's originator url.
+ - Since contract agreements don't contain the asset and catalogs are not
+ guaranteed to still contain said asset's details due to policies, a new
+ endpoint / extension was required.
+- Fixed MDS Logo not working.
+
+## [v0.0.1-milestone-7-sovity1] 19.01.2023
+
+### Overview
+
+- Prepared this repository for its open source release:
+ - Better configuration via ENV Vars, documentation and CI.
+ - Changed versioning system to `$EDC_VERSION-sovity$EDC_UI_MINOR_VERSION`.
+ - Changed release image to `ghcr.io/sovity/edc-ui`.
+
+### Detailed Changes
+
+#### Added
+
+- Split mds and sovity profiles each into "open source" and "hosted by sovity"
+ variants.
+
+#### Changed
+
+- Releasing images now as `ghcr.io/sovity/edc-ui`.
+- Changed configuration:
+ - Removed `app.config.json`.
+ - Configuration via `EDC_UI_` environment variables in both local dev and
+ docker container.
+ - See `app-config-properties.ts` for available properties.
+ - Configuration via single environment variable `EDC_UI_CONFIG_JSON` possible.
+- Added prettier as code formatter.
+ - Formatted all non-generated code with prettier.
+
+#### Fixed
+
+- Menu of Navigation bar hiding behind feedback widget
+
+## [0.0.1-ab1b6fd0-sovity5] 17.01.2023
+
+### Detailed Changes
+
+#### Added
+
+- Added support for connector restricted usage policy.
+- Added additional asset fields:
+ - General fields (e.g. standard license).
+ - MDS specific fields (e.g. transport mode).
+- Catalog Browser:
+ - Reworked cards to support to support some new fields.
+ - Added new detail dialog showing asset details.
+- Asset Viewer:
+ - Reworked cards to support to support some new fields.
+ - Added new detail dialog showing asset details.
+ - Added field CONNECTOR ORIGINATOR ORGANIZATION to be fetched from
+ app.config.json
+- Asset Create Dialog:
+ - Divided asset creation into stages with an Angular Material Stepper.
+ - Added title and fixed styling.
+ - Added validation for required fields.
+ - Added validation for URL fields.
+ - Added validation for ID field, no whitespaces.
+ - Added ID generation from name.
+ - Added vocabulary for MDS specific fields: Data Category, Data Subcategory,
+ Transport Mode.
+ - Added new MDS field: Data Subcategory
+- Policy Definition Dialog:
+ - Added title and fixed styling.
+ - Added validation for required fields.
+- Contract Definition Dialog:
+ - Added title and fixed styling.
+ - Added validation for required fields.
+
+#### Changed
+
+- Changed asset properties, especially ID property. See `asset-properties.ts`.
+
+#### Fixed
+
+- Error-Message Displayed when Creating and Cancelling the Create-Policy-Dialog
+- Removed dead theming code at wrong places.
+- Fixed "black" accent color having black text on black background.
+- Asset Create Dialog:
+ - Fixed validation not preventing submit.
+ - Fixed data flow so submit errors don't close dialog.
+- Policy Viewer
+ - Fixed filter / pagination bar styling.
+- Policy Definition Dialog:
+ - Fixed validation not preventing submit.
+ - Fixed data flow so submit errors don't close dialog.
+- Contract Definition Viewer
+ - Fixed filter / pagination bar styling.
+- Contract Definition Dialog:
+ - Fixed validation not preventing submit.
+ - Fixed data flow so submit errors don't close dialog.
+
+## [0.0.1-ab1b6fd0-sovity4] 04.01.2023
+
+### Overview
+
+Supporting communication with milestone 7 EDC. Working Logout.
+
+### Detailed Changes
+
+#### Added
+
+- Angular 14 and Angular Material 14
+- Add Help-Box (Zammad links)
+ (https://github.com/sovity/edc-sovity-ui/issues/55)
+- Additional `logoutUrl` Property in app.config.json
+ (https://github.com/sovity/edc-sovity-ui/issues/24)
+ - OAuth2-Proxy-Config has to be adapted
+ - Setting: --whitelist-domain to {{KEYCLOAK_ASE_URL}}
+ - Schema: {{EDC_UI_BASE_URL}}/oauth2/sign_out?rd={{KEYCLOAK_LOGOUT_URL}}
+ - KEYCLOAK_LOGOUT_URL
+ - all url encoded including {{KEYCLOAK_BASE_URL}} and {{EDC_UI_BASE_URL}}
+ - Schema:
+ {{KEYCLOAK_BASE_URL}}%2Frealms%2Fsovity%2Fprotocol%2Fopenid-connect%2Flogout%3Fclient_id%3D{{OAUTH2_PROXY_KEYCLOAK_CLIENT_ID}}%26post_logout_redirect_uri%3D{{EDC_UI_BASE_URL}}
+- Support customizing the NGINX listen address
+ (https://github.com/sovity/edc-sovity-ui/issues/42)
+ - Required Environment-Variables
+ - NGINX_BIND
+ - NGINX_PORT
+- Added secret scanning to repo
+- Added MDS logo in the tool bar and added MDS theme
+- Added focus on nav-bar item
+- Added test server setup
+- Added Catalog Url Field in Catalog Browser
+ (https://github.com/sovity/edc-sovity-ui/issues/83)
+
+#### Changed
+
+- Renamed policyDefinition `uid` field to `id`
+- Removed Logout-Button from Startpage and added it to the menu
+ (https://github.com/sovity/edc-sovity-ui/issues/24)
+
+#### Removed
+
+- Developer text description on start page
+
+## [0.0.1-ab1b6fd0-sovity3] 2022-11-10
+
+### Overview
+
+Passing multiple Catalog Urls.
+
+### Detailed Changes
+
+#### Added
+
+- Support for Passing multiple Catalog Urls
+ (https://github.com/sovity/edc-sovity-ui/issues/46)
+ - `catalogUrl` in `app.config.json` may be set to following pattern:
+ {catalog1Url},{catalog2Url},...
+
+## [0.0.1-ab1b6fd0-sovity2] 2022-09-28
+
+### Overview
+
+Robustness and convenience improvements.
+
+### Detailed Changes
+
+#### Added
+
+- Field `originator` in `app.config.json`
+ (https://github.com/sovity/edc-sovity-ui/pull/36)
+
+#### Changed
+
+- CreateAssetDialog (https://github.com/sovity/edc-sovity-ui/pull/31)
+ - Added ComboBox for Asset Datasource-Type
+ - Json: Passing a Datasource using Json
+ - Rest-Api: Just passing a Url
+ - Removed Originator Field
+ - Originator will now bet set using the `originator` from `app.config.json`
+ - Changed Json Input Field to TextArea
+- TransferDialog (https://github.com/sovity/edc-sovity-ui/pull/33)
+ - Added ComboBox for Transfer Destination-Type
+ - Json: Passing a Data-Destination using Json
+ - Rest-Api: Just passing a Url
+- PolicyDialog (https://github.com/sovity/edc-sovity-ui/pull/34)
+ - Removed fields (Assignee, Assigner, Permissions, Prohibitions and
+ Obligations)
+ - Added ComboBox for Choosing a fixed Policy
+ - Added Time-Interval-Selection Component for Time-Restricted Policy
+
+#### Removed
+
+- `Deprovision` Button in Transfer History: Has been used for AzureBlob Storage
+ before, but is not required for Rest-Api Transfers
+ (https://github.com/sovity/edc-sovity-ui/pull/35)
+
+#### Fixed
+
+- User-Input will be trimmed before sending it to the EDC-Backend
+ (https://github.com/sovity/edc-sovity-ui/pull/39)
+
+## [0.0.1-ab1b6fd0-sovity1] 2022-08-31
+
+### Overview
+
+First release of sovity EDC-Data-Dashboard. Adds support for connecting
+REST-APIs.
+
+### Detailed Changes
+
+#### Added
+
+- sovity Theming
+
+#### Changed
+
+- Sorting Transfer History Entries by Created Date
+- Create Asset Dialog
+ - Field for arbitrary Data Destination
+ - Field for Originator
+ - Has to be set to connectors IDS Endpoint, for instance:
+ http://daps-connector-a-controlplane-1:8282/api/v1/ids/data
+- Transfer Dialog in Contracts
+ - Field for arbitrary Data Destination
+
+#### Removed
+
+- Support for Azure Storage Blobs
diff --git a/connector-ui/CODE_OF_CONDUCT.md b/connector-ui/CODE_OF_CONDUCT.md
new file mode 100644
index 000000000..6fd31637b
--- /dev/null
+++ b/connector-ui/CODE_OF_CONDUCT.md
@@ -0,0 +1,72 @@
+# Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual identity
+and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment
+include:
+
+- Using welcoming and inclusive language
+- Being respectful of differing viewpoints and experiences
+- Gracefully accepting constructive criticism
+- Focusing on what is best for the community
+- Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+- The use of sexualized language or imagery and unwelcome sexual attention or
+ advances
+- Trolling, insulting/derogatory comments, and personal or political attacks
+- Public or private harassment
+- Publishing others' private information, such as a physical or electronic
+ address, without explicit permission
+- Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, or to ban temporarily or permanently any
+contributor for other behaviors that they deem inappropriate, threatening,
+offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team. All complaints will be reviewed and
+investigated and will result in a response that is deemed necessary and
+appropriate to the circumstances. The project team is obligated to maintain
+confidentiality with regard to the reporter of an incident. Further details of
+specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the
+[Contributor Covenant](http://contributor-covenant.org), version 1.4, available
+at http://contributor-covenant.org/version/1/4.
diff --git a/connector-ui/CONTRIBUTING.md b/connector-ui/CONTRIBUTING.md
new file mode 100644
index 000000000..0d9c09b64
--- /dev/null
+++ b/connector-ui/CONTRIBUTING.md
@@ -0,0 +1,195 @@
+# Contributing to the Project
+
+Thank you for your interest in contributing to this project
+
+## Table of Contents
+
+- [Code Of Conduct](#code-of-conduct)
+- [How to Contribute](#how-to-contribute)
+ - [Discuss](#discuss)
+ - [Create an Issue](#create-an-issue)
+ - [Submit a Pull Request](#submit-a-pull-request)
+ - [Report on Flaky Tests](#report-on-flaky-tests)
+- [Etiquette for pull requests](#etiquette-for-pull-requests)
+- [Contact Us](#contact-us)
+
+## Code Of Conduct
+
+See the [Code Of Conduct](CODE_OF_CONDUCT.md).
+
+## How to Contribute
+
+### Discuss
+
+If you want to share an idea to further enhance the project or discuss potential
+use cases, please feel free to create a discussion at the
+`GitHub Discussions page`] If you feel there is a bug or an issue, contribute to
+the discussions in `existing issues` otherwise
+[create a new issue](#create-an-issue).
+
+### Create an Issue
+
+If you have identified a bug or want to formulate a working item that you want
+to concentrate on, feel free to create a new issue at our project's
+corresponding `GitHub Issues page`. Before doing so, please consider searching
+for potentially suitable `existing issues`.
+
+We also use
+[GitHub's default label set](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/managing-labels)
+extended by custom ones to classify issues and improve findability.
+
+If an issue appears to cover changes that will have a (huge) impact on the code
+base and needs to first be discussed, or if you just have a question regarding
+the usage of the software, please create a `discussion` before raising an issue.
+
+Please note that if an issue covers a topic or the response to a question that
+may be interesting for other developers or contributors, or for further
+discussions, it should be converted to a discussion and not be closed.
+
+### Adhere to Coding Style Guide
+
+We aim for a coherent and consistent code base, thus the coding style detailed
+in the [styleguide](STYLEGUIDE.md) should be followed.
+
+### Submit a Pull Request
+
+We would appreciate if your pull request applies to the following points:
+
+- Conform to following
+ [Etiquette for pull requests](#etiquette-for-pull-requests):
+
+- Make sure to adjust copyright headers appropriately.
+
+- The git commit messages should comply to the following format:
+
+ ```
+ ():
+ ```
+
+ Use the
+ [imperative mood](https://github.com/git/git/blob/master/Documentation/SubmittingPatches)
+ as in "Fix bug" or "Add feature" rather than "Fixed bug" or "Added feature"
+ and
+ [mention the GitHub issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
+ e.g. `chore(transfer process): improve logging`.
+
+- Add meaningful tests to verify your submission acts as expected.
+
+- Where code is not self-explanatory, add documentation providing extra
+ clarification.
+
+- PR descriptions should use the current
+ [PR template](.github/PULL_REQUEST_TEMPLATE.md)
+
+- Submit a draft pull request at early-stage and add people previously working
+ on the same code as reviewer. Make sure automatic checks pass before marking
+ it as "ready for review":
+
+ - _Continuous Integration_ performing various test conventions.
+
+### Report on Flaky Tests
+
+If you discover a randomly failing ("flaky") test, please take the time to check
+whether an issue for that already exists and if not, create an issue yourself,
+providing meaningful description and a link to the failing run. Please also
+label it with `Bug` and `github`. Then assign it to whoever was the original
+author of the relevant piece of code or whoever worked on it last. If assigning
+the issue is not possible due to missing rights, please just comment and
+@mention the author/last editor.
+
+Please do not just restart the run, as this would overwrite the results. If you
+need to, a better way of doing this is to push an empty commit. This will
+trigger another run.
+
+```bash
+git commit --allow-empty -m "trigger CI" && git push
+```
+
+If an issue labeled with `Bug` and `github` is assigned to you, please
+prioritize addressing this issue as other people will be affected. We are taking
+the quality of our code very serious and reporting on flaky tests is an
+important step toward improvement in that area.
+
+## Etiquette for pull requests
+
+### As an author
+
+Submitting pull requests should be done while adhering to a couple of simple
+rules.
+
+- Familiarize yourself with [coding style](STYLEGUIDE.md), architectural
+ patterns and other contribution guidelines.
+- No surprise PRs please. Before you submit a PR, open a discussion or an issue
+ outlining your planned work and give people time to comment. It may even be
+ advisable to contact committers using the `@mention` feature. Unsolicited PRs
+ may get ignored or rejected.
+- Create focused PRs: your work should be focused on one particular feature or
+ bug. Do not create broad-scoped PRs that solve multiple issues as reviewers
+ may reject those PR bombs outright.
+- Provide a clear description and motivation in the PR description in GitHub.
+ This makes the reviewer's life much easier. It is also helpful to outline the
+ broad changes that were made, e.g. "Changes the schema of XYZ-Entity: the
+ `age` field changed from `long` to `String`".
+- If you introduce new 3rd party dependencies, be sure to note them in the PR
+ description and explain why they are necessary.
+- Stick to the established code style, please refer to the
+ [styleguide document](STYLEGUIDE.md).
+- All tests should be green, especially when your PR is in `"Ready for review"`
+- Mark PRs as `"Ready for review"` only when you're prepared to defend your
+ work. By that time you have completed your work and shouldn't need to push any
+ more commits other than to incorporate review comments.
+- Merge conflicts should be resolved by squashing all commits on the PR branch,
+ rebasing onto `main` and force-pushing. Do this when your PR is ready to
+ review.
+- If you require a reviewer's input while it's still in draft, please contact
+ the designated reviewer using the `@mention` feature and let them know what
+ you'd like them to look at.
+- Re-request reviews after all remarks have been adopted. This helps reviewers
+ track their work in GitHub.
+- If you disagree with a committer's remarks, feel free to object and argue, but
+ if no agreement is reached, you'll have to either accept the decision or
+ withdraw your PR.
+- Be civil and objective. No foul language, insulting or otherwise abusive
+ language will be tolerated.
+- The PR titles must follow
+ [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
+ - The title must follow the format as
+ `(): `. `build`, `chore`, `ci`, `docs`,
+ `feat`, `fix`, `perf`, `refactor`, `revert`, `style`, `test` are allowed for
+ the ``.
+ - The length must be kept under 80 characters.
+
+### As a reviewer
+
+- Have a look at
+ [Pull Request Review Pyramide](https://www.morling.dev/blog/the-code-review-pyramid/)
+- Please complete reviews within two business days or delegate to another
+ committer, removing yourself as a reviewer.
+- If you have been requested as reviewer, but cannot do the review for any
+ reason (time, lack of knowledge in particular area, etc.) please comment that
+ in the PR and remove yourself as a reviewer, suggesting a stand-in.
+- Don't be overly pedantic.
+- Don't argue basic principles (code style, architectural decisions, etc.)
+- Use the `suggestion` feature of GitHub for small/simple changes.
+- The following could serve you as a review checklist:
+ - no unnecessary dependencies in `build.gradle.kts`
+ - sensible unit tests, prefer unit tests over integration tests wherever
+ possible (test runtime). Also check the usage of test tags.
+ - code style
+ - simplicity and "uncluttered-ness" of the code
+ - overall focus of the PR
+- Don't just wave through any PR. Please take the time to look at them
+ carefully.
+- Be civil and objective. No foul language, insulting or otherwise abusive
+ language will be tolerated. The goal is to _encourage_ contributions.
+
+## Contact Us
+
+If you have questions or suggestions, do not hesitate to contact the project
+developers via https://github.com/sovity.
+
+## Attribution
+
+This file is adapted from the
+[eclipse-edc](https://github.com/eclipse-dataspaceconnector/DataSpaceConnector)
+project.
diff --git a/connector-ui/LICENSE b/connector-ui/LICENSE
new file mode 100644
index 000000000..d9a10c0d8
--- /dev/null
+++ b/connector-ui/LICENSE
@@ -0,0 +1,176 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
diff --git a/connector-ui/NOTICE b/connector-ui/NOTICE
new file mode 100644
index 000000000..11716f93b
--- /dev/null
+++ b/connector-ui/NOTICE
@@ -0,0 +1,11 @@
+sovity EDC UI
+Copyright (c) 2024. sovity GmbH
+
+This product includes software developed at sovity GmbH (https://www.sovity.de).
+Copyright (c) 2024. sovity GmbH
+
+The initial internationalization of the EDC UI and localization to German was done
+by the Fraunhofer Institute for Applied Information Technology FIT (https://www.fit.fraunhofer.de/).
+This project was part of the national flagship project "Datenraum Kultur" and was funded
+by the Federal Government Commissioner for Culture and the Media from 2023 to 2025.
+Copyright (c) 2024. Fraunhofer Institute for Applied Information Technology FIT
diff --git a/connector-ui/README.md b/connector-ui/README.md
new file mode 100644
index 000000000..54c494b64
--- /dev/null
+++ b/connector-ui/README.md
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+[![Contributors][contributors-shield]][contributors-url]
+[![Forks][forks-shield]][forks-url] [![Stargazers][stars-shield]][stars-url]
+[![Issues][issues-shield]][issues-url]
+[![MIT License][license-shield]][license-url]
+[![LinkedIn][linkedin-shield]][linkedin-url]
+
+
+
+
+
+
+
+
+
+## About The Project
+
+[Eclipse Dataspace Components](https://github.com/eclipse-edc) is a framework
+for building dataspaces, exchanging data securely with ensured data
+sovereignity.
+
+[sovity](https://sovity.de/) extends the EDC functionality to offer
+enterprise-ready managed "Connector-as-a-Service" services, bringing
+out-of-the-box fully configured DAPS and integrations to existing other
+dataspace technologies.
+
+Our extension of EDC DataDashboard functionalities has been made open source and
+will be kept compatible to mostly stock EDCs with minimal API extending
+extensions.
+
+
+
+
+
+
+
+## Getting Started
+
+The fastest way to get started is using our Getting Started Guide:
+[sovity EDC CE Getting Started Guide](https://github.com/sovity/edc-ce#getting-started).
+
+
+
+
+
+## Configuration
+
+A list of all available configuration properties can be found
+[here](src/app/core/config/app-config-properties.ts).
+
+In general, all ENV vars `EDC_UI_*` are written to an `assets/app-config.json`,
+either before starting the angular build server or before starting the nginx to
+serve static files.
+
+### (Optional) Pass a JSON in an ENV Var
+
+The ENV var `EDC_UI_CONFIG_JSON` can be used to pass a JSON that can contain all
+properties that would otherwise need to be specified individually. Individually
+provided ENV vars take precedence, however.
+
+
+
+
+
+## Contributing
+
+Contributions are what make the open source community such an amazing place to
+learn, inspire, and create. Any contributions you make are **greatly
+appreciated**.
+
+If you have a suggestion that would make this better, please fork the repo and
+create a pull request. You can also simply open an issue with the tag
+"enhancement". Don't forget to give the project a star! Thanks again!
+
+1. Fork the Project
+2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
+3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
+4. Push to the Branch (`git push origin feature/AmazingFeature`)
+5. Open a Pull Request
+
+Our contribution guide can be found in [CONTRIBUTING.md](CONTRIBUTING.md).
+
+