Compare commits

..

73 Commits

Author SHA1 Message Date
Lilly Sell
597b8d944f fix: Trigger ums-umc-server restart immediately after first probe failure 2025-06-26 17:04:07 +02:00
Lilly Sell
b8036439d7 fix: Fix probe timings for nubus ums-umc-server 2025-06-26 13:34:26 +02:00
Lilly Sell
b48241dd38 chore: Overwrite nubus liveness probe with password-reset check 2025-06-26 09:54:32 +02:00
Lilly Sell
2fbe43a1f8 chore: Overwrite nubus liveness probe with dummy probe 2025-06-26 09:50:59 +02:00
Niels Lindenthal
3df9342b31 chore(changelog): Fix typo in component name open-xchange 2025-06-18 10:17:15 +02:00
Thorsten Roßner
6baec0b587 chore(reuse): Annotate merge request templates in REUSE.toml 2025-06-16 16:38:48 +02:00
René Fischer
5a3e47ea5d chore(merge_request_templates): Add merge request templates 2025-06-16 14:35:49 +02:00
Thorsten Roßner
74c4cc309d chore(notes): Remove "Beta" label from portal tile 2025-06-16 10:27:17 +02:00
Thorsten Roßner
feaaa81094 chore(release): 1.5.0 [skip ci]
# [1.5.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.4.1...v1.5.0) (2025-06-16)

### Bug Fixes

* **dovecot:** Enable Dovecot ACL for CE (file) & EE (cassandra) ([9354ee7](9354ee7196))
* **notes:** Support templating of Ingress annotations `bodyTimeout` and `bodySize` to allow application defined upload limits to be reached ([69faf77](69faf77d15))
* **nubus:** Create required LDAP objects for `global.additionalMailDomains` ([4dcb683](4dcb683118))
* **nubus:** Explicitly template security context for Keycloak proxy ([e959438](e9594382ed))
* **nubus:** Update CSS for login screen to show login button for federated IdP ([0d4e1b0](0d4e1b01e3))
* **nubus:** Use read-only root filesystem for Keycloak bootstrap ([1edd7c3](1edd7c3f06))
* **open-xchange:** Enabled mail login resolver ([7547f49](7547f4948e))
* **open-xchange:** Update Dovecot CE chart to support ACLs (mailbox sharing) and usernames different from local part of mail address ([87c30ab](87c30ab8e3))
* **open-xchange:** Use login name instead of email between OX and Dovecot ([8e9ef08](8e9ef0867b))
* **openproject:** Update from 16.0.0 to 16.0.1 ([b60f9c7](b60f9c7576))
* **openxchange:** Update App Suite 8.37 to latest patch level (8.37.69) ([bc436b2](bc436b2485))

### Features

* **ci:** Update Helm to 3.18.1 and Helmfile to 1.1.1 ([59a4086](59a40864ed))
* **notes:** Update from 2.4.0 to 3.2.1 ([9f4e3c8](9f4e3c86c7))
* **open-xchange:** Support for `mailAlternativAddress`(es) for sending and receiving emails ([6d6b1a6](6d6b1a6dd7))
* **openproject:** Update from 15.5.1 to 16.0.0 including Helm chart update ([add7266](add72669ae))
2025-06-16 08:03:51 +00:00
Thorsten Roßner
03f414ffaf chore(publiccode.yml): Update version number to 1.5.0 2025-06-16 08:38:18 +02:00
Thorsten Roßner
f773a9371c ci(diff-on-branch): Merge doublette variables block 2025-06-16 08:36:25 +02:00
rweber
69faf77d15 fix(notes): Support templating of Ingress annotations bodyTimeout and bodySize to allow application defined upload limits to be reached 2025-06-16 08:36:25 +02:00
rweber
9f4e3c86c7 feat(notes): Update from 2.4.0 to 3.2.1 2025-06-16 08:36:25 +02:00
Thorsten Roßner
e06642f6b6 ci(diff-on-branch): Update to ensure opendesk-env files are loaded 2025-06-16 08:36:25 +02:00
Thorsten Roßner
0d4e1b01e3 fix(nubus): Update CSS for login screen to show login button for federated IdP 2025-06-16 08:36:25 +02:00
Viktor Pracht
bc436b2485 fix(openxchange): Update App Suite 8.37 to latest patch level (8.37.69) 2025-06-16 08:35:28 +02:00
René Fischer
3b9fd4eb99 docs(README-EE.md): Add link to enterprise_keys.yml.gotmpl 2025-06-16 08:35:28 +02:00
Yannik Schmidt
e9594382ed fix(nubus): Explicitly template security context for Keycloak proxy 2025-06-16 08:35:28 +02:00
Timo Hollwedel
1edd7c3f06 fix(nubus): Use read-only root filesystem for Keycloak bootstrap 2025-06-16 08:35:28 +02:00
Thomas Kaltenbrunner
6d6b1a6dd7 feat(open-xchange): Support for mailAlternativAddress(es) for sending and receiving emails 2025-06-16 08:35:28 +02:00
Christophe Bliard
b60f9c7576 fix(openproject): Update from 16.0.0 to 16.0.1 2025-06-16 08:35:28 +02:00
Thorsten Roßner
4dcb683118 fix(nubus): Create required LDAP objects for global.additionalMailDomains 2025-06-16 08:35:28 +02:00
Thorsten Roßner
bc8028dd93 ci: Add diff-on-branch feature 2025-06-16 08:35:28 +02:00
Thorsten Roßner
e143a9c9d8 chore(helmfile): Bump images of opendesk-element-syncadmins, opendesk-nextcloud-exporter and postfix to current builds using the gitlab-config v2.4.10 to avoid layer mimetype issues when mirroring images 2025-06-16 08:35:28 +02:00
Thomas Kaltenbrunner
9354ee7196 fix(dovecot): Enable Dovecot ACL for CE (file) & EE (cassandra) 2025-06-16 08:35:28 +02:00
Viktor Pracht
8e9ef0867b fix(open-xchange): Use login name instead of email between OX and Dovecot 2025-06-16 08:35:28 +02:00
Thorsten Roßner
87c30ab8e3 fix(open-xchange): Update Dovecot CE chart to support ACLs (mailbox sharing) and usernames different from local part of mail address 2025-06-16 08:35:28 +02:00
Viktor Pracht
7547f4948e fix(open-xchange): Enabled mail login resolver 2025-06-16 08:35:28 +02:00
Viktor Pracht
b608a610fe chore(openxchange): Updated OX App Suite Pro charts only to 8.37 2025-06-16 08:35:09 +02:00
Thorsten Roßner
59a40864ed feat(ci): Update Helm to 3.18.1 and Helmfile to 1.1.1 2025-06-03 07:42:45 +00:00
Markus Kahl
add72669ae feat(openproject): Update from 15.5.1 to 16.0.0 including Helm chart update 2025-06-03 06:49:58 +00:00
Thorsten Roßner
fe510fa679 chore(helmfile): Post release update of global.generated.yaml.gotmpl 2025-06-02 10:10:32 +02:00
Thorsten Roßner
805cdf26ae chore(release): 1.4.1 [skip ci]
## [1.4.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.4.0...v1.4.1) (2025-06-02)

### Bug Fixes

* **nextcloud:** Update NC CE to 30.0.10 ([785be8b](785be8b662))
* **nextcloud:** Update Nextcloud incl. apps to 30.0.10 ([559fbf6](559fbf6801))
* **nubus:** Use `.Values.theme.texts.productName` for Keycloak's `loginTitle` instead of static product name string ([d1a1e5d](d1a1e5dc29))
* **open-xchange:** Re-adding `com.openexchange.oauth.provider.*` to fix central contacts feature ([561e44f](561e44fd4c))
* **open-xchange:** Set `com.openexchange.hostname` to get working links in outgoing system mails (e.g. task assignments) ([0d61687](0d616871e3))
* **postfix:** Require TLSv1.3 ([3b3d8ac](3b3d8aca54))
* **requirements.md:** Helm 3.18.x is not supported due to upstream bug ([1ea9cae](1ea9cae1ce))
2025-06-02 08:01:20 +00:00
Thorsten Roßner
559fbf6801 fix(nextcloud): Update Nextcloud incl. apps to 30.0.10 2025-06-02 07:05:58 +02:00
Thorsten Roßner
561e44fd4c fix(open-xchange): Re-adding com.openexchange.oauth.provider.* to fix central contacts feature 2025-06-02 07:05:58 +02:00
Thomas Kaltenbrunner
0d616871e3 fix(open-xchange): Set com.openexchange.hostname to get working links in outgoing system mails (e.g. task assignments) 2025-06-02 07:05:58 +02:00
Thorsten Roßner
b185fe055c docs(migrations.md): [#188] Update to point out requirement for IdP federation configuration 2025-06-02 07:05:58 +02:00
Thorsten Roßner
d1a1e5dc29 fix(nubus): Use .Values.theme.texts.productName for Keycloak's loginTitle instead of static product name string 2025-06-02 07:05:58 +02:00
Tilman Lüttje
1ea9cae1ce fix(requirements.md): Helm 3.18.x is not supported due to upstream bug 2025-06-02 07:05:52 +02:00
Thomas Kaltenbrunner
3b3d8aca54 fix(postfix): Require TLSv1.3 2025-05-30 17:02:07 +02:00
Tilman Lüttje
785be8b662 fix(nextcloud): Update NC CE to 30.0.10 2025-05-30 17:01:45 +02:00
Dominik Kaminski
6d06e1fcc2 chore(release): 1.4.0 [skip ci]
# [1.4.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.3.2...v1.4.0) (2025-05-20)

### Bug Fixes

* **docs:** Update requirements, bump helmfile to v1.0.0 ([88b29c5](88b29c57e8))
* **dovecot:** Encode object storage password and add more template values ([c40de73](c40de73ccf))
* **nubus:** [[#182](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/issues/182)] Add `KC_TRUSTSTORE_PATHS` to Keycloak when using self-signed certificates ([006aed7](006aed791e))
* **nubus:** [[#183](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/issues/183)] Do not override `nubusPortalConsumer.waitForDependency.image` when using self-signed certificates ([b45a0bf](b45a0bf832))
* **nubus:** Update ArgoCD hook annotations ([f2b1384](f2b1384670))
* **open-xchange:** Update Open-Xchange to v8.36 ([b40b863](b40b8630c1))
* **open-xchange:** Update Open-Xchange to v8.37 ([174c73c](174c73c012))
* **openproject:** Update to 15.5.1 ([e91efa8](e91efa8ecc))
* **openxchange:** Add proper dav URLs in client onboarding and disable unnecessary oauth section ([bba2af0](bba2af0f06))
* **openxchange:** Disable redundant o-x-authentication-oauth package ([1d2b17b](1d2b17b495))
* **openxchange:** Enable DAV support ([709e50f](709e50ff7c))

### Features

* **collabora:** Update enterprise image to 24.04.13.4.1 ([b590810](b5908100dd))
* **helmfile:** Define `global.additionalMailDomains` as list; if you use the setting already, check `migrations.md` for details ([4b30576](4b305768c4))
* **helmfile:** Option to select default file format for weboffice using; see `functional.weboffice.defaultFormat` in `functional.yaml.gotmpl` for details ([5f58a85](5f58a857ac))
* **nubus:** Update nubus to v1.9.1 ([3d694a8](3d694a8248))
2025-05-20 00:46:42 +00:00
Justus Holzberger
b9640d9321 chore(docs): Update links, images and tables in docs 2025-05-20 00:05:43 +02:00
Thomas Kaltenbrunner
c40de73ccf fix(dovecot): Encode object storage password and add more template values 2025-05-20 00:00:55 +02:00
Norbert Tretkowski
3d694a8248 feat(nubus): Update nubus to v1.9.1 2025-05-19 23:57:45 +02:00
renovate
174c73c012 fix(open-xchange): Update Open-Xchange to v8.37 2025-05-19 14:56:20 +02:00
openDesk Bot
b1acec9171 chore(renovate): Update Element 2025-05-19 08:48:00 +00:00
Uta Lemke
2f56a94b2a docs(README-EE.md): Add caution note on XWiki license key format 2025-05-16 13:57:55 +00:00
Tilman Lüttje
b5908100dd feat(collabora): Update enterprise image to 24.04.13.4.1 2025-05-16 09:08:32 +00:00
renovate
cc16bee370 chore(renovate): Update bmi/opendesk/components/supplier/collabora/images/collabora-online-for-opendesk Docker tag to v24.04.14.3.1 2025-05-16 09:08:32 +00:00
Dominik Kaminski
26970483b2 chore(helmfile): Update a bunch of external images 2025-05-15 23:03:33 +02:00
openDesk Bot
f8fa301b6c chore(renovate): Update alpine/k8s Docker tag to v1.33.0 2025-05-15 20:47:42 +02:00
Dominik Kaminski
b40b8630c1 fix(open-xchange): Update Open-Xchange to v8.36 2025-05-15 19:39:01 +02:00
openDesk Bot
9b9726087f chore(renovate): Update Open-Xchange 2025-05-15 15:22:39 +02:00
Dominik Kaminski
88b29c57e8 fix(docs): Update requirements, bump helmfile to v1.0.0 2025-05-15 14:34:34 +02:00
Dominik Kaminski
f2b1384670 fix(nubus): Update ArgoCD hook annotations 2025-05-15 13:39:59 +02:00
openDesk Bot
d916365cb4 chore(renovate): Update collabora-online Docker tag to v1.1.38 2025-05-14 13:29:59 +00:00
Thomas Kaltenbrunner
bba2af0f06 fix(openxchange): Add proper dav URLs in client onboarding and disable unnecessary oauth section 2025-05-13 19:25:47 +02:00
Viktor Pracht
1d2b17b495 fix(openxchange): Disable redundant o-x-authentication-oauth package
Also fixed a typo in oidcPath.
2025-05-13 19:25:47 +02:00
Thomas Kaltenbrunner
709e50ff7c fix(openxchange): Enable DAV support 2025-05-13 19:25:47 +02:00
openDesk Bot
7603bbdc64 chore(renovate): Update library/postgres Docker tag to v16.9 2025-05-10 03:36:39 +00:00
Thomas Kaltenbrunner
4b305768c4 feat(helmfile): Define global.additionalMailDomains as list; if you use the setting already, check migrations.md for details 2025-05-07 18:33:55 +02:00
Thorsten Roßner
91a25f4c18 ci(gitlab): Update gitlab-config image to v2.4.9 2025-05-07 15:02:12 +02:00
Thorsten Roßner
006aed791e fix(nubus): [#182] Add KC_TRUSTSTORE_PATHS to Keycloak when using self-signed certificates 2025-05-07 14:52:35 +02:00
Thorsten Roßner
b45a0bf832 fix(nubus): [#183] Do not override nubusPortalConsumer.waitForDependency.image when using self-signed certificates 2025-05-07 14:03:03 +02:00
Thorsten Roßner
8e638b6714 chore(global.generated.yaml.gotmpl): Bump version to fake a newer release for migrations (testing) 2025-05-07 12:26:49 +02:00
Oliver Günther
e91efa8ecc fix(openproject): Update to 15.5.1 2025-05-07 12:19:21 +02:00
Thorsten Roßner
58b74c7cfd docs(theming.md): Update to latest state 2025-05-07 12:19:21 +02:00
René Fischer
c3417f404c chore(scaling.md): Fix Postgres RAM scaling 2025-05-07 12:19:21 +02:00
René Fischer
799ba97b3c chore(docs): Separate developer from operations docs 2025-05-07 12:19:21 +02:00
Thorsten Roßner
9320274162 docs(misc): Fix typos 2025-05-07 12:19:21 +02:00
Thorsten Roßner
5f58a857ac feat(helmfile): Option to select default file format for weboffice using; see functional.weboffice.defaultFormat in functional.yaml.gotmpl for details 2025-05-07 12:19:21 +02:00
René Fischer
86bfa3e559 chore(publiccode.yaml): Fix logo in publiccode.yaml 2025-05-07 12:19:21 +02:00
49 changed files with 3093 additions and 412 deletions

View File

@@ -4,7 +4,7 @@
---
include:
- project: "${PROJECT_PATH_GITLAB_CONFIG_TOOLING}"
ref: "v2.4.8"
ref: "v2.4.10"
file:
- "ci/common/lint.yml"
- "ci/release-automation/semantic-release.yml"
@@ -182,6 +182,9 @@ variables:
options:
- "yes"
- "no"
DIFF_ON_BRANCH:
description: "Provide a branch to run `helmfile diff` for the specified branch."
value: ""
RUN_TESTS:
description: "Triggers execution of E2E-tests."
value: "no"
@@ -220,6 +223,9 @@ variables:
TESTS_PROJECT_URL:
description: "Project url for e2e-tests (`<domain of gitlab>/api/v4/projects/<id>`)"
value: "gitlab.opencode.de/api/v4/projects/1506"
HELM_IMAGE_PIN:
description: "The Helm image tag/checksum."
value: "1.3.3@sha256:3e195942e6988b8b93c62349700c0ed8428e3a8fbe2655bd7f5378dc88bc8ccb"
# Declare .environments which is in `opendesk-env` repository. In case it is not available
# 'cache' is used because job as a dummy key, as the job is not allowed to be empty.
@@ -232,8 +238,7 @@ variables:
extends: ".environments"
environment:
name: "${NAMESPACE}"
image: "registry.opencode.de/bmi/opendesk/components/platform-development/images/helm:1.3.1\
@sha256:de527f493044f06009045c369be831ababbc8dd74adaa378613c5acb1e654959"
image: "registry.opencode.de/bmi/opendesk/components/platform-development/images/helm:${HELM_IMAGE_PIN}"
script:
- "cd ${CI_PROJECT_DIR}/helmfile/apps/${COMPONENT}"
# MASTER_PASSWORD_WEB_VAR as precedence for MASTER_PASSWORD
@@ -671,6 +676,34 @@ fetch-administrator-credentials:
reports:
dotenv: ".env"
diff-on-branch:
stage: "post-execute"
cache: {}
dependencies: []
extends: ".environments"
environment:
name: "${NAMESPACE}"
image: "registry.opencode.de/bmi/opendesk/components/platform-development/images/helm:${HELM_IMAGE_PIN}"
rules:
- if: "$DIFF_ON_BRANCH"
script:
- |
echo "Downloading branch ${DIFF_ON_BRANCH}"
SAFE_BRANCH_NAME=$(echo "$DIFF_ON_BRANCH" | tr '/' '-')
BASE_URL="https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/archive"
FILE_NAME="opendesk-${SAFE_BRANCH_NAME}.tar.gz"
curl -L "${BASE_URL}/${DIFF_ON_BRANCH}/${FILE_NAME}" -o branch.tar.gz
mkdir ${DIFF_ON_BRANCH_SUBDIRECTORY} && tar -xzf branch.tar.gz -C ${DIFF_ON_BRANCH_SUBDIRECTORY} --strip-components=1
cd ${DIFF_ON_BRANCH_SUBDIRECTORY}
helmfile --namespace ${NAMESPACE} diff | grep -v '^ ' || true
tags:
- "docker"
- "kubernetes"
- "${CLUSTER}"
variables:
HELMFILE_ENVIRONMENT: "dev"
DIFF_ON_BRANCH_SUBDIRECTORY: "diff-on-branch"
import-default-accounts:
stage: "post-execute"
extends: ".environments"

View File

@@ -0,0 +1,81 @@
## 📌 Summary
Brief description of the issue and what this MR resolves.
> Example:
> Fixes a bug where users were unable to save their profile due to a missing field validation.
---
## ✅ Changes
Explain for the reviewer how the change addresses the issue:
- Fixed null check on user input
- Added unit test for edge case
- Updated error handling in the `ProfileService`
---
## 🧪 Analysis
Explain the **underlying cause** of the bug:
- What was the unexpected behavior?
- Why did it happen?
- Where in the code or logic did it occur?
---
## 📚 Related Issue(s)
- Should be listed as part of the commit message.
- Fixes #[issue-number]
- Related to #[optional additional issues]
## 🧪 How to Reproduce & Test
Link to issue or document the required details below.
### Before the Fix:
1. Go to `/profile/edit`
2. Leave the "email" field empty
3. Click "Save"
4. Observe 500 server error
### After the Fix:
1. Same steps as above
2. Now see appropriate validation message
3. No server error occurs
---
## Checklist / Sign-offs
### 💿 CI/CD
- [ ] CI pipeline passes for all jobs
- [ ] Linting and formatting checks pass
- [ ] Review app (if used) reflects fix correctly
### 🖥 QA & Product
Set related labels on the MR for
- [ ] `PO::👀`
- [ ] `Tech Lead::👀`
- [ ] `Testautomation::👀`
- [ ] `QA::👀`
---
## 👷 Developer Checklist
- [ ] Code builds and passes linting
- [ ] Tests added or updated
- [ ] Verified fix locally
- [ ] Regression testing done for related functionality
- [ ] No new warnings or errors in logs

View File

@@ -1,16 +1 @@
<!--
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
SPDX-License-Identifier: Apache-2.0
-->
# Summary
- *describe the reason for/content of the MR*
# Commits
%{all_commits}
# Authors
%{co_authored_by}
Please select one of the templates, in case your contribution contains more than a **simple** typo fix.

View File

@@ -0,0 +1,74 @@
## 📌 Summary
Briefly describe what this feature MR does and why its needed.
> Example:
> Adds user profile editing capabilities to the dashboard. This enables users to update their personal information without admin intervention.*
---
## ✅ Changes
List the key changes made in this MR:
- Added new route /profile/edit
- Created `ProfileEditForm` component
- Integrated with backend API for user updates
- Added unit tests and basic form validation
---
## 🧪 Tests
Provide steps for QA or reviewers to test the feature.
1. Login as any user
2. Navigate to `/profile/edit`
3. Update profile info and save
4. Verify changes are persisted and reflected in the UI
---
## 📚 Related Issue(s)
- Closes #[issue number]
- Depends on #[merge request or issue, if any]
---
## 🕵️ Notes for Reviewer
Mention anything reviewers should be aware of:
- Known issues or limitations
- Code sections that may need special attention
- Design considerations or edge cases handled
---
## Checklist / Sign-offs
### 💿 CI/CD
- [ ] CI pipeline passes for all jobs
- [ ] Linting and formatting checks pass
- [ ] Review app (if used) reflects fix correctly
### 🖥 QA & Product
Set related labels on the MR for
- [ ] `PO::👀`
- [ ] `Tech Lead::👀`
- [ ] `Testautomation::👀`
- [ ] `QA::👀`
---
## 👷 Developer Checklist
- [ ] Code builds and passes linting
- [ ] Tests added or updated
- [ ] Verified fix locally
- [ ] Regression testing done for related functionality
- [ ] No new warnings or errors in logs

View File

@@ -0,0 +1,33 @@
## 📌 Summary
Provide a concise summary of **what** this MR does and **why**.
> Example:
> This MR updates the CI configuration to cache NPM dependencies and reduce pipeline execution time.
---
## ✅ Changes
List the key updates made:
- ...
- ...
---
## 🧪 Tests (if applicable)
Explain how reviewers or CI can verify the change works as intended.
> Example:
>- For CI: Check job `build:frontend` completes in <3 mins.
>- For docs: View rendered markdown locally or in GitLab.
---
## 🧾 Checks
- [ ] CI passes
- [ ] No functional changes
- [ ] Verified (if needed)

View File

@@ -0,0 +1,49 @@
## ⬆️ Application Update
Expected MR Title and git commit message:
`feat/fix(<app-name>): Update from <old-version> to <new-version>`
### 📋 Changelog/Release Notes
- [ ] Upstream release notes: `[link]`
- [ ] No breaking changes (or listed below)
- [ ] Relevant changes communicated (if needed)
---
### 🔄 Migrations to Run (if any)
Describe any migrations that need to be performed when upgrading to this application version.
- [ ] Database migrations
- [ ] Configuration changes
- [ ] Cache clears / rebuilds
- [ ] Other: _describe_
## Checklist / Sign-offs
### 💿 CI/CD
- [ ] CI pipeline passes for all jobs
- [ ] Linting and formatting checks pass
- [ ] Review app (if used) reflects fix correctly
### 🖥 QA & Product
Set related labels on the MR for
- [ ] `PO::👀`
- [ ] `Tech Lead::👀`
- [ ] `Testautomation::👀`
- [ ] `QA::👀`
---
## 👷 Developer Checklist
- [ ] Code builds and passes linting
- [ ] Tests added or updated
- [ ] Verified fix locally
- [ ] Regression testing done for related functionality
- [ ] No new warnings or errors in logs

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Ebene_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 693.25 214.02">
<defs>
<style>
.cls-1 {
fill: #571efa;
}
.cls-2 {
fill: #927afa;
}
</style>
</defs>
<g>
<path class="cls-2" d="M126.14,140.32v2.13c0,8.99-7.31,16.3-16.3,16.3h-38.26c-8.99,0-16.3-7.31-16.3-16.3v-38.26c0-8.99,7.31-16.3,16.3-16.3h2.13v52.44h52.44Z"/>
<path class="cls-1" d="M126.85,127.56h-40.39v-44.65c0-15.24,12.4-27.64,27.64-27.64h12.76c17.58,0,31.89,14.31,31.89,31.89v8.5c0,17.58-14.31,31.89-31.89,31.89ZM104.88,109.13h21.97c7.42,0,13.46-6.04,13.46-13.46v-8.5c0-7.42-6.04-13.46-13.46-13.46h-12.76c-5.08,0-9.21,4.13-9.21,9.21v26.22Z"/>
</g>
<g>
<path d="M210.82,90.76c14.85,0,24.34,10.9,24.34,24.25s-9.49,24.25-24.34,24.25-24.44-10.9-24.44-24.25,9.49-24.25,24.44-24.25ZM210.82,133.34c11.37,0,17.39-8.46,17.39-18.33s-6.02-18.33-17.39-18.33-17.48,8.46-17.48,18.33,6.01,18.33,17.48,18.33Z"/>
<path d="M244.19,91.7h6.96v11.84c3.29-7.8,10.25-12.78,20.4-12.78,13.07,0,21.9,9.87,21.9,24.34s-8.83,24.16-21.9,24.16c-10.34,0-17.2-5.17-20.4-12.78v28.95h-6.96v-63.73ZM269.38,133.34c9.4,0,17.11-5.83,17.11-18.24s-7.71-18.42-17.11-18.42-17.95,6.11-17.95,18.42,8.65,18.24,17.95,18.24Z"/>
<path d="M322.96,90.76c13.35,0,22.28,8.37,22.28,22.65v2.82h-37.5c.28,9.78,5.26,17.29,15.6,17.29,8.55,0,13.54-4.51,15.23-11.47h6.86c-1.97,8.27-7.61,17.2-21.9,17.2-15.13,0-22.46-11.28-22.46-24.91,0-15.04,8.74-23.59,21.9-23.59ZM338.37,110.78c-.66-9.12-6.77-14.29-15.51-14.29-8.18,0-14.29,5.26-15.04,14.29h30.55Z"/>
<path d="M355.01,91.7h6.96v12.97c2.54-8.65,9.12-13.91,19.36-13.91s16.73,6.77,16.73,18.99v28.57h-7.05v-28.01c0-9.68-3.76-13.63-12.03-13.63-10.53,0-17.01,8.84-17.01,21.34v20.3h-6.96v-46.62Z"/>
<path d="M409.81,72.05h24.35c6.89,0,12.97.85,18.24,2.54,5.26,1.69,9.57,4.98,12.92,9.87,3.35,4.89,5.03,11.78,5.03,20.68s-1.68,15.89-5.03,20.77c-3.35,4.89-7.66,8.18-12.92,9.87-5.27,1.69-11.34,2.54-18.24,2.54h-24.35v-66.27ZM434.16,125.07c4.76,0,8.57-.38,11.42-1.13s5.17-2.55,6.96-5.41c1.79-2.85,2.68-7.32,2.68-13.39s-.91-10.46-2.72-13.35c-1.82-2.88-4.14-4.7-6.96-5.45s-6.61-1.13-11.37-1.13h-9.31v39.86h9.31Z"/>
<path d="M480.17,101.33c2.1-3.67,5.01-6.47,8.74-8.41s8.01-2.91,12.83-2.91c7.9,0,14.07,2.1,18.52,6.3,4.45,4.2,6.67,10,6.67,17.39v3.95h-35.53c.25,3.38,1.32,6.03,3.2,7.94,1.88,1.91,4.45,2.87,7.71,2.87,2.82,0,5.15-.59,7-1.79,1.85-1.19,3.02-2.88,3.53-5.08h14.19c-.75,5.26-3.28,9.53-7.57,12.78-4.29,3.26-9.98,4.89-17.06,4.89-5.2,0-9.71-1.05-13.54-3.15-3.82-2.1-6.75-5.03-8.79-8.79-2.04-3.76-3.05-8.08-3.05-12.97s1.05-9.35,3.15-13.02ZM513.02,109.93c-.25-3.01-1.36-5.33-3.34-6.96-1.97-1.63-4.53-2.44-7.66-2.44s-5.56.82-7.47,2.44c-1.91,1.63-2.99,3.95-3.24,6.96h21.71Z"/>
<path d="M539.62,134.65c-4.14-3.07-6.21-7.58-6.21-13.54h14.29c0,2.7.85,4.69,2.54,5.97,1.69,1.29,4.29,1.93,7.8,1.93,2.57,0,4.43-.33,5.59-.99,1.16-.66,1.74-1.71,1.74-3.15,0-1-.34-1.82-1.03-2.44-.69-.63-1.79-1.16-3.29-1.6l-14.48-3.95c-3.2-.81-5.95-2.27-8.27-4.37-2.32-2.1-3.48-5-3.48-8.7,0-4.45,1.83-7.86,5.5-10.25,3.67-2.38,8.79-3.57,15.37-3.57,7.27,0,12.94,1.46,17.01,4.37s6.11,7.13,6.11,12.64h-14.29c0-4.57-2.91-6.86-8.74-6.86-2.07,0-3.7.35-4.89,1.03-1.19.69-1.79,1.6-1.79,2.73,0,1.94,1.72,3.35,5.17,4.23l11.09,2.73c4.32,1.07,7.79,2.71,10.39,4.94,2.6,2.22,3.9,5.34,3.9,9.35,0,4.58-1.83,8.07-5.5,10.48-3.67,2.41-9.1,3.62-16.31,3.62-8.02,0-14.1-1.54-18.24-4.61Z"/>
<path d="M587.56,69.23h14.29v40.04l18.89-18.33h17.48l-23.59,23.03,23.5,24.35h-17.39l-18.89-19.93v19.93h-14.29v-69.09Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -1,3 +1,66 @@
# [1.5.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.4.1...v1.5.0) (2025-06-16)
### Bug Fixes
* **dovecot:** Enable Dovecot ACL for CE (file) & EE (cassandra) ([9354ee7](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/9354ee719628c876c26e91e1b57a4a0cfafedca1))
* **notes:** Support templating of Ingress annotations `bodyTimeout` and `bodySize` to allow application defined upload limits to be reached ([69faf77](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/69faf77d15d1df441eb62c58374620f8035f2596))
* **nubus:** Create required LDAP objects for `global.additionalMailDomains` ([4dcb683](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/4dcb6831189fc9cedb244c3fd7997d57e8a78c5a))
* **nubus:** Explicitly template security context for Keycloak proxy ([e959438](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/e9594382ed7a2469240d62134b34bcf3e5d06a59))
* **nubus:** Update CSS for login screen to show login button for federated IdP ([0d4e1b0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/0d4e1b01e3e82ace7f7438a754235a009036b90d))
* **nubus:** Use read-only root filesystem for Keycloak bootstrap ([1edd7c3](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/1edd7c3f062ec411b8b38f45be9ef22a200b4bea))
* **open-xchange:** Enabled mail login resolver ([7547f49](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/7547f4948ea13357c4cbc3ae69ae4e7210fdf4a2))
* **open-xchange:** Update App Suite 8.37 to latest patch level (8.37.69) ([bc436b2](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/bc436b248525bf76584dd21f735694065bcb67a5))
* **open-xchange:** Update Dovecot CE chart to support ACLs (mailbox sharing) and usernames different from local part of mail address ([87c30ab](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/87c30ab8e32c1b405f6aff8eda5eed5f74d5df0a))
* **open-xchange:** Use login name instead of email between OX and Dovecot ([8e9ef08](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/8e9ef0867beb8381ad4a5f55f2e9d12bd7dbbba2))
* **openproject:** Update from 16.0.0 to 16.0.1 ([b60f9c7](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/b60f9c7576deca327ad36c48ad0b1a7e3e9d3c9c))
### Features
* **ci:** Update Helm to 3.18.1 and Helmfile to 1.1.1 ([59a4086](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/59a40864edbdf9775e0d6003425c3b05b7b7cb15))
* **notes:** Update from 2.4.0 to 3.2.1 ([9f4e3c8](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/9f4e3c86c74ef6c6f618150a7a9d0935fb5ed437))
* **open-xchange:** Support for `mailAlternativAddress`(es) for sending and receiving emails ([6d6b1a6](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/6d6b1a6dd754dcb283fd23f08f9df937f8e08c59))
* **openproject:** Update from 15.5.1 to 16.0.0 including Helm chart update ([add7266](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/add72669aedfcd57b41fe8680f14940ab77f6aef))
## [1.4.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.4.0...v1.4.1) (2025-06-02)
### Bug Fixes
* **nextcloud:** Update NC CE to 30.0.10 ([785be8b](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/785be8b6621305e79acca62250720028b9ca7a30))
* **nextcloud:** Update Nextcloud incl. apps to 30.0.10 ([559fbf6](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/559fbf6801fc785f26f9e6287e0730f86b459a01))
* **nubus:** Use `.Values.theme.texts.productName` for Keycloak's `loginTitle` instead of static product name string ([d1a1e5d](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/d1a1e5dc29ca21fd822abd127406f6859603b9c7))
* **open-xchange:** Re-adding `com.openexchange.oauth.provider.*` to fix central contacts feature ([561e44f](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/561e44fd4cc42089954868da60edbd210b9a2608))
* **open-xchange:** Set `com.openexchange.hostname` to get working links in outgoing system mails (e.g. task assignments) ([0d61687](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/0d616871e3f5114ec429714658500c09af842fe6))
* **postfix:** Require TLSv1.3 ([3b3d8ac](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/3b3d8aca54bdaea055289c993e3f158d93864223))
* **requirements.md:** Helm 3.18.x is not supported due to upstream bug ([1ea9cae](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/1ea9cae1ce46f864dc03d94c1a72956c5f5ba9a9))
# [1.4.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.3.2...v1.4.0) (2025-05-20)
### Bug Fixes
* **docs:** Update requirements, bump helmfile to v1.0.0 ([88b29c5](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/88b29c57e8197f072b9c80019255ee0b7d1188e1))
* **dovecot:** Encode object storage password and add more template values ([c40de73](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/c40de73ccf02bf77df0c3a17c2fccf2e113c4b35))
* **nubus:** [[#182](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/issues/182)] Add `KC_TRUSTSTORE_PATHS` to Keycloak when using self-signed certificates ([006aed7](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/006aed791e5cf58850712e468a15c8abe1ee0973))
* **nubus:** [[#183](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/issues/183)] Do not override `nubusPortalConsumer.waitForDependency.image` when using self-signed certificates ([b45a0bf](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/b45a0bf832506fb60488cd01c9c883b58e1d60b6))
* **nubus:** Update ArgoCD hook annotations ([f2b1384](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/f2b13846700d8a49a066b3343b043dac89d326f5))
* **open-xchange:** Update Open-Xchange to v8.36 ([b40b863](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/b40b8630c1a5ba7452d0461d38b1175fa647226d))
* **open-xchange:** Update Open-Xchange to v8.37 ([174c73c](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/174c73c012e911342644bdcb89d22b35be9baa36))
* **openproject:** Update to 15.5.1 ([e91efa8](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/e91efa8ecc1be9b444092e1a291747bb9f0c00ea))
* **openxchange:** Add proper dav URLs in client onboarding and disable unnecessary oauth section ([bba2af0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/bba2af0f06942bd2063cc7b79f3e39fdb07838f0))
* **openxchange:** Disable redundant o-x-authentication-oauth package ([1d2b17b](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/1d2b17b4951581e1f60d8a7f2402512dc1c1c568))
* **openxchange:** Enable DAV support ([709e50f](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/709e50ff7c020347dad953be7380d08438d3ab69))
### Features
* **collabora:** Update enterprise image to 24.04.13.4.1 ([b590810](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/b5908100ddbd7497f7f858e874bcbf7979480d1b))
* **helmfile:** Define `global.additionalMailDomains` as list; if you use the setting already, check `migrations.md` for details ([4b30576](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/4b305768c444c166e28829ee05631451ba997126))
* **helmfile:** Option to select default file format for weboffice using; see `functional.weboffice.defaultFormat` in `functional.yaml.gotmpl` for details ([5f58a85](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/5f58a857acab38fa7f56e1e14ef0a6f805c7622e))
* **nubus:** Update nubus to v1.9.1 ([3d694a8](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/3d694a8248d5e983ab3e05753326088b375f2d82))
## [1.3.2](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v1.3.1...v1.3.2) (2025-05-06)

View File

@@ -9,7 +9,7 @@ Please read the [project's entire CONTRIBUTING.md](https://gitlab.opencode.de/bm
# How to contribute?
Please also read the [project's workflow documentation](./docs/workflow.md) for more details on standards like commit
Please also read the [project's workflow documentation](./docs/developer/workflow.md) for more details on standards like commit
messages and branching convention.
## Helm vs. Operators vs. Manifests

View File

@@ -25,7 +25,7 @@ openDesk Enterprise Edition is recommended for production use. It receives suppo
This document refers to the openDesk Community Edition as "oD CE" and the openDesk Enterprise Edition as "oD EE".
Please contact [ZenDiS](mailto:opendesk@zendis.de) to get openDesk Enterprise, either as a SaaS offering or for you on-premise installation.
Please contact [ZenDiS](mailto:opendesk@zendis.de) to get openDesk Enterprise, either as a SaaS offering or for your on-premises installation.
# Enabling the Enterprise deployment
@@ -86,7 +86,7 @@ repositories:
## License keys
Some applications require license information for their Enterprise features to be enabled. With the aforementioned registry credentials you will also receive a file called `enterprise.yaml` containing the relevant license keys.
Some applications require license information for their Enterprise features to be enabled. With the aforementioned registry credentials you will also receive a file called [`enterprise.yaml`](./helmfile/environments/default/enterprise_keys.yaml.gotmpl) containing the relevant license keys.
Please place the file next your other `.yaml.gotmpl` file(s) that configure your deployment.
@@ -94,7 +94,7 @@ Details regarding the scope/limitation of the component's licenses:
- Nextcloud: Enterprise license to enable [Nextcloud Enterprise](https://nextcloud.com/de/enterprise/) specific features, can be used across multiple installations until the licensed number of users is reached.
- OpenProject: Domain specific enterprise license to enable [OpenProject's Enterprise feature set](https://www.openproject.org/enterprise-edition/), domain matching can use regular expressions.
- XWiki: Deployment specific enterprise license (key pair) to activate the [XWiki Pro](https://xwiki.com/en/offerings/products/xwiki-pro) apps.
- XWiki: Deployment specific enterprise license (key pair) to activate the [XWiki Pro](https://xwiki.com/en/offerings/products/xwiki-pro) apps. *Caution! XWiki needs these license keys as one-line strings. Multi-line strings result in installation failure*
# Component overview

View File

@@ -35,13 +35,13 @@ openDesk currently features the following functional main components:
| Function | Functional Component | Component<br/>Version | Upstream Documentation |
|----------------------|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|
| Chat & collaboration | Element ft. Nordeck widgets | [1.11.89](https://github.com/element-hq/element-desktop/releases/tag/v1.11.89) | [For the most recent release](https://element.io/user-guide) |
| Collaborative notes | Notes (aka Docs) | [2.4.0](https://github.com/suitenumerique/docs/releases/tag/v2.4.0) | Online documentation/welcome document available in installed application |
| Collaborative notes | Notes (aka Docs) | [3.2.1](https://github.com/suitenumerique/docs/releases/tag/v3.2.1) | Online documentation/welcome document available in installed application |
| Diagram editor | CryptPad ft. diagrams.net | [2024.9.0](https://github.com/cryptpad/cryptpad/releases/tag/2024.9.0) | [For the most recent release](https://docs.cryptpad.org/en/) |
| File management | Nextcloud | [30.0.6](https://nextcloud.com/de/changelog/#30-0-6) | [Nextcloud 30](https://docs.nextcloud.com/) |
| Groupware | OX App Suite | [8.35](https://documentation.open-xchange.com/appsuite/releases/8.35/) | Online documentation available from within the installed application; [Additional resources](https://documentation.open-xchange.com/) |
| File management | Nextcloud | [30.0.10](https://nextcloud.com/de/changelog/#30-0-10) | [Nextcloud 30](https://docs.nextcloud.com/) |
| Groupware | OX App Suite | [8.37](https://documentation.open-xchange.com/appsuite/releases/8.37/) | Online documentation available from within the installed application; [Additional resources](https://documentation.open-xchange.com/) |
| Knowledge management | XWiki | [16.10.5](https://www.xwiki.org/xwiki/bin/view/ReleaseNotes/Data/XWiki/16.10.5/) | [For the most recent release](https://www.xwiki.org/xwiki/bin/view/Documentation) |
| Portal & IAM | Nubus | [1.8.0](https://docs.software-univention.de/nubus-kubernetes-release-notes/latest/en/changelog.html#version-1-8-0-2025-04-07) | [Univention's documentation website](https://docs.software-univention.de/n/en/nubus.html) |
| Project management | OpenProject | [15.5.0](https://www.openproject.org/docs/release-notes/15-5-0/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) |
| Portal & IAM | Nubus | [1.9.1](https://docs.software-univention.de/nubus-kubernetes-release-notes/latest/en/changelog.html#version-1-9-1-2025-05-07) | [Univention's documentation website](https://docs.software-univention.de/n/en/nubus.html) |
| Project management | OpenProject | [16.0.1](https://www.openproject.org/docs/release-notes/16-0-1/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) |
| Videoconferencing | Jitsi | [2.0.9955](https://github.com/jitsi/jitsi-meet/releases/tag/stable%2Fjitsi-meet_9955) | [For the most recent release](https://jitsi.github.io/handbook/docs/category/user-guide/) |
| Weboffice | Collabora | [24.04.13](https://www.collaboraoffice.com/code-24-04-release-notes/) | Online documentation available from within the installed application; [Additional resources](https://sdk.collaboraonline.com/) |
@@ -104,7 +104,7 @@ in the files from the release's git-tag:
- `./helmfile/environments/default/images.yaml.gotmpl`
- `./helmfile/environments/default/charts.yaml.gotmpl`
Find more information in our [Workflow documentation](./docs/workflow.md).
Find more information in our [Workflow documentation](./docs/developer/workflow.md).
# Data Storage
@@ -123,7 +123,7 @@ If you want to address other topics, please check the section
# Development
If you want to join or contribute to the development of openDesk please read the [Development guide](./docs/development.md).
If you want to join or contribute to the development of openDesk please read the [Development guide](./docs/developer/development.md).
# License

View File

@@ -23,7 +23,17 @@ path = "docs/architecture/apis_images/*"
SPDX-FileCopyrightText = "2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH"
SPDX-License-Identifier = "Apache-2.0"
[[annotations]]
path = ".opencode/openDesk-logo-rgb-color.svg"
SPDX-FileCopyrightText = "2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH"
SPDX-License-Identifier = "CC-BY-SA-4.0"
[[annotations]]
path = ".opencode/screenshots/*"
SPDX-FileCopyrightText = "2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH"
SPDX-License-Identifier = "CC-BY-SA-4.0"
[[annotations]]
path = ".gitlab/merge_request_templates/*.md"
SPDX-FileCopyrightText = "2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH"
SPDX-License-Identifier = "Apache-2.0"

View File

@@ -16,9 +16,9 @@ This chapter presents APIs available in openDesk, grouped by application.
* [UDM Simple API](#udm-simple-api)
* [UDM REST API](#udm-rest-api)
* [UCR Python API](#ucr-python-api)
* [LDAP](#ldap)
* [Nubus Provisioning Service (**TBD**)](#nubus-provisioning-service-tbd)
* [Nubus Authorization Service (**TBD**)](#nubus-authorization-service-tbd)
* [Identity Store and Directory Service (LDAP)](#identity-store-and-directory-service-ldap)
* [Nubus Provisioning Service](#nubus-provisioning-service)
* [Nubus Authorization Service](#nubus-authorization-service)
* [Groupware - OX AppSuite / OX Dovecot](#groupware---ox-appsuite--ox-dovecot)
* [Usage of APIs within openDesk](#usage-of-apis-within-opendesk)
* [HTTP API](#http-api)
@@ -65,11 +65,13 @@ This chapter presents APIs available in openDesk, grouped by application.
# IAM - Nubus
![High-level architecture of Univention part withAPIs/interfaces highlighted](./apis_images/IAM-overview.png)
![Overview of functional components in Univention Nubus for Kubernetes](./apis_images/IAM-overview_functional_components_structured.svg)
[Source](https://docs.software-univention.de/nubus-kubernetes-architecture/latest/en/overview/components.html#overview-components-fig)
## UMC Python API
![Composition of UMC component with APIs highlighted](./apis_images/IAM-umc-architecture.png)
[Source](https://docs.software-univention.de/developer-reference/latest/en/umc/architecture.html#umc-api)
| Name | UMC Python API |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -88,20 +90,20 @@ This chapter presents APIs available in openDesk, grouped by application.
## UMC store API
| Name | UMC store API (also named UMC JavaScript API or Dojo/UMC JavaScript API) |
| ------------------------------ |----------------------------------------------------------------------------------------------------------|
| Purpose | Encapsulate and ease the access to JavaScript module data |
| Versioning | |
| Authentication | |
| In openDesk provided by | Nubus UMC |
| Transport protocol | |
| Usage within component | |
| Usage within openDesk | |
| Usage for external integration | |
| Parallel access | Allowed |
| Message protocol | |
| Supported standards | |
| Documentation | https://docs.software-univention.de/developer-reference/5.0/en/umc/local-system-module.html#umc-store-api |
| Name | UMC store API (also named UMC JavaScript API or Dojo/UMC JavaScript API) |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------- |
| Purpose | Encapsulate and ease the access to JavaScript module data |
| Versioning | |
| Authentication | |
| In openDesk provided by | Nubus UMC |
| Transport protocol | |
| Usage within component | |
| Usage within openDesk | |
| Usage for external integration | |
| Parallel access | Allowed |
| Message protocol | |
| Supported standards | |
| Documentation | https://docs.software-univention.de/developer-reference/latest/en/umc/local-system-module.html#umc-store-api |
## IntercomService (ICS) API
@@ -113,7 +115,7 @@ This chapter presents APIs available in openDesk, grouped by application.
| In openDesk provided by | Nubus UMC |
| Transport protocol | HTTP(S) |
| Usage within component | |
| Usage within openDesk | The ICS implements the BFF pattern for various openDesk inter-component integrations, see [components.md](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/develop/docs/components.md#component-integration) |
| Usage within openDesk | The ICS implements the BFF pattern for various openDesk inter-component integrations, see [components.md](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/develop/docs/components.md#component-integration) |
| Usage for external integration | |
| Parallel access | Allowed |
| Message protocol | Depends on the integration use case. |
@@ -135,28 +137,29 @@ This chapter presents APIs available in openDesk, grouped by application.
| Parallel access | Allowed |
| Message protocol | Depends on the integration use case. |
| Supported standards | |
| Documentation | https://docs.software-univention.de/developer-reference/5.0/en/listener/api.html |
| Documentation | https://docs.software-univention.de/developer-reference/latest/en/listener/api.html |
More details on the Nubus provisioning service can be found here: https://docs.software-univention.de/nubus-kubernetes-architecture/0.5/en/components/provisioning-service.html
More details on the Nubus provisioning service can be found here: https://docs.software-univention.de/nubus-kubernetes-architecture/latest/en/components/provisioning-service.html
## UDM Simple API
![Composition of UMC component with APIs highlighted](./apis_images/IAM-udm.png)
![Architecture of UDM](./apis_images/IAM-udm-architecture.svg)
[Source](https://docs.software-univention.de/architecture/latest/en/services/udm.html#architecture-model-udm)
| Name | UDM Simple API |
| ------------------------------ |-------------------------------------------------------------------|
| Purpose | Allows use of capability and objects directly in Python programs. |
| Versioning | |
| Authentication | |
| In openDesk provided by | Univention Directory Manager |
| Transport protocol | |
| Usage within component | |
| Usage within openDesk | |
| Usage for external integration | |
| Parallel access | Allowed |
| Message protocol | Depends on the integration use case. |
| Supported standards | |
| Documentation | |
| Name | UDM Simple API |
| ------------------------------ | ------------------------------------------------------------------- |
| Purpose | Allows use of capability and objects directly in Python programs. |
| Versioning | |
| Authentication | |
| In openDesk provided by | Univention Directory Manager |
| Transport protocol | |
| Usage within component | Allows to use UDM capability and objects directly in Python programs. UDM Simple API provides Python modules and classes below `univention.udm.*` |
| Usage within openDesk | |
| Usage for external integration | |
| Parallel access | Allowed |
| Message protocol | Depends on the integration use case. |
| Supported standards | |
| Documentation | https://docs.software-univention.de/ucs-python-api/univention.udm.html#module-univention.udm. |
## UDM REST API
@@ -166,58 +169,72 @@ More details on the Nubus provisioning service can be found here: https://docs.s
| Versioning | |
| Authentication | Basic Auth |
| In openDesk provided by | Univention Directory Manager |
| Transport protocol | HTTP(S) |
| Transport protocol | HTTP() |
| Usage within component | The Nubus bootstrapping process makes use of the API. |
| Usage within openDesk | |
| Usage for external integration | The [openDesk User Importer](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/images/user-import) utilizes the API. |
| Parallel access | Allowed |
| Message protocol | Depends on the integration use case. |
| Supported standards | |
| Documentation | https://docs.software-univention.de/developer-reference/5.0/en/udm/rest-api.html |
| Documentation | https://docs.software-univention.de/nubus-kubernetes-customization/latest/en/api/udm-rest.html |
## UCR Python API
![Composition of UCR component with APIs/interfaces highlighted](./apis_images/IAM-ucr.png)
![Architecture overview of UCR](./apis_images/IAM-ucr-architecture.svg)
[Source](https://docs.software-univention.de/architecture/latest/en/services/ucr.html#services-ucr-architecture-model)
| Name | UCR Python API |
| ------------------------------ | --------------------------------------------------------------------------------------------------- |
| Purpose | Offers a programming interface for components and other Python programs. |
| Versioning | |
| Authentication | |
| In openDesk provided by | Nubus |
| Transport protocol | |
| Usage within component | The Nubus bootstrapping process makes use of the API. |
| Usage within openDesk | |
| Usage for external integration | |
| Parallel access | Allowed |
| Message protocol | |
| Supported standards | |
| Documentation | https://docs.software-univention.de/developer-reference/5.0/en/ucr/usage.html#using-ucr-from-python |
| Name | UCR Python API |
| ------------------------------ | --------------------------------------------------------------------------------------------------- |
| Purpose | Offers a programming interface for components and other Python programs. |
| Versioning | |
| Authentication | |
| In openDesk provided by | Nubus |
| Transport protocol | |
| Usage within component | The Nubus bootstrapping process makes use of the API. |
| Usage within openDesk | |
| Usage for external integration | |
| Parallel access | Allowed |
| Message protocol | |
| Supported standards | |
| Documentation | https://docs.software-univention.de/developer-reference/latest/en/ucr/usage.html#using-ucr-from-python |
## LDAP
## Identity Store and Directory Service (LDAP)
| Name | LDAP |
| ------------------------------ |-------------------------------------------------------------------------------------------------------------------------|
| Purpose | Read access to Nubus LDAP |
| Versioning | n/a |
| Authentication | LDAP user auth |
| In openDesk provided by | Nubus openLDAP |
| Transport protocol | LDAP |
| Usage within component | Data backend for Nubus |
| Usage within openDesk | Used by multiple applications to access user/group data, e.g. Nextcloud Server, OpenProject, OX AppSuite backend, XWiki |
| Usage for external integration | Not recommended |
| Parallel access | Allowed |
| Message protocol | LDAP |
| Supported standards | LDAP |
| Documentation | https://docs.software-univention.de/manual/5.0/en/domain-ldap/ldap-directory.html |
![Overview of the Identity Store and Directory Service](./apis_images/IAM-functional_component_identity_store.svg)
[Source](https://docs.software-univention.de/nubus-kubernetes-architecture/latest/en/components/identity-store.html#component-identity-store-figure)
## Nubus Provisioning Service (**TBD**)
| Name | Identity Store and Directory Service (LDAP) |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
| Purpose | Read access to Nubus LDAP |
| Versioning | n/a |
| Authentication | LDAP user auth |
| In openDesk provided by | Nubus openLDAP |
| Transport protocol | LDAP |
| Usage within component | Data backend for Nubus |
| Usage within openDesk | Used by multiple applications to access user/group data, e.g. Nextcloud Server, OpenProject, OX AppSuite backend, XWiki |
| Usage for external integration | Not recommended |
| Parallel access | Allowed |
| Message protocol | LDAP |
| Supported standards | LDAP |
| Documentation | https://docs.software-univention.de/nubus-kubernetes-architecture/latest/en/components/identity-store.html#component-identity-store-directory-service |
To be delivered.
## Nubus Provisioning Service
## Nubus Authorization Service (**TBD**)
![Overview of the Provisioning Service and its components](./apis_images/IAM-functional_component_provisioning_service_complete.svg)
[Source](https://docs.software-univention.de/nubus-kubernetes-architecture/latest/en/components/provisioning-service.html#component-provisioning-service-complete-figure)
To be delivered.
| Name | Nubus Proisioning Service |
| ------------- | --------------------------------------------------------------------------------------------------- |
| Documentation | https://docs.software-univention.de/nubus-kubernetes-architecture/latest/en/components/provisioning-service.html |
## Nubus Authorization Service
![ArchiMate view of the interfaces and protocols of the Authorization Service](./apis_images/IAM-interfaces_authorization_service.svg)
[Source](https://docs.software-univention.de/nubus-kubernetes-architecture/latest/en/overview/interfaces-protocols.html#authorization-service)
| Name | Nubus Authorization Service |
| ------------- | --------------------------------------------------------------------------------------------------- |
| Documentation | https://docs.software-univention.de/nubus-kubernetes-architecture/latest/en/overview/interfaces-protocols.html#authorization-service |
# Groupware - OX AppSuite / OX Dovecot

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 189 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 411 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 186 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 143 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 118 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 80 KiB

View File

@@ -60,7 +60,7 @@ Before you investigate any app-specific configuration, it is recommended that yo
The `main` branch is configured to be the default branch, as visitors to the project on openCode should see that
branch by default.
Please use the `develop` branch to diverge your branch(es) from. See the [workflow guide](./docs/workflow.md)
Please use the `develop` branch to diverge your branch(es) from. See the [workflow guide](./docs/developer/workflow.md)
for more details on naming conventions.
# External artifacts - `charts.yaml.gotmpl` and `images.yaml.gotmpl`

View File

@@ -238,7 +238,7 @@ The Standard Quality Gate addresses quality assurance steps that should be execu
1. Linting
- Blocking
- Licensing: [reuse](https://github.com/fsfe/reuse-tool)
- openDesk specific: Especially `images.yaml.gotmpl` and `charts.yaml.gotmpl`, find more details in [development.md](./docs/development.md).
- openDesk specific: Especially `images.yaml.gotmpl` and `charts.yaml.gotmpl`, find more details in [development.md](./docs/developer/development.md).
- Non-Blocking
- Security: [Kyverno policy check](../.kyverno) addressing some IT-Grundschutz requirements
- Formal: Yaml

View File

@@ -22,7 +22,7 @@ SPDX-License-Identifier: Apache-2.0
Most organizations already have an Identity and Access Management (IAM) system with an identity provider (IdP) for single sign-on (SSO) to internal or external web applications.
This document explains how to configure your organization's IdP and the openDesk IdP to support account federation with openDesk SSO based on your organization's login.
This document helps in setting up your organization's IdP and openDesk to enable IdP federation.
# References
@@ -33,7 +33,7 @@ We would like to list successful IdP federation scenarios:
| [EU Login](https://webgate.ec.europa.eu/cas/userdata/myAccount.cgi) | v0.9.0, v1.2.0 |
| [ProConnect](https://www.proconnect.gouv.fr/) | v0.9.0 |
>If you have successfully federated using another External IdP, please let us know so we can update the list above.
> If you have successfully federated using another External IdP, please let us know so we can update the list above.
# Prerequisites
@@ -70,6 +70,23 @@ This document focuses on the OIDC federation between an external IdP and the ope
# Example configuration
The following section explains how to configure the IdP federation manually in an example upstream IdP and in openDesk.
With openDesk 1.4.0 IdP federation has to be enabled as part of the deployment using the `functional.authentication.ssoFederation` section, see [`functional.yaml.gotmpl`](../../helmfile/environments/default/functional.yaml.gotmpl) for reference.
You can use the description below to configure and test the federation that can be exported and used as part of the deployment afterwards, e.g. with the following commands from within the Keycloak Pod:
```shell
# Set the variables according to your deployment first, below are just example values.
export FEDERATION_IDP_ALIAS=sso-federation-idp
export NAMESPACE=example_namespace
export CLUSTER_NETWORKING_DOMAIN=svc.cluster.local
# Authenticate with Keycloak
/opt/keycloak/bin/kcadm.sh config credentials --server http://ums-keycloak.${NAMESPACE}.${CLUSTER_NETWORKING_DOMAIN}:8080 --realm master --user ${KEYCLOAK_ADMIN} --password ${KEYCLOAK_ADMIN_PASSWORD}
# Request details of IdP configuration
/opt/keycloak/bin/kcadm.sh get identity-provider/instances/${FEDERATION_IDP_ALIAS} -r opendesk
```
## Versions
The example was tested with openDesk v0.7.0 using its integrated Keycloak v24.0.3. As external IdP, we also used an openDesk deployment of the same version, but created a separate realm for proper configuration separation.

View File

@@ -70,6 +70,10 @@ For your convenience, we recommend creating a `*.domain.tld` A-Record for your c
| domain.tld | TXT | `v=spf1 +a +mx +a:mail.domain.tld ~all` | Optional, use proper MTA record if present |
| _dmarc.domain.tld | TXT | `v=DMARC1; p=quarantine` | Optional |
| default._domainkey.domain.tld | TXT | `v=DKIM1; k=rsa; h=sha256; ...` | Optional, DKIM settings |
| _caldavs._tcp.domain.tld | SRV | 10 1 443 dav.domain.tld. | Optional, CalDav auto discovery |
| _caldav._tcp.domain.tld | SRV | 10 1 80 dav.domain.tld. | Optional, CalDav auto discovery |
| _carddavs._tcp.domain.tld | SRV | 10 1 443 dav.domain.tld. | Optional, CardDav auto discovery |
| _carddav._tcp.domain.tld | SRV | 10 1 80 dav.domain.tld. | Optional, CardDav auto discovery |
## Domain
@@ -182,7 +186,7 @@ global:
Some apps, like Jitsi and Dovecot, require HTTP and external TCP connections.
These apps create a Kubernetes service object.
You can configure whether `NodePort` (for on-premise), `LoadBalancer` (for cloud), or `ClusterIP` (to disable) should be
You can configure whether `NodePort` (for on-premises), `LoadBalancer` (for cloud), or `ClusterIP` (to disable) should be
used:
```yaml

View File

@@ -9,19 +9,23 @@ SPDX-License-Identifier: Apache-2.0
* [Disclaimer](#disclaimer)
* [Automated migrations - Overview and mandatory upgrade path](#automated-migrations---overview-and-mandatory-upgrade-path)
* [Manual checks/actions](#manual-checksactions)
* [From v1.1.2](#from-v112)
* [Pre-upgrade from v1.1.2](#pre-upgrade-from-v112)
* [v1.4.0+](#v140)
* [Pre-upgrade to v1.4.0+](#pre-upgrade-to-v140)
* [Helmfile new feature: `functional.authentication.ssoFederation`](#helmfile-new-feature-functionalauthenticationssofederation)
* [Helmfile cleanup: `global.additionalMailDomains` as list](#helmfile-cleanup-globaladditionalmaildomains-as-list)
* [v1.2.0+](#v120)
* [Pre-upgrade to v1.2.0+](#pre-upgrade-to-v120)
* [Helmfile cleanup: Do not configure OX provisioning when no OX installed](#helmfile-cleanup-do-not-configure-ox-provisioning-when-no-ox-installed)
* [Helmfile new default: PostgreSQL for XWiki and Nextcloud](#helmfile-new-default-postgresql-for-xwiki-and-nextcloud)
* [From v1.1.1](#from-v111)
* [Pre-upgrade from v1.1.1](#pre-upgrade-from-v111)
* [v1.1.2+](#v112)
* [Pre-upgrade to v1.1.2+](#pre-upgrade-to-v112)
* [Helmfile feature update: App settings wrapped in `apps.` element](#helmfile-feature-update-app-settings-wrapped-in-apps-element)
* [From v1.1.0](#from-v110)
* [Pre-upgrade from v1.1.0](#pre-upgrade-from-v110)
* [v1.1.1+](#v111)
* [Pre-upgrade to v1.1.1](#pre-upgrade-to-v111)
* [Helmfile feature update: Component specific `storageClassName`](#helmfile-feature-update-component-specific-storageclassname)
* [Helmfile new secret: `secrets.nubus.masterpassword`](#helmfile-new-secret-secretsnubusmasterpassword)
* [From v1.0.0](#from-v100)
* [Pre-upgrade from v1.0.0](#pre-upgrade-from-v100)
* [v1.1.0+](#v110)
* [Pre-upgrade to v1.1.0](#pre-upgrade-to-v110)
* [Helmfile cleanup: Restructured `/helmfile/files/theme` folder](#helmfile-cleanup-restructured-helmfilefilestheme-folder)
* [Helmfile cleanup: Consistent use of `*.yaml.gotmpl`](#helmfile-cleanup-consistent-use-of-yamlgotmpl)
* [Helmfile cleanup: Prefixing certain app directories with `opendesk-`](#helmfile-cleanup-prefixing-certain-app-directories-with-opendesk-)
@@ -31,10 +35,10 @@ SPDX-License-Identifier: Apache-2.0
* [openDesk defaults (new): Enforce login](#opendesk-defaults-new-enforce-login)
* [openDesk defaults (changed): Jitsi room history enabled](#opendesk-defaults-changed-jitsi-room-history-enabled)
* [External requirements: Redis 7.4](#external-requirements-redis-74)
* [Post-upgrade from v1.0.0](#post-upgrade-from-v100)
* [Post-upgrade to v1.1.0+](#post-upgrade-to-v110)
* [XWiki fix-ups](#xwiki-fix-ups)
* [From v0.9.0](#from-v090)
* [Pre-upgrade from v0.9.0](#pre-upgrade-from-v090)
* [v1.1.0](#v110-1)
* [Pre-upgrade to v1.1.0](#pre-upgrade-to-v110-1)
* [Configuration Cleanup: Removal of unnecessary OX-Profiles in Nubus](#configuration-cleanup-removal-of-unnecessary-ox-profiles-in-nubus)
* [Configuration Cleanup: Updated `global.imagePullSecrets`](#configuration-cleanup-updated-globalimagepullsecrets)
* [Changed openDesk defaults: Matrix presence status disabled](#changed-opendesk-defaults-matrix-presence-status-disabled)
@@ -42,20 +46,20 @@ SPDX-License-Identifier: Apache-2.0
* [Changed openDesk defaults: File-share configurability](#changed-opendesk-defaults-file-share-configurability)
* [Changed openDesk defaults: Updated default subdomains in `global.hosts`](#changed-opendesk-defaults-updated-default-subdomains-in-globalhosts)
* [Changed openDesk defaults: Dedicated group for access to the UDM REST API](#changed-opendesk-defaults-dedicated-group-for-access-to-the-udm-rest-api)
* [Post-upgrade from v0.9.0](#post-upgrade-from-v090)
* [Post-upgrade to v1.0.0+](#post-upgrade-to-v100)
* [Configuration Improvement: Separate user permission for using Video Conference component](#configuration-improvement-separate-user-permission-for-using-video-conference-component)
* [Optional Cleanup](#optional-cleanup)
* [From v0.8.1](#from-v081)
* [Pre-upgrade from v0.8.1](#pre-upgrade-from-v081)
* [v0.9.0](#v090)
* [Pre-upgrade to v0.9.0](#pre-upgrade-to-v090)
* [Updated `cluster.networking.cidr`](#updated-clusternetworkingcidr)
* [Updated customizable template attributes](#updated-customizable-template-attributes)
* [`migrations` S3 bucket](#migrations-s3-bucket)
* [Automated migrations - Details](#automated-migrations---details)
* [From v1.1.2 (automated)](#from-v112-automated)
* [v1.2.0+ (automated)](#v120-automated)
* [migrations-pre](#migrations-pre)
* [migrations-post](#migrations-post)
* [From v1.0.0 (automated)](#from-v100-automated)
* [From v0.9.0 (automated)](#from-v090-automated)
* [v1.1.0+ (automated)](#v110-automated)
* [v1.0.0+ (automated)](#v100-automated)
* [Related components and artifacts](#related-components-and-artifacts)
* [Development](#development)
<!-- TOC -->
@@ -84,7 +88,7 @@ To upgrade existing deployments, you cannot skip any version mentioned in the co
| Mandatory version |
| ----------------- |
| v1.2+ |
<!--| v1.2+ | add the entry to the table as soon as we get new migration requiring the set version (range) to be deployed first -->
| v1.1.x |
| v1.0.0 |
| v0.9.0 |
@@ -97,11 +101,41 @@ If you would like more details about the automated migrations, please read secti
# Manual checks/actions
Be sure you check all the sections for the releases you are going to update your current deployment from.
## v1.4.0+
## From v1.1.2
### Pre-upgrade to v1.4.0+
### Pre-upgrade from v1.1.2
#### Helmfile new feature: `functional.authentication.ssoFederation`
**Target group:** Deployments that make use of IdP federation as described in [`idp-federation.md`](./enhanced-configuration/idp-federation.md).
Please ensure to configure your IdP federation config details as part of `functional.authentication.ssoFederation`. You can find more details in the "Example configuration" section of [`idp-federation.md`](./enhanced-configuration/idp-federation.md).
#### Helmfile cleanup: `global.additionalMailDomains` as list
**Target group:** Installations that have set `global.additionalMailDomains`.
The `additionalMailDomains` had to be defined as a comma separated string. That now needs to change into a list of domains.
For example the following config:
```yaml
global:
additionalMailDomains: "sub1.maildomain.de,sub2.maildomain.de"
```
Needs to change to:
```yaml
global:
additionalMailDomains:
- "sub1.maildomain.de"
- "sub2.maildomain.de"
```
## v1.2.0+
### Pre-upgrade to v1.2.0+
#### Helmfile cleanup: Do not configure OX provisioning when no OX installed
@@ -111,7 +145,7 @@ With openDesk 1.2.0 the OX provisioning consumer will not be registered when the
We do not remove the consumer for existing installations, if you want to do that for your existing installation please perform the following steps:
```
```shell
export NAMESPACE=<your_namespace>
kubectl -n ${NAMESPACE} exec -it ums-provisioning-nats-0 -c nats-box -- sh -c 'nats consumer rm stream:ox-connector durable_name:ox-connector --user=admin --password=${NATS_PASSWORD} --force'
kubectl -n ${NAMESPACE} exec -it ums-provisioning-nats-0 -c nats-box -- sh -c 'nats stream rm stream:ox-connector --user=admin --password=${NATS_PASSWORD} --force'
@@ -162,9 +196,9 @@ In case you are planning to migrate an existing instance from MariaDB to Postgre
- https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Backup#HUsingtheXWikiExportfeature
- https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/ImportExport
## From v1.1.1
## v1.1.2+
### Pre-upgrade from v1.1.1
### Pre-upgrade to v1.1.2+
#### Helmfile feature update: App settings wrapped in `apps.` element
@@ -176,7 +210,7 @@ If you have a deployment where you specify settings found in the aforementioned
The following configuration:
```
```yaml
certificates:
enabled: false
notes:
@@ -185,7 +219,7 @@ notes:
Needs to be changed to:
```
```yaml
apps:
certificates:
enabled: false
@@ -193,9 +227,9 @@ apps:
enabled: true
```
## From v1.1.0
## v1.1.1+
### Pre-upgrade from v1.1.0
### Pre-upgrade to v1.1.1
#### Helmfile feature update: Component specific `storageClassName`
@@ -248,9 +282,9 @@ persistence:
A not yet templated secret was discovered in the Nubus deployment. It is now declared in [`secrets.yaml.gotmpl`](../helmfile/environments/default/theme.yaml.gotmpl) and can be defined using: `secrets.nubus.masterpassword`. If you define your own secrets, please be sure this new secret is set to the same value as the `MASTER_PASSWORD` environment variable used in your deployment.
## From v1.0.0
## v1.1.0+
### Pre-upgrade from v1.0.0
### Pre-upgrade to v1.1.0
#### Helmfile cleanup: Restructured `/helmfile/files/theme` folder
@@ -413,7 +447,7 @@ The update from openDesk v1.0.0 contains Redis 7.4.1, like the other openDesk bu
Please ensure the Redis you are using is updated to at least version 7.4 to support the requirement of OX App Suite.
### Post-upgrade from v1.0.0
### Post-upgrade to v1.1.0+
#### XWiki fix-ups
@@ -439,9 +473,9 @@ Unfortunately XWiki does not upgrade itself as expected. The bug has been report
You should have now a fully functional XWiki instance with single sign-on and full-text search.
## From v0.9.0
## v1.1.0
### Pre-upgrade from v0.9.0
### Pre-upgrade to v1.1.0
#### Configuration Cleanup: Removal of unnecessary OX-Profiles in Nubus
@@ -623,7 +657,7 @@ The IAM admin account `Administrator` is the only member of this group by defaul
If you need other accounts to use the API, please assign them to the aforementioned group.
### Post-upgrade from v0.9.0
### Post-upgrade to v1.0.0+
#### Configuration Improvement: Separate user permission for using Video Conference component
@@ -653,9 +687,9 @@ kubectl -n ${NAMESPACE} delete pvc shared-run-ums-ldap-server-0
kubectl -n ${NAMESPACE} delete pvc ox-connector-ox-contexts-ox-connector-0
```
## From v0.8.1
## v0.9.0
### Pre-upgrade from v0.8.1
### Pre-upgrade to v0.9.0
#### Updated `cluster.networking.cidr`
@@ -678,7 +712,7 @@ kubectl -n ${NAMESPACE} delete pvc ox-connector-ox-contexts-ox-connector-0
# Automated migrations - Details
## From v1.1.2 (automated)
## v1.2.0+ (automated)
> **Note**<br>
> Details can be found in [run_4.py](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-migrations/-/blob/main/odmigs-python/odmigs_runs/run_4.py).
@@ -692,7 +726,7 @@ kubectl -n ${NAMESPACE} delete pvc ox-connector-ox-contexts-ox-connector-0
- Restarting Deployment `ums-provisioning-udm-transformer` and StatefulSet `ums-provisioning-udm-listener` as well as deleting the Nubus Provisioning consumer `durable_name:incoming` on stream `stream:incoming`: Due to a bug in Nubus 1.7.0 the `incoming` stream was blocked after the upgrade, the aforementioned measures unblock the stream.
## From v1.0.0 (automated)
## v1.1.0+ (automated)
With openDesk v1.1.0 the IAM stack supports HA LDAP primary as well as scalable LDAP secondary pods.
@@ -703,7 +737,7 @@ creating the config map with the mentioned label.
> **Note**<br>
> Details can be found in [run_3.py](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-migrations/-/blob/main/odmigs-python/odmigs_runs/run_3.py).
## From v0.9.0 (automated)
## v1.0.0+ (automated)
The `migrations-pre` and `migrations-post` jobs in the openDesk deployment address the automated migration tasks.

View File

@@ -29,12 +29,14 @@ openDesk is a Kubernetes-only solution and requires an existing Kubernetes (K8s)
- K8s cluster >= v1.24, [CNCF Certified Kubernetes distribution](https://www.cncf.io/certification/software-conformance/)
- Domain and DNS Service
- Ingress controller (Ingress NGINX) >= [4.11.5/1.11.5](https://github.com/kubernetes/ingress-nginx/releases)
- [Helm](https://helm.sh/) >= v3.9.0
- [Helmfile](https://helmfile.readthedocs.io/en/latest/) >= v1.0.0-rc8
- [HelmDiff](https://github.com/databus23/helm-diff) >= v3.6.0
- Volume provisioner supporting RWO (read-write-once)[^1]
- [Helm](https://helm.sh/) >= v3.17.3, but not v3.18.0[^1]
- [Helmfile](https://helmfile.readthedocs.io/en/latest/) >= v1.0.0
- [HelmDiff](https://github.com/databus23/helm-diff) >= v3.11.0
- Volume provisioner supporting RWO (read-write-once)[^2]
- Certificate handling with [cert-manager](https://cert-manager.io/)
- [OpenKruise](https://openkruise.io/)[^2] >= v1.6
**Additional openDesk Enterprise requirements**
- [OpenKruise](https://openkruise.io/)[^3] >= v1.6
# Hardware
@@ -115,7 +117,7 @@ deployments, you need to make use of your own production-grade services; see the
|----------|---------------------|---------|-----------------------|
| Cache | Memcached | `1.6.x` | Memcached |
| | Redis | `7.x.x` | Redis |
| Database | Cassandra[^1] | `5.0.x` | Cassandra |
| Database | Cassandra[^3] | `5.0.x` | Cassandra |
| | MariaDB | `10.x` | MariaDB |
| | PostgreSQL | `15.x` | PostgreSQL |
| Mail | Mail Transfer Agent | | Postfix |
@@ -135,6 +137,8 @@ Helmfile requires [HelmDiff](https://github.com/databus23/helm-diff) to compare
# Footnotes
[^1]: Due to [restrictions on Kubernetes `emptyDir`](https://github.com/kubernetes/kubernetes/pull/130277) you need a volume provisioner that has sticky bit support, otherwise the OpenProject seeder job will fail.
[^1]: Due to a [Helm bug](https://github.com/helm/helm/issues/30890) Helm 3.18.0 is not supported.
[^2]: Required for Dovecot Pro as part of openDesk Enterprise Edition.
[^2]: Due to [restrictions on Kubernetes `emptyDir`](https://github.com/kubernetes/kubernetes/pull/130277) you need a volume provisioner that has sticky bit support, otherwise the OpenProject seeder job will fail.
[^3]: Required for Dovecot Pro as part of openDesk Enterprise Edition.

View File

@@ -15,7 +15,7 @@ Consequently, we strongly recommend implementing monitoring and logging solution
| Application | Recommendation | Note(s) |
| ------------ | -------------- | ------- |
| Collabora | - 1 vCPU per 15 active users <br/> - 50 MB RAM per active user <br/> - 1 MBit/s per 10 active users | - |
| Element | Per 10k users with values for federation enabled / federation switched off:<br/><br/> Homeserver:<br/> - 15 / 10 vCPU<br/> - 12 / 8 GB RAM<br/><br/>Postgres:<br/> - 10 / 4 vCPU<br/> - 16 / 32 GB RAM | Required hardware resources are impacted by whether or not federation is being used |
| Element | Per 10k users with values for federation activated / federation deactivated:<br/><br/> Homeserver:<br/> - 15 / 10 vCPU<br/> - 12 / 8 GB RAM<br/><br/>Postgres:<br/> - 10 / 4 vCPU<br/> - 32 / 16 GB RAM | Required hardware resources are impacted by whether or not federation is being used |
| Cryptpad | No large-scale deployments seen, minimum requirements: <br/> - 2 vCPU <br/> - 2 GB RAM <br/> - 20 GB storage (depending on planned usage) | Most of the computation is done client-side |
| Jitsi | Jitsi-Meet server: <br/> - 4 vCPU <br/> - 8 GB RAM <br/> <br/> For every 200 concurrent users one JVB with: <br/> - 8 vCPU <br/> - 8 GB RAM <br/><br/> Network bandwidth: <br/> - 1 GBit/s - 10 GBit/s small deployments <br/> - 10 Gbit/s *per bridge* large deployments<br/> | JVB network bandwidth calculation depends on the stream resolution (HD vs. 4k). |
| Nextcloud | Up to 5k / more than 5k users: <br/> - 4 to 20 Nextcloud AIO Pods with 8 vCPUs and 32 / 64 GB RAM each <br/> - 2 / 4 DB servers with 8 / 16 vCPUs and 64 / 128 GB RAM each, plus DB load balancer | - |

View File

@@ -182,9 +182,9 @@ This list gives you an overview of templated security settings and if they compl
| **nubus**/ums/nubusGuardian/managementApi | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
| **nubus**/ums/nubusGuardian/managementUi | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
| **nubus**/ums/nubusGuardian/openPolicyAgent | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
| **nubus**/ums/nubusKeycloakBootstrap | :x: | no | n/a | no | yes | 1000 | 1000 | yes | yes |
| **nubus**/ums/nubusKeycloakBootstrap | :x: | no | n/a | yes | yes | 1000 | 1000 | yes | yes |
| **nubus**/ums/nubusKeycloakExtensions/handler | :x: | n/a | n/a | n/a | n/a | n/a | n/a | yes | no |
| **nubus**/ums/nubusKeycloakExtensions/proxy | :x: | n/a | n/a | n/a | n/a | n/a | n/a | yes | no |
| **nubus**/ums/nubusKeycloakExtensions/proxy | :x: | no | n/a | yes | yes | 1000 | 1000 | yes | yes |
| **nubus**/ums/nubusLdapNotifier | :x: | no | n/a | yes | yes | 101 | 102 | yes | yes |
| **nubus**/ums/nubusNotificationsApi | :x: | no | n/a | yes | yes | 1000 | 1000 | yes | yes |
| **nubus**/ums/nubusPortalConsumer | :x: | n/a | n/a | n/a | n/a | n/a | n/a | yes | no |
@@ -197,7 +197,7 @@ This list gives you an overview of templated security settings and if they compl
| **nubus**/ums/nubusUdmListener | :x: | no | n/a | yes | yes | 102 | 65534 | yes | yes |
| **nubus**/ums/nubusUdmRestApi | :x: | no | n/a | yes | yes | 1000 | 1000 | yes | yes |
| **nubus**/ums/nubusUmcGateway | :x: | no | n/a | yes | yes | 1000 | 1000 | yes | yes |
| **nubus**/ums/nubusUmcServer | :x: | no | n/a | yes | no | 0 | 0 | yes | yes |
| **nubus**/ums/nubusUmcServer | :x: | no | n/a | yes | yes | 999 | 999 | yes | yes |
| **open-xchange**/dovecot | :x: | no | n/a | yes | n/a | n/a | n/a | yes | no ["CHOWN","DAC_OVERRIDE","KILL","NET_BIND_SERVICE","SETGID","SETUID","SYS_CHROOT"] |
| **open-xchange**/open-xchange/appsuite/core-documentconverter | :x: | no | no | no | yes | 987 | 1000 | yes | yes |
| **open-xchange**/open-xchange/appsuite/core-guidedtours | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |

View File

@@ -18,13 +18,8 @@ All default settings can be found in [`theme.yaml.gotmpl`](../helmfile/environme
Please review the default configuration that is applied to understand your customization options.
You can just update the files in:
- [helmfile/files/theme](../helmfile/files/theme): To change logos, favicons etc.
- [helmfile/files/portal-tiles](../helmfile/files/portal-tiles): To change the icons in the portal.
You can just update the files in [helmfile/files/theme](../helmfile/files/theme) to change logos, favicons etc. Note that the `.svg` versions of the favicons are also used for the portal tiles.
# Known limitations
Not all applications support theming. Known exceptions are:
- OpenProject, comes with a build in openDesk theming that can be modified in the Enterprise version's OpenProject web interface.
- The portal background logo can (currently) only be set on initial deployment.
- Portal and Keycloak screen styles must be applied in the [`portalStylesheets.css`](../helmfile/files/theme/portalStylesheet.css).
- Portal and Keycloak screen styles, especially colors, must be applied in the [`portalStylesheets.css`](../helmfile/files/theme/portalStylesheet.css),

View File

@@ -75,6 +75,7 @@ configuration:
collabora:
# internalWopiUrl: ""
wopiAllowlist: {{ join ", " ( concat .Values.cluster.networking.cidr .Values.cluster.networking.incomingCIDR ) | quote }}
defaultFormat: {{ .Values.functional.weboffice.defaultFormat | quote }}
database:
{{ if eq .Values.databases.nextcloud.type "mariadb" }}

View File

@@ -17,6 +17,13 @@ ingress:
tls:
enabled: "{{ .Values.ingress.tls.enabled }}"
secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "{{ .Values.ingress.parameters.bodySize.notes }}"
nginx.ingress.kubernetes.io/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.notes }}"
nginx.ingress.kubernetes.io/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.notes }}"
nginx.org/client-max-body-size: "{{ .Values.ingress.parameters.bodySize.notes }}"
nginx.org/proxy-read-timeout: "{{ .Values.ingress.parameters.bodyTimeout.notes }}s"
nginx.org/proxy-send-timeout: "{{ .Values.ingress.parameters.bodyTimeout.notes }}s"
ingressCollaborationWS:
enabled: {{ .Values.ingress.enabled }}
@@ -27,12 +34,12 @@ ingressCollaborationWS:
enabled: "{{ .Values.ingress.tls.enabled }}"
secretName: {{ .Values.ingress.tls.secretName | quote }}
annotations:
nginx.ingress.kubernetes.io/auth-response-headers: "Authorization, X-Can-Edit, X-User-Id"
nginx.ingress.kubernetes.io/auth-url: https://{{ .Values.global.hosts.notes }}.{{ .Values.global.domain }}/api/v1.0/documents/collaboration-auth/
nginx.ingress.kubernetes.io/enable-websocket: "true"
nginx.ingress.kubernetes.io/proxy-read-timeout: "86400"
nginx.ingress.kubernetes.io/proxy-send-timeout: "86400"
nginx.ingress.kubernetes.io/upstream-hash-by: $arg_room
nginx.ingress.kubernetes.io/auth-response-headers: null
nginx.ingress.kubernetes.io/auth-url: null
{{- with .Values.annotations.notes.ingressCollaborationWS }}
{{ . | toYaml | nindent 4 }}
{{- end }}
@@ -91,7 +98,6 @@ frontend:
envVars:
PORT: 8080
NEXT_PUBLIC_API_ORIGIN: {{ printf "https://%s.%s" .Values.global.hosts.notes .Values.global.domain | quote }}
NEXT_PUBLIC_Y_PROVIDER_URL: {{ printf "wss://%s.%s/ws" .Values.global.hosts.notes .Values.global.domain | quote }}
NEXT_PUBLIC_MEDIA_URL: {{ printf "https://%s" (.Values.objectstores.notes.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }}
runtimeEnvs:
ICS_BASE_URL: {{ printf "https://%s.%s" .Values.global.hosts.intercomService .Values.global.domain | quote }}
@@ -144,6 +150,7 @@ yProvider:
seLinuxOptions:
{{ .Values.seLinuxOptions.notesBackend | toYaml | nindent 6 }}
envVars:
COLLABORATION_BACKEND_BASE_URL: {{ printf "https://%s.%s" .Values.global.hosts.notes .Values.global.domain | quote }}
COLLABORATION_LOGGING: {{ if .Values.debug.enabled }}"true"{{ else }}"false"{{ end }}
COLLABORATION_SERVER_ORIGIN: {{ printf "https://%s.%s" .Values.global.hosts.notes .Values.global.domain | quote }}
COLLABORATION_SERVER_SECRET: {{ .Values.secrets.notes.collaborationSecret | quote }}
@@ -214,8 +221,8 @@ backend:
OIDC_OP_LOGOUT_ENDPOINT: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/logout"
OIDC_RP_SIGN_ALGO: RS256
OIDC_RP_SCOPES: "openid opendesk-notes-scope"
USER_OIDC_FIELD_TO_SHORTNAME: "given_name"
USER_OIDC_FIELDS_TO_FULLNAME: "given_name,family_name"
OIDC_USERINFO_SHORTNAME_FIELD: "given_name"
OIDC_USERINFO_FULLNAME_FIELDS: "given_name,family_name"
USER_OIDC_ESSENTIAL_CLAIMS: "email"
OIDC_REDIRECT_ALLOWED_HOSTS: {{ printf "https://%s.%s/*" .Values.global.hosts.notes .Values.global.domain | quote }}
OIDC_AUTH_REQUEST_EXTRA_PARAMS: "{}"
@@ -232,6 +239,8 @@ backend:
COLLABORATION_SERVER_ORIGIN: {{ printf "https://%s.%s" .Values.global.hosts.notes .Values.global.domain | quote }}
COLLABORATION_SERVER_SECRET: {{ .Values.secrets.notes.collaborationSecret | quote }}
COLLABORATION_WS_URL: {{ printf "wss://%s.%s/collaboration/ws/" .Values.global.hosts.notes .Values.global.domain | quote }}
FRONTEND_HOMEPAGE_FEATURE_ENABLED: False
FRONTEND_FOOTER_FEATURE_ENABLED: False
migrate:
command:
- "/bin/sh"

View File

@@ -44,6 +44,7 @@ releases:
version: "{{ .Values.charts.nubus.version }}"
values:
- "values-nubus.yaml.gotmpl"
- "values-nubus-custom.yaml.gotmpl"
{{- range .Values.customization.release.ums }}
- {{ . }}
{{- end }}

View File

@@ -0,0 +1,23 @@
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
# SPDX-License-Identifier: Apache-2.0
nubusUmcServer:
probes:
liveness: &probe
periodSeconds: 600 # every 10 minutes
failureThreshold: 1 # trigger restart after the first probe failure
tcpSocket: ~
exec:
command:
- "python3"
- "-c"
- |
import requests
data = {"options": {"username": "b1-pw-test", "method": "email" }}
requests.post("http://localhost:8090/command/passwordreset/send_token", json=data).raise_for_status()
startup:
<<: *probe
initialDelaySeconds: 30
periodSeconds: 30
failureThreshold: 5
successThreshold: 1

View File

@@ -197,6 +197,12 @@ keycloak:
name: "ums-opendesk-keycloak-credentials"
keyMapping:
adminPassword: "admin_password"
login:
messages:
de:
loginTitle: "Anmeldung bei {{ .Values.theme.texts.productName }}"
en:
loginTitle: "Sign in to {{ .Values.theme.texts.productName }}"
podAnnotations:
intents.otterize.com/service-name: "ums-keycloak"
{{- with .Values.annotations.nubusKeycloak.pod }}
@@ -246,6 +252,8 @@ keycloak:
extraEnvVars:
- name: "KC_HTTPS_TRUST_STORE_FILE"
value: "/etc/ssl/certs/truststore.jks"
- name: "KC_TRUSTSTORE_PATHS"
value: "/etc/ssl/certs/ca-certificates.crt"
- name: "KC_HTTPS_TRUST_STORE_PASSWORD"
value: {{ .Values.secrets.certificates.password | quote }}
- name: "KC_HTTPS_TRUST_STORE_TYPE"
@@ -254,6 +262,20 @@ keycloak:
nubusGuardian:
authorizationApi:
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
seccompProfile:
type: RuntimeDefault
seLinuxOptions:
{{ .Values.seLinuxOptions.umsGuardianAuthorizationApi | toYaml | nindent 8 }}
image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianAuthorizationApi.registry | quote }}
repository: {{ .Values.images.nubusGuardianAuthorizationApi.repository }}
@@ -272,20 +294,6 @@ nubusGuardian:
replicaCount: {{ .Values.replicas.umsGuardianAuthorizationApi }}
resources:
{{ .Values.resources.umsGuardianAuthorizationApi | toYaml | nindent 6 }}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
seccompProfile:
type: RuntimeDefault
seLinuxOptions:
{{ .Values.seLinuxOptions.umsGuardianAuthorizationApi | toYaml | nindent 8 }}
global:
podAnnotations:
{{ .Values.annotations.nubusGuardian.globalPod | toYaml | nindent 6 }}
@@ -348,6 +356,20 @@ nubusGuardian:
# enabled: true
secretName: ""
managementApi:
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
seccompProfile:
type: RuntimeDefault
seLinuxOptions:
{{ .Values.seLinuxOptions.umsGuardianManagementApi | toYaml | nindent 8 }}
image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianManagementApi.registry | quote }}
repository: {{ .Values.images.nubusGuardianManagementApi.repository }}
@@ -366,7 +388,8 @@ nubusGuardian:
replicaCount: {{ .Values.replicas.umsGuardianManagementApi }}
resources:
{{ .Values.resources.umsGuardianManagementApi | toYaml | nindent 6 }}
securityContext:
managementUi:
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
@@ -379,8 +402,7 @@ nubusGuardian:
seccompProfile:
type: RuntimeDefault
seLinuxOptions:
{{ .Values.seLinuxOptions.umsGuardianManagementApi | toYaml | nindent 8 }}
managementUi:
{{ .Values.seLinuxOptions.umsGuardianManagementUi | toYaml | nindent 8 }}
image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianManagementUi.registry | quote }}
repository: {{ .Values.images.nubusGuardianManagementUi.repository }}
@@ -396,7 +418,8 @@ nubusGuardian:
replicaCount: {{ .Values.replicas.umsGuardianManagementUi }}
resources:
{{ .Values.resources.umsGuardianManagementUi | toYaml | nindent 6 }}
securityContext:
openPolicyAgent:
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
@@ -408,9 +431,8 @@ nubusGuardian:
runAsUser: 1000
seccompProfile:
type: RuntimeDefault
seLinuxOptions:
{{ .Values.seLinuxOptions.umsGuardianManagementUi | toYaml | nindent 8 }}
openPolicyAgent:
seLinuxOptions:
{{ .Values.seLinuxOptions.umsGuardianOpenPolicyAgent | toYaml | nindent 8 }}
image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusOpenPolicyAgent.registry | quote }}
repository: {{ .Values.images.nubusOpenPolicyAgent.repository }}
@@ -426,20 +448,6 @@ nubusGuardian:
replicaCount: {{ .Values.replicas.umsGuardianOpenPolicyAgent }}
resources:
{{ .Values.resources.umsOpenPolicyAgent | toYaml | nindent 6 }}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
seccompProfile:
type: RuntimeDefault
seLinuxOptions:
{{ .Values.seLinuxOptions.umsGuardianOpenPolicyAgent | toYaml | nindent 8 }}
postgresql:
connection:
host: {{ .Values.databases.umsGuardianManagementApi.host | quote }}
@@ -447,26 +455,29 @@ nubusGuardian:
auth:
username: {{ .Values.databases.umsGuardianManagementApi.username | quote }}
database: {{ .Values.databases.umsGuardianManagementApi.name | quote }}
credentialSecret:
existingSecret:
name: "ums-guardian-postgresql-opendesk-credentials"
key: "guardianDatabasePassword"
keyMapping:
password: "guardianDatabasePassword"
provisioning:
enabled: false
config:
nubusBaseUrl: {{ printf "https://%s.%s" .Values.global.hosts.nubus .Values.global.domain }}
keycloak:
realm: {{ .Values.platform.realm | quote }}
username: "kcadmin"
connection:
host: "{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}"
baseUrl: "http://ums-keycloak:8080"
credentialSecret:
name: "ums-opendesk-keycloak-credentials"
key: "admin_password"
managementApi:
credentialSecret:
realm: {{ .Values.platform.realm | quote }}
username: "kcadmin"
keycloak:
auth:
existingSecret:
name: "ums-opendesk-guardian-client-secret"
key: "managementApiClientSecret"
keyMapping:
password: "managementApiClientSecret"
connection:
host: "{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}"
baseUrl: "http://ums-keycloak:8080"
image:
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianProvisioning.registry | quote }}
repository: {{ .Values.images.nubusGuardianProvisioning.repository }}
@@ -628,7 +639,7 @@ nubusPortalFrontend:
css: {{ .Values.theme.styles.portal.main | toJson }}
# Requires .ico, .svg does not work.
favicon: {{ .Values.theme.imagery.portal.faviconIco | toJson }}
# The actual `logo` is set in customizing image, the logo down here is for for waiting spinner.
# The actual `logo` is set in customizing image, the logo down here is for waiting spinner.
logo: {{ .Values.theme.imagery.portal.waitingSpinnerSvg | toJson }}
backgroundImage: {{ .Values.theme.imagery.portal.backgroundSvg | toJson }}
service:
@@ -695,6 +706,17 @@ nubusKeycloakExtensions:
resources:
{{ .Values.resources.umsKeycloakExtensionProxy | toYaml | nindent 6 }}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seccompProfile:
type: "RuntimeDefault"
seLinuxOptions:
@@ -785,8 +807,15 @@ nubusPortalConsumer:
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"INFO"{{ end }}
objectStorage:
auth:
accessKeyId: {{ .Values.objectstores.nubus.username | quote }}
accessKey: {{ .Values.objectstores.nubus.username | quote }}
secretAccessKey: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }}
secretKey: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }}
existingSecret:
name: "{{ .Release.Name }}-portal-consumer-minio-credentials"
keyMapping:
accessKey: "accessKey"
secretKey: "secretKey"
bucketName: {{ .Values.objectstores.nubus.bucket | quote }}
endpoint: {{ printf "https://%s" (.Values.objectstores.nubus.endpoint | default (printf "%s.%s" .Values.global.hosts.minioApi .Values.global.domain)) | quote }}
persistence:
@@ -818,21 +847,7 @@ nubusPortalConsumer:
repository: {{ .Values.images.nubusWaitForDependency.repository }}
tag: {{ .Values.images.nubusWaitForDependency.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
{{- if .Values.certificate.selfSigned }}
extraVolumes:
- name: "trusted-cert-secret-volume"
secret:
secretName: "opendesk-certificates-ca-tls"
items:
- key: "ca.crt"
path: "ca-certificates.crt"
- key: "ca.crt"
path: "cacert.pem"
extraVolumeMounts:
- name: "trusted-cert-secret-volume"
mountPath: "/etc/ssl/certs/ca-certificates.crt"
subPath: "ca-certificates.crt"
waitForDependency:
{{- if .Values.certificate.selfSigned }}
extraVolumeMounts:
- name: "trusted-cert-secret-volume"
readOnly: true
@@ -849,6 +864,21 @@ nubusPortalConsumer:
value: "/etc/ssl/certs/ca-certificates.crt"
- name: "SSL_CERT_FILE"
value: "/etc/ssl/certs/ca-certificates.crt"
{{- end }}
{{- if .Values.certificate.selfSigned }}
extraVolumes:
- name: "trusted-cert-secret-volume"
secret:
secretName: "opendesk-certificates-ca-tls"
items:
- key: "ca.crt"
path: "ca-certificates.crt"
- key: "ca.crt"
path: "cacert.pem"
extraVolumeMounts:
- name: "trusted-cert-secret-volume"
mountPath: "/etc/ssl/certs/ca-certificates.crt"
subPath: "ca-certificates.crt"
{{- end }}
nubusPortalServer:
@@ -1396,7 +1426,7 @@ nubusSelfServiceConsumer:
nubusStackDataUms:
additionalAnnotations:
argocd.argoproj.io/hook: "Sync"
argocd.argoproj.io/hook-delete-policy: "HookSucceeded"
argocd.argoproj.io/hook-delete-policy: "BeforeHookCreation"
intents.otterize.com/service-name: "ums-stack-data-ums"
{{- with .Values.annotations.nubusStackDataUms.additional }}
{{ . | toYaml | nindent 4 }}
@@ -1466,12 +1496,22 @@ nubusStackDataUms:
{{ .Values.annotations.nubusStackDataUms.serviceAccount | toYaml | nindent 6 }}
templateContext:
initialPasswordAdministrator: {{ .Values.secrets.nubus.systemAccounts.administratorPassword | quote }}
additionalMailDomains: {{ .Values.global.additionalMailDomains | toYaml | nindent 6 }}
apps: {{ .Values.apps | toYaml | nindent 6 }}
defaultGroupOtherObjects: "cn=Domain Users,cn=groups,{{ .Values.ldap.baseDn }}"
opendeskEnterprise: {{ env "OPENDESK_ENTERPRISE" }}
opendeskAdminAttributes: true
opendeskGroupAttributes: true
opendeskUserAttributes: true
{{- if eq .Values.functional.weboffice.defaultFormat "OOXML"}}
portalDirectDocsExtensionText: "docx"
portalDirectDocsExtensionSheet: "xlsx"
portalDirectDocsExtensionPresentation: "pptx"
{{- else }}
portalDirectDocsExtensionText: "odt"
portalDirectDocsExtensionSheet: "ods"
portalDirectDocsExtensionPresentation: "odp"
{{- end }}
portalEnforceLogin: {{ .Values.functional.portal.enforceLogin }}
portalHeaderLogo: {{ toYaml .Values.theme.imagery.logoHeaderSvgB64 | quote }}
portalTiles: {{ toYaml .Values.theme.imagery.portalTiles | nindent 6 }}
@@ -1545,12 +1585,12 @@ nubusUmcServer:
capabilities:
drop:
- "ALL"
runAsUser: 0
runAsGroup: 0
runAsUser: 999
runAsGroup: 999
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: false
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsUmcServer | toYaml | nindent 6 }}
containerSecurityContextInit:
@@ -1586,12 +1626,12 @@ nubusUmcServer:
- "MKNOD"
- "NET_BIND_SERVICE"
- "SYS_CHROOT"
runAsUser: 0
runAsGroup: 0
runAsUser: 999
runAsGroup: 999
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: false
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsUmcServer | toYaml | nindent 6 }}
image:
@@ -1720,6 +1760,7 @@ nubusUmcGateway:
nubusKeycloakBootstrap:
additionalAnnotations:
argocd.argoproj.io/hook: "Sync"
argocd.argoproj.io/hook-delete-policy: "BeforeHookCreation"
{{- with .Values.annotations.nubusKeycloakBootstrapNubus.additional }}
{{ . | toYaml | nindent 4 }}
{{- end }}
@@ -1736,7 +1777,7 @@ nubusKeycloakBootstrap:
capabilities:
drop:
- "ALL"
readOnlyRootFilesystem: false
readOnlyRootFilesystem: true
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000

View File

@@ -28,7 +28,7 @@ dovecot:
value: {{ .Values.secrets.cassandra.dovecotDictmapUser | quote }}
keyspace: {{ .Values.databases.dovecotDictmap.name | quote }}
sharedMailboxes:
enabled: false
enabled: true
host: {{ .Values.databases.dovecotACL.host | quote }}
port: {{ .Values.databases.dovecotACL.port }}
username: {{ .Values.databases.dovecotACL.username | quote }}
@@ -36,6 +36,7 @@ dovecot:
value: {{ .Values.secrets.cassandra.dovecotACLUser | quote }}
keyspace: {{ .Values.databases.dovecotACL.name | quote }}
objectStorage:
bucket: {{ .Values.objectstores.dovecot.bucket | quote }}
encryption:
privateKey:
value: {{ env "DOVECOT_CRYPT_PRIVATE_KEY" | quote }}

View File

@@ -23,7 +23,8 @@ imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 2 }}
dovecot:
mailDomain: {{ .Values.global.mailDomain | default .Values.global.domain | quote }}
mailDomains: {{ toYaml (prepend .Values.global.additionalMailDomains (.Values.global.mailDomain | default .Values.global.domain) | uniq) | nindent 4 }}
defaultMailDomain: {{ .Values.global.mailDomain | default .Values.global.domain | quote }}
password:
value: {{ .Values.secrets.dovecot.doveadm | quote }}
migration:
@@ -82,6 +83,10 @@ containerSecurityContext:
seLinuxOptions:
{{ .Values.seLinuxOptions.dovecot | toYaml | nindent 4 }}
{{- if .Values.debug.enabled }}
debug: true
{{- end }}
{{- if .Values.certificate.selfSigned }}
extraVolumes:
- name: "trusted-cert-secret-volume"

View File

@@ -108,8 +108,9 @@ appsuite:
hosts:
- "{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}"
dav:
enabled: {{ .Values.functional.groupware.davSupport.enabled }}
hosts:
- "{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}"
- "{{ .Values.global.hosts.openxchangeDav }}.{{ .Values.global.domain }}"
routes:
appsuite-base:
annotations:
@@ -215,7 +216,7 @@ appsuite:
host: "all"
productName: {{ .Values.theme.texts.productName | quote }}
oidcLogin: true
oidcPath: "/oidc"
oidcPath: "/oidc/"
masterAdmin: "admin"
masterPassword: {{ .Values.secrets.oxAppSuite.adminPassword | quote }}
hzGroupName: "hzgroup"
@@ -278,22 +279,24 @@ appsuite:
status:
{{- if .Values.functional.migration.oxAppSuite.enabled }}
open-xchange-oidc: "disabled"
open-xchange-authentication-oauth: "disabled"
open-xchange-authentication-masterpassword: "enabled"
open-xchange-authentication-database: "disabled"
open-xchange-authentication-ldap: "disabled"
{{- else }}
open-xchange-oidc: "enabled"
open-xchange-authentication-oauth: "enabled"
open-xchange-authentication-masterpassword: "disabled"
{{- end }}
open-xchange-authentication-oauth: "disabled"
open-xchange-authentication-database: "disabled"
open-xchange-authentication-ldap: "disabled"
{{- end }}
# OX Documents (office-web) is not used in openDesk
open-xchange-documents-backend: "disabled"
open-xchange-documents-monitoring: "disabled"
open-xchange-documents-templates: "disabled"
# Required for the central contacts integration
open-xchange-oauth-provider: "enabled"
# Needed to set com.openexchange.hostname
open-xchange-hostname-config-cascade: "enabled"
properties:
com.openexchange.hostname: {{ printf "%s.%s" .Values.global.hosts.openxchange .Values.global.domain }}
com.openexchange.UIWebPath: "/appsuite/"
com.openexchange.showAdmin: "false"
# PDF Export
@@ -323,6 +326,8 @@ appsuite:
com.openexchange.oidc.startDefaultBackend: "true"
com.openexchange.oidc.userLookupClaim: "opendesk_username"
com.openexchange.oidc.userLookupNamePart: "full"
com.openexchange.oidc.enablePasswordGrant: "true"
com.openexchange.oidc.passwordGrantUserNamePart: "local-part"
# OAUTH
com.openexchange.oauth.provider.enabled: "true"
com.openexchange.oauth.provider.allowedIssuer: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}"
@@ -332,17 +337,23 @@ appsuite:
com.openexchange.oauth.provider.mode: "expect_jwt"
com.openexchange.oauth.provider.userLookupNamePart: "full"
com.openexchange.oauth.provider.userLookupClaim: "opendesk_username"
com.openexchange.authentication.oauth.clientId: "opendesk-oxappsuite"
com.openexchange.authentication.oauth.tokenEndpoint: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/token"
com.openexchange.authentication.oauth.clientSecret: {{ .Values.secrets.keycloak.clientSecret.as8oidc | quote }}
# MAIL
com.openexchange.mail.authType: "xoauth2"
com.openexchange.mail.loginSource: "mail"
com.openexchange.mail.loginSource: "name"
com.openexchange.mail.mailServer: "dovecot"
com.openexchange.mail.mailServerSource: "global"
com.openexchange.mail.transport.authType: "xoauth2"
com.openexchange.mail.transportServer: "postfix-ox"
com.openexchange.mail.transportServerSource: "global"
# Mail Login Resolver
com.openexchange.mail.login.resolver.enabled: "true"
com.openexchange.mail.login.resolver.ldap.enabled: "true"
com.openexchange.mail.login.resolver.ldap.clientId: "contactsLdapClient"
com.openexchange.mail.login.resolver.ldap.mailLoginSearchFilter: "(entryUUID=[mailLogin])"
com.openexchange.mail.login.resolver.ldap.userNameAttribute: "uid"
com.openexchange.mail.login.resolver.ldap.contextNameAttribute: "oxContextIDNum"
com.openexchange.mail.login.resolver.ldap.entitySearchFilter: "(&(oxContextIDNum=[cid])(uid=[uname]))"
com.openexchange.mail.login.resolver.ldap.mailLoginAttribute: "entryUUID"
# Requirements for OX-Connector
com.openexchange.user.enforceUniqueDisplayName: "false"
com.openexchange.folderstorage.database.preferDisplayName: "false"
@@ -398,6 +409,15 @@ appsuite:
# http = (await import('./io.ox/core/http.js')).default
# await http.POST({ module: 'oxguard/smime', params: { action: 'test' } })
com.openexchange.smime.test: "true"
# DAV
{{- if .Values.functional.groupware.davSupport.enabled }}
com.openexchange.caldav.enabled: "true"
com.openexchange.caldav.url: {{ printf "https://%s.%s/caldav/[folderId]" .Values.global.hosts.openxchangeDav .Values.global.domain }}
com.openexchange.carddav.enabled: "true"
com.openexchange.carddav.url: {{ printf "https://%s.%s/carddav/[folderId]" .Values.global.hosts.openxchangeDav .Values.global.domain }}
com.openexchange.client.onboarding.caldav.url: {{ printf "https://%s.%s/" .Values.global.hosts.openxchangeDav .Values.global.domain }}
com.openexchange.client.onboarding.carddav.url: {{ printf "https://%s.%s/" .Values.global.hosts.openxchangeDav .Values.global.domain }}
{{- end }}
# Other
com.openexchange.secret.secretSource: "\"<user-id> + '@' + <context-id> + '/' + <random>\""
{{- if .Values.certificate.selfSigned }}

View File

@@ -55,6 +55,10 @@ postfix:
{{- if .Values.apps.dkimpy.enabled }}
dkimpyHost: "opendesk-dkimpy-milter.{{ .Release.Namespace }}.svc.{{.Values.cluster.networking.domain }}:8892"
{{- end }}
minTLSVersion: "TLSv1.3"
smtpdTLSMandatoryCiphers: "high"
rspamdHost: ""
relayHost: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }}
allowRelayNets: false
@@ -81,7 +85,7 @@ postfix:
smtpdMilters: "inet:clamav-simple:7357"
{{- end }}
{{- end }}
virtualMailboxDomains: {{ if .Values.global.additionalMailDomains }}{{ printf "%s,%s" (.Values.global.mailDomain | default .Values.global.domain) .Values.global.additionalMailDomains }}{{ else }}{{ .Values.global.mailDomain | default .Values.global.domain | quote }}{{ end }}
virtualMailboxDomains: {{ toYaml (prepend .Values.global.additionalMailDomains (.Values.global.mailDomain | default .Values.global.domain) | uniq) | nindent 4 }}
virtualTransport: "lmtps:dovecot:24"
podAnnotations:

View File

@@ -65,8 +65,14 @@ postfix:
{{- end }}
rspamdHost: ""
relayHost: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }}
# Warning: This setting allows unauthenticated mail relay from relayNets!
relayNets: {{ join " " .Values.cluster.networking.cidr | quote }}
allowRelayNets: true
minTLSVersion: "TLSv1.3"
smtpdTLSMandatoryCiphers: "high"
smtpSASLAuthEnable: "yes"
smtpSASLPasswordMaps: "lmdb:/etc/postfix/sasl_passwd.map"
smtpTLSSecurityLevel: "encrypt"
@@ -96,7 +102,7 @@ postfix:
{{- end }}
# Only deliver mail to Dovecot, if it is available
{{- if .Values.apps.oxAppSuite.enabled }}
virtualMailboxDomains: {{ if .Values.global.additionalMailDomains }}{{ printf "%s,%s" (.Values.global.mailDomain | default .Values.global.domain) .Values.global.additionalMailDomains }}{{ else }}{{ .Values.global.mailDomain | default .Values.global.domain | quote }}{{ end }}
virtualMailboxDomains: {{ toYaml (prepend .Values.global.additionalMailDomains (.Values.global.mailDomain | default .Values.global.domain) | uniq) | nindent 4 }}
virtualTransport: "lmtps:dovecot:24"
{{- end }}

View File

@@ -6,12 +6,11 @@ charts:
registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/product-development/charts/opendesk-dovecot-pro"
name: "dovecot"
version: "2.0.3"
version: "3.1.1"
verify: true
oxAppSuite:
registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/charts-mirror"
name: "appsuite-public-sector-pro-chart"
version: "1.15.236"
version: "1.17.292"
verify: false
...

View File

@@ -5,17 +5,17 @@ images:
collabora:
registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/collabora/images/collabora-online-for-opendesk"
tag: "24.04.13.3.1@sha256:7e9b63972415a5a8006ec6b7e904c2d78d9af467218ead7e578d0c8a5691f0bc"
tag: "24.04.13.4.1@sha256:4d4f88fa244280f6116b072a923ee7e5c183ab30ee9759952f9b6aa802802300"
dovecot:
registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/images-mirror/dovecot-pro"
tag: "3.0.1-rev3@sha256:b87f16562dd486c0f97e8147a797af16a54f25f1ac64826f4f53bd8177ec9a33"
tag: "3.0.2-rev7@sha256:4330240bfeda4dd8b6aa32a6b7f03382126d47caf4f37a5578ad17746101c88b"
nextcloud:
registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/nextcloud/images/opendesk-nextcloud"
tag: "1.1.9@sha256:ad28c9dd8cdb4bdd325fe132215d0cf094392c3ddd1f114707b09bb7d1c61a9e"
tag: "30.0.10@sha256:a63374dd44d3c6a8873da31fe0554b97fb29993a4cf18b9dd6a304b577f2f2b8"
openxchangeCoreMW:
registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/images-mirror/middleware-public-sector-pro"
tag: "8.35.85@sha256:54d01a16ea29a3ae8f1857e5bdf6d2e34046b8a3fa3d6179bb3ad3d047e1318f"
tag: "8.37.69@sha256:40908484e71bc45ad23598685b0519d82fc9e3cf372e00fe38befe9196cf84e2"
...

View File

@@ -2,7 +2,7 @@
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
# SPDX-License-Identifier: Apache-2.0
#
# Please read the /docs/development.md for information about structure and annotations used in this file.
# Please read the /docs/developer/development.md for information about structure and annotations used in this file.
# yamllint disable rule:line-length
---
charts:
@@ -56,7 +56,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/collabora/charts-mirror"
name: "collabora-online"
version: "1.1.37"
version: "1.1.38"
verify: true
collaboraController:
# Enterprise Component
@@ -99,7 +99,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-dovecot"
name: "dovecot"
version: "2.0.0"
version: "3.1.1"
verify: true
element:
# providerCategory: "Platform"
@@ -241,7 +241,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/external/charts/bitnami-charts"
name: "minio"
version: "14.10.1"
version: "16.0.10"
verify: true
nextcloud:
# providerCategory: "Platform"
@@ -251,7 +251,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud"
name: "opendesk-nextcloud"
version: "4.0.3"
version: "4.1.0"
verify: true
nextcloudManagement:
# providerCategory: "Platform"
@@ -261,7 +261,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud"
name: "opendesk-nextcloud-management"
version: "4.0.3"
version: "4.1.0"
verify: true
nginx:
# providerCategory: "Community"
@@ -303,7 +303,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/charts-mirror"
name: "nubus"
version: "1.8.0"
version: "1.9.1"
verify: true
opendeskAlerts:
# providerCategory: "Platform"
@@ -355,7 +355,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/openproject/charts-mirror"
name: "openproject"
version: "9.9.0"
version: "10.0.3"
verify: true
openprojectBootstrap:
# providerCategory: "Platform"
@@ -387,7 +387,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/charts-mirror"
name: "appsuite-public-sector"
version: "2.17.164"
version: "2.19.262"
verify: false
oxAppSuiteBootstrap:
# providerCategory: "Platform"
@@ -419,7 +419,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-postfix"
name: "postfix"
version: "3.0.1"
version: "4.0.0"
verify: true
postgresql:
# providerCategory: "Platform"

View File

@@ -2,6 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
---
functional:
admin:
portal:
deploymentTimestamp:
@@ -62,6 +63,19 @@ functional:
# - `internalId`
idpDetails: {}
chat:
matrix:
profile:
# Once connected with a user that user's Matrix ID is rarely checked by their communication partners, as the
# display name is used to see whom they are communicating with. Not allowing users to change their
# own display name reduces the risk of identity fraud.
# To get the display name updated from the central identity and access management you have to have the Synapse
# enterprise feature "groupsync" configured.
allowUsersToUpdateDisplayname: true
# If the LDAP entryUUID should be used for the localpart of user's Matrix IDs following setting must be `true`.
useImmutableIdentifierForLocalpart: false
externalServices:
nubus:
udmRestApi:
@@ -74,6 +88,16 @@ functional:
# List of matrix homeserver domains you want to allow federation with
domainAllowList: []
dataProtection:
matrixPresence:
# Enable to allow information about the user presence status to be shared.
# Ref.: https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#presence
enabled: false
jitsiRoomHistory:
# Disable to avoid the room history to be stored in the user's browser local storage.
# Ref.: https://github.com/jitsi/docker-jitsi-meet/issues/898
enabled: true
filestore:
quota:
# Set the default quota for all users in GB
@@ -120,16 +144,17 @@ functional:
versions: "auto"
# yamllint enable rule:line-length
dataProtection:
matrixPresence:
# Enable to allow information about the user presence status to be shared.
# Ref.: https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#presence
enabled: false
jitsiRoomHistory:
# Disable to avoid the room history to be stored in the user's browser local storage.
# Ref.: https://github.com/jitsi/docker-jitsi-meet/issues/898
groupware:
davSupport:
enabled: true
migration:
oxAppSuite:
# Note: Only available in openDesk Enterprise.
# Turn on temporary for migration purposes only. Will enable master password auth in OX AppSuite and Dovecot using
# `secrets.oxAppSuite.migrationsMasterPassword`.
enabled: false
portal:
# Configure if the a re-direct to the login dialogue is enforced, or if the portal is shown and the user as to actively
# trigger the login flow, e.g. but clicking on the "Login" portal tile.
@@ -139,24 +164,10 @@ functional:
# Link to the privacy statement shown in the portal menu, set to "~" if you want to remove the link
linkPrivacyStatement: "https://zendis.de/datenschutzerklaerung"
chat:
matrix:
profile:
# Once connected with a user that user's Matrix ID is rarely checked by their communication partners, as the
# display name is used to see whom they are communicating with. Not allowing users to change their
# own display name reduces the risk of identity fraud.
# To get the display name updated from the central identity and access management you have to have the Synapse
# enterprise feature "groupsync" configured.
allowUsersToUpdateDisplayname: true
# If the LDAP entryUUID should be used for the localpart of user's Matrix IDs following setting must be `true`.
useImmutableIdentifierForLocalpart: false
migration:
oxAppSuite:
# Note: Only available in openDesk Enterprise.
# Turn on temporary for migration purposes only. Will enable master password auth in OX AppSuite and Dovecot using
# `secrets.oxAppSuite.migrationsMasterPassword`.
enabled: false
weboffice:
# Set the file format to be used by default when creating new documents from the portal or the Nextcloud app.
# You can choose between "ODF" and "OOXML".
# Ref.: https://en.wikipedia.org/wiki/Comparison_of_Office_Open_XML_and_OpenDocument
defaultFormat: "ODF"
...

View File

@@ -3,5 +3,5 @@
---
global:
systemInformation:
releaseVersion: "v1.3.2"
releaseVersion: "v1.5.0"
...

View File

@@ -19,7 +19,7 @@ global:
## Define additional mail domains, comma separated, e.g. domain1.de,domain2.de
#
additionalMailDomains: ""
additionalMailDomains: []
## Define synapse host
## If this is unset the "domain" value above should be used in all references
@@ -55,6 +55,7 @@ global:
nubus: "portal"
openproject: "projects"
openxchange: "webmail"
openxchangeDav: "dav"
static: "static"
synapse: "matrix"
synapseAdmin: "synapse-admin"

View File

@@ -2,7 +2,7 @@
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
# SPDX-License-Identifier: Apache-2.0
#
# Please read the /docs/development.md for information about structure and annotations used in this file.
# Please read the /docs/developer/development.md for information about structure and annotations used in this file.
---
images:
bitnamiOSShell:
@@ -12,7 +12,7 @@ images:
# upstreamRepository: "bitnami/os-shell"
registry: "registry-1.docker.io"
repository: "bitnami/os-shell"
tag: "12-debian-12-r34@sha256:41e0561b0f08011c24acc5e8ad4c0d09a36062cfab35d9ec7b3fdd4cfecc01e0"
tag: "12-debian-12-r44@sha256:6388c7c27a09472906e2f2094410c9ffdadf23b4b242293ce023d0314ec10920"
cassandra:
# providerCategory: "Community"
# providerResponsible: "openDesk"
@@ -20,7 +20,7 @@ images:
# upstreamRepository: "bitnami/cassandra"
registry: "registry-1.docker.io"
repository: "bitnami/cassandra"
tag: "5.0.2-debian-12-r1@sha256:9f5fd6fe3a24b7e5ea215a99a0e0d6a10d11a914d6eb8c511780271a9097f5ea"
tag: "5.0.4-debian-12-r4@sha256:9d909ebe10802dae2fb99ef7c8e9e0dbc496c8d30366e2f7abbe0713b945fa7d"
cassandraExporter:
# providerCategory: "Community"
# providerResponsible: "openDesk"
@@ -28,7 +28,7 @@ images:
# upstreamRepository: "bitnami/cassandra-exporter"
registry: "registry-1.docker.io"
repository: "bitnami/cassandra-exporter"
tag: "2.3.8-debian-12-r31@sha256:ae861f6c8712dd32c2304c680e4564802df689a62dc4aed2f4e7cfcbba8a8051"
tag: "2.3.8-debian-12-r46@sha256:e44c65f08d85153041f68bcf180f948341d74018eef8b56e8869ed87fdfd34f0"
clamd:
# providerCategory: "Community"
# providerResponsible: "openDesk"
@@ -36,7 +36,7 @@ images:
# upstreamRepository: "clamav/clamav"
registry: "registry-1.docker.io"
repository: "clamav/clamav"
tag: "1.1.1-10_base@sha256:aed8d5a3ef58352c862028fae44241215a50eae0b9acb7ba8892b1edc0a6598f"
tag: "1.4.2-38_base@sha256:e7d108f30ea8f16935dbd12e4b58665f1bc148ce3dd59028cf04088330216910"
collabora:
# providerCategory: "Supplier"
# providerResponsible: "Collabora"
@@ -44,7 +44,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/supplier/collabora/images/collabora-online-for-opendesk"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/collabora/images/collabora-online-for-opendesk"
tag: "24.04.13.3.1@sha256:f04a31d72b2b12b530b4e88b3ecb81eb96ebd98112515db59499ff71a4ec905f"
tag: "24.04.14.3.1@sha256:b7085475740a4e92ad3611d52808b6d822478e52286d18d3272a9b685e049464"
collaboraController:
# Enterprise Component
# providerCategory: "Supplier"
@@ -84,7 +84,7 @@ images:
# upstreamRepository: "alpine/k8s"
registry: "registry-1.docker.io"
repository: "alpine/k8s"
tag: "1.32.3@sha256:eec3541331932d8613ce7b3283508063cba7f704302e9b4eda45e49b38a2a0f9"
tag: "1.33.1@sha256:7f8133af0dd210cb5b168f889c5bc77dd65ecc935f3e3cb72d1b98ff96bfed40"
element:
# providerCategory: "Supplier"
# providerResponsible: "Element"
@@ -108,13 +108,6 @@ images:
registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/element/images-mirror/groupsync"
tag: "v0.14.0@sha256:a8cee92b9035d8cc80cc13194e4e0118c7dfbfcbc4c0ee5ac173582d0cd55846"
elementHaProxy:
# Enterprise Component
# providerCategory: "Supplier"
# providerResponsible: "Element"
registry: "registry.opencode.de"
repository: "zendis/opendesk-enterprise/components/supplier/element/images-mirror/haproxy"
tag: "3.0-alpine@sha256:c22c8710886104a48b920306f063401f0d11811858e3c6b9d87d88a7556b2e61"
elementPipe:
# Enterprise Component
# providerCategory: "Supplier"
@@ -135,7 +128,7 @@ images:
# providerResponsible: "Element"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-element-syncadmins"
tag: "1.0.3@sha256:1dea24d5f65a6f9ac63b402c772dd81dcd07a847d24845901c8a039461043097"
tag: "1.0.5@sha256:ae0e18eadea762e11f8edacc52285742a5c4ed6e2e92bfa32ec5638e377e7b7b"
freshclam:
# providerCategory: "Community"
# providerResponsible: "openDesk"
@@ -143,7 +136,7 @@ images:
# upstreamRepository: "clamav/clamav"
registry: "registry-1.docker.io"
repository: "clamav/clamav"
tag: "1.1.1-10_base@sha256:aed8d5a3ef58352c862028fae44241215a50eae0b9acb7ba8892b1edc0a6598f"
tag: "1.4.2-38_base@sha256:e7d108f30ea8f16935dbd12e4b58665f1bc148ce3dd59028cf04088330216910"
icap:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
@@ -237,7 +230,7 @@ images:
# upstreamRepository: "library/mariadb"
registry: "registry-1.docker.io"
repository: "library/mariadb"
tag: "10.5@sha256:aa1ccc18000c32d1f39ac0b055117b27bffd93e622ec961d682de40fe2a1a95f"
tag: "10.6.21@sha256:8a16204dc96c08ed0ee2c52c0f9324aa5d2dd0e43ad23a471d447a39f75765b5"
matrixNeoBoardWidget:
# providerCategory: "Supplier"
# providerResponsible: "Nordeck"
@@ -295,7 +288,7 @@ images:
# upstreamRepository: "bitnami/memcached"
registry: "registry-1.docker.io"
repository: "bitnami/memcached"
tag: "1.6.21-debian-11-r107@sha256:247ec29efd6030960047a623aef025021154662edf6b6d6e88c97936f164d99d"
tag: "1.6.38-debian-12-r3@sha256:3e548fba727578be9d996262471f5f3e07726d625702d26743a5e0f34684cb21"
migrations:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
@@ -311,7 +304,7 @@ images:
# upstreamRepository: "clamav/clamav"
registry: "registry-1.docker.io"
repository: "clamav/clamav"
tag: "1.1.1-10_base@sha256:aed8d5a3ef58352c862028fae44241215a50eae0b9acb7ba8892b1edc0a6598f"
tag: "1.4.2-38_base@sha256:e7d108f30ea8f16935dbd12e4b58665f1bc148ce3dd59028cf04088330216910"
minio:
# providerCategory: "Community"
# providerResponsible: "openDesk"
@@ -319,7 +312,7 @@ images:
# upstreamRepository: "bitnami/minio"
registry: "registry-1.docker.io"
repository: "bitnami/minio"
tag: "2024.12.13-debian-12-r0@sha256:2a258ab6876f6ed3cd5609836d065f20927955a2ae721fd9edde8ca388b52135"
tag: "2025.4.22-debian-12-r1@sha256:d7cd0e172c4cc0870f4bdc3142018e2a37be9acf04d68f386600daad427e0cab"
nextcloud:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
@@ -327,7 +320,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud"
tag: "2.4.11@sha256:2fe6e311735c706016fe7b39c8f60a6cf0f0e735761dbc60fb4cd2eedbe135c4"
tag: "30.0.10@sha256:a022c6279072eb45d14cab29296860a15ad0d5801f50a56928334eb99bae50d0"
nextcloudExporter:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
@@ -335,7 +328,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud-exporter"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud-exporter"
tag: "1.0.1@sha256:63e63c7420e37d3989fa0ffdbcf18a07b2a603ab9b2a849c2e7e44342dd82af0"
tag: "1.0.3@sha256:d38f211a3cdc8397deccd0243061e20972a8a796eeb9bb552fe4ddec5d56c829"
nginxS3Gateway:
# providerCategory: "Community"
# providerResponsible: "openDesk"
@@ -343,7 +336,7 @@ images:
# upstreamRepository: "nginxinc/nginx-s3-gateway"
registry: "registry-1.docker.io"
repository: "nginxinc/nginx-s3-gateway"
tag: "unprivileged-oss-20241111@sha256:20d6b6ec5fc987b18c3e345de33674374a8335c593d6d0841ac64eb49ae2dea4"
tag: "unprivileged-oss-20250512@sha256:064d14fc64ba968bd8123f2f25e446e597cfc5170124879b3834deac1a6d69fd"
notesBackend:
# providerCategory: "Supplier"
# providerResponsible: "DINUM"
@@ -351,7 +344,7 @@ images:
# upstreamRepository: "lasuite/impress-backend"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-notes"
tag: "1.7.0-docs-v2.4.0-backend@sha256:837e09dfcb4014de97b5254956dda899e586170276d1d0b0f94cca0685f3d2ef"
tag: "1.9.0-docs-v3.2.1-backend@sha256:17c16e4e00b15e4637d01553d56e7eecb7a477bec48677d1e7fb07b04c48d2b8"
notesFrontend:
# providerCategory: "Supplier"
# providerResponsible: "DINUM"
@@ -359,7 +352,7 @@ images:
# upstreamRepository: "lasuite/impress-frontend"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-notes"
tag: "1.7.0-docs-v2.4.0-frontend@sha256:98fb87ad877eb5658c6bef1c09adf4e03f816dce61867bc099838aca15890887"
tag: "1.9.0-docs-v3.2.1-frontend@sha256:328d5a8bf41875eb5945229adfc4a52eb2fef109e25d980910ee77edd4bc1887"
notesYProvider:
# providerCategory: "Supplier"
# providerResponsible: "DINUM"
@@ -367,7 +360,7 @@ images:
# upstreamRepository: "lasuite/impress-y-provider"
registry: "registry-1.docker.io"
repository: "lasuite/impress-y-provider"
tag: "v2.4.0@sha256:329d47f5cda80941a7f0812969c3194ba68da3e7e1ef38e3d08c266fc97555c1"
tag: "v3.2.1@sha256:9dd7068336c02fe71806bc3576e7dc8636d7ccb139667c6303f0753e18d3ab7e"
nubusDataLoader:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -377,7 +370,7 @@ images:
# upstreamMirrorStartFrom: ["0", "41", "5"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/data-loader"
tag: "0.89.0@sha256:3ed16810357ed01152e1e3f0d1cd66825bde53302f32d3caf700e324f7c1cffb"
tag: "0.90.0@sha256:a776ea84ca5d4f984a1ecf1f97d8c90cd98894c3568401be6858a8e955c7ed92"
nubusGuardianAuthorizationApi:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -417,17 +410,17 @@ images:
# upstreamMirrorStartFrom: ["0", "3", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/guardian-init"
tag: "0.17.0@sha256:56acfc53c3d3e0a20ff77fe427ae794adbf03ccc66972c95188e0da9e87c4a62"
tag: "0.19.1@sha256:9030841a136d9addc37b2b62d39d80b113b824e50bd9cdcd5cf2c22bad74eeb0"
nubusKeycloak:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
# upstreamRegistry: "https://artifacts.software-univention.de"
# upstreamRepository: "nubus/images/keycloak"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+).+$'
# upstreamMirrorStartFrom: ["22", "0", "3"]
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
# upstreamMirrorStartFrom: ["0", "0", "1"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak"
tag: "25.0.6-ucs6@sha256:1db8af70741bca9badeb3d5b0b145244dde1a2579fe4f966e488ce730cb07d65"
tag: "0.0.1@sha256:ce2397ac38920750b81a8a6065f7ed8a551641c6562a551963a2857fe6822beb"
nubusKeycloakBootstrap:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -437,7 +430,7 @@ images:
# upstreamMirrorStartFrom: ["0", "1", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-bootstrap"
tag: "0.10.2@sha256:7406bfee267dff6520b8b3c0db098a79e7f9fe1b45307ea6b1edf26a2bcfc1aa"
tag: "0.11.0@sha256:55ad741e01dd91bb9b0332fd602a6262d3618abdf97a86c13f1e6148b36bd242"
nubusKeycloakExtensionHandler:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -467,7 +460,7 @@ images:
# upstreamMirrorStartFrom: ["0", "8", "2"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-notifier"
tag: "0.34.1@sha256:02d1a0d6ce7e154738f4a1c2323f901245b62c23c8e6c27ce19a57ab44cfdaa7"
tag: "0.37.0@sha256:b148e15c268badc45db9a6ce12c97cce332d25b86e86fec47fc417b8fe74d0d2"
nubusLdapServer:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -477,7 +470,7 @@ images:
# upstreamMirrorStartFrom: ["0", "8", "2"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-server"
tag: "0.34.1@sha256:5bb7931393d2023dc63c1338632b01d4c50372cb83192cdb329512b93e109984"
tag: "0.37.0@sha256:caf7de9e121e5500c52dc8338b80057acd3eaa1e3877b526a5ae944bb53fe876"
nubusLdapServerDhInitContainer:
# providerCategory: 'Community'
# providerResponsible: 'Univention'
@@ -495,7 +488,7 @@ images:
# upstreamMirrorStartFrom: ["0", "29", "1"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-server-elector"
tag: "0.33.0@sha256:c1304a156094b276199fb263baf93e3704ceece478d7f663061b1b1f05f5931c"
tag: "0.37.0@sha256:c9580e33ea48ec5d7ab2d4816926ca1b2ef72787f7615f31b124119c376c4324"
nubusNats:
# providerCategory: 'Community'
# providerResponsible: 'Univention'
@@ -529,7 +522,7 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "4"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/notifications-api"
tag: "0.63.0@sha256:4c2e01e609fb83df6d090c389b5c63d4b1477bdb133b910cacf2f2a1ce1c39e1"
tag: "0.67.0@sha256:da28ce84d97b78027eafbe0bcf8286a333efffdfc52a8abe852caed9d8cde339"
nubusOpendeskExtension:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
@@ -537,7 +530,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-nubus"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-nubus"
tag: "1.13.1@sha256:eb96855b53241bcb1dd64d72d8c76f7ee080291da72e6dff39ed2fc81b8ac99b"
tag: "1.14.4@sha256:cf0e22c1eef138a413a90a60c5405126dc769195dd4dd37229a27afaa82ef3b3"
nubusOpendeskExtensionA2gMapper:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
@@ -575,7 +568,7 @@ images:
# upstreamMirrorStartFrom: ["0", "27", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-consumer"
tag: "0.63.0@sha256:e331f87738e716b0a16199b6aeaec917509946ce7b7ee91e608e70091dd279cc"
tag: "0.67.1@sha256:580adf9079d27f53f6efd0c519252c7855f6907e3badc033b994165856b16126"
nubusPortalExtension:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -603,7 +596,7 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "4"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-server"
tag: "0.63.0@sha256:04cff7bb6b565e4ff03ffd1a6b6ab6c76b98bb9ea0fb8e703551f1b586ea7c27"
tag: "0.67.0@sha256:d9418c7a1db7541ced1e3034f45683c190bf63270c6ba8f3d67c1fe0ac2edb1a"
nubusProvisioningDispatcher:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -613,7 +606,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-dispatcher"
tag: "0.49.3@sha256:1089683a7e04259b335c79c13ceca2879d5d834a13d9c93ef62315f3086c9efd"
tag: "0.51.0@sha256:f0cea25f788ff565b883e50c6138874c6f0338e0f91c5f8a32595323059930ef"
nubusProvisioningEventsAndConsumerApi:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -623,7 +616,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-events-and-consumer-api"
tag: "0.49.3@sha256:56a5ca05a570f5a0f68ac67abbf8726541455f03bf0bada0495187d1a0fe963a"
tag: "0.51.0@sha256:66fec83fd5033cf32cd759e9c73f7ae659a4ec45a433f13417a12e007b1d4db6"
nubusProvisioningPrefill:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -633,7 +626,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-prefill"
tag: "0.49.3@sha256:761863e5499eb702d0a606e9a58d10055c637ed286ff18998125cb5f82a7c788"
tag: "0.51.0@sha256:ff04d8cec6ecc0b33cdea164e1ba1222c90ed9fe8370057a58329b4521e56de1"
nubusProvisioningUdmListener:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -643,7 +636,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-listener"
tag: "0.49.3@sha256:9bd8dd7531e3247761a6347a1889640821121c56435a96c286d1f6385a3152e7"
tag: "0.51.0@sha256:5f0bba855945da2fa97d40b0fe51a14e3495b0b6da83562def6a6fcf4c21c059"
nubusProvisioningUdmTransformer:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -653,7 +646,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-transformer"
tag: "0.49.3@sha256:9ce6b3798fb6faba6ebfac1be19b51d12bc8b312decf87f482a2371cb961805e"
tag: "0.51.0@sha256:ce9c312699ebe42c2e1df0d6caf150dfda1e4cc3fc1aaebe62c9ea5de8c11780"
nubusSelfServiceConsumer:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -663,7 +656,7 @@ images:
# upstreamMirrorStartFrom: ["0", "3", "2"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/selfservice-invitation"
tag: "0.14.0@sha256:999c50058a02f6006a8d1732b651a5c738c5ee91fc453dc8ae3fcdbb9d4192c0"
tag: "0.15.0@sha256:a7c4c097029de8903e3c2eee2082d740b5352dcc7a7a2a3c330bd9ebd7ad5b62"
nubusUdmRestApi:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -673,7 +666,7 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "3"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/udm-rest-api"
tag: "0.29.0@sha256:2b061d1cf244aeadcb790a08cac94804a32abe73dd442382355a6657b05c0ff2"
tag: "0.30.0@sha256:9503666bac5f44a1d7cb6f17c6fd11a7d6976bc9059938596b6ac9f7bb581ca5"
nubusUmcGateway:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -683,7 +676,7 @@ images:
# upstreamMirrorStartFrom: ["0", "7", "3"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-gateway"
tag: "0.38.0@sha256:5abece086fc55cc318453a23634094bdf4e0f9922debce87fbb1aa4d55b9eac1"
tag: "0.43.1@sha256:e1f23a199e1e35667e2ba6a45866bcb6d37bc2b13f3b8134e511ae95973c743b"
nubusUmcServer:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -693,7 +686,7 @@ images:
# upstreamMirrorStartFrom: ["0", "7", "3"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-server"
tag: "0.38.0@sha256:2733c21900c8f861f53cff5f65ed20a21881180ff80472491c014e1e2a9c2a9d"
tag: "0.43.1@sha256:1aef76db446164c3ffaeaf233e9ef6303ebb1609b47f918ac4ab6714abf95283"
nubusUmcServerProxy:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -711,7 +704,7 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "4"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/wait-for-dependency"
tag: "0.28.0@sha256:816ad27b76046be360398274ba3c1f1bcec8f58c2ea5a200b2fb675aab1a5ab8"
tag: "0.30.0@sha256:fa804c2a10aa42439bf3f388007d7e55c046d6da6dc8a74c27f5a989fd422c8d"
opendeskKeycloakBootstrap:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
@@ -727,7 +720,7 @@ images:
# upstreamRepository: "library/nginx"
registry: "registry-1.docker.io"
repository: "library/nginx"
tag: "1.27.3-alpine3.20@sha256:41523187cf7d7a2f2677a80609d9caa14388bf5c1fbca9c410ba3de602aaaab4"
tag: "1.28.0-alpine3.21@sha256:aed99734248e851764f1f2146835ecad42b5f994081fa6631cc5d79240891ec9"
openproject:
# providerCategory: "Supplier"
# providerResponsible: "OpenProject"
@@ -737,7 +730,7 @@ images:
# upstreamMirrorStartFrom: ["13", "1", "1"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/openproject/images-mirror/open_desk"
tag: "15.5.0@sha256:267f76694d0e86bc574035527b86b48ecc96c468bb6e7357d9edbc761b096969"
tag: "16.0.1@sha256:c5b1172aed7e5e5ae21cca915e3349cc67fdf1366c9ded3c94db1ae5084e3841"
openprojectBootstrap:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
@@ -753,7 +746,7 @@ images:
# upstreamRepository: "library/postgres"
registry: "registry-1.docker.io"
repository: "library/postgres"
tag: "16.8-alpine3.20@sha256:951d0626662c85a25e1ba0a89e64f314a2b99abced2c85b4423506249c2d82b0"
tag: "16.9-alpine3.20@sha256:e5507c984377515b8c9922b0eb19f55aba2063fdc7bccf268cefd53133f97054"
openxchangeBootstrap:
# providerCategory: "Community"
# providerResponsible: "openDesk"
@@ -761,7 +754,7 @@ images:
# upstreamRepository: "alpine/k8s"
registry: "registry-1.docker.io"
repository: "alpine/k8s"
tag: "1.31.3@sha256:77812543abe5649b286d5f0dc17a7dbaa4056433225f6f695150f329cb4b6803"
tag: "1.33.0@sha256:60333a52c38e9a8df0a9b93a5a24a4870f0db2c7ea3266b185386bd0a500d7dc"
openxchangeCoreGuidedtours:
# providerCategory: "Supplier"
# providerResponsible: "Open-Xchange"
@@ -771,7 +764,7 @@ images:
# upstreamMirrorStartFrom: ["8", "6", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-guidedtours"
tag: "8.6.14@sha256:c00546144667d2d5036fa37b2e6185f1abb53c13e9eee7b0c78ec64ac8e5250a"
tag: "8.6.17@sha256:27178fc42f2334385f1d206e4e7991d4953a102f114729d186b61c0d40babb4f"
openxchangeCoreMW:
# providerCategory: "Supplier"
# providerResponsible: "Open-Xchange"
@@ -781,7 +774,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "51"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/middleware-public-sector"
tag: "8.35.83@sha256:5c4180c1ba255193059241921e6fe0a34555592aa29104a145a0e1beb91157d2"
tag: "8.37.69@sha256:dc06c7d9880505ad44ec7892ddf8f379fcd5f106ba1508436501c8f6e94dddb3"
openxchangeCoreUI:
# providerCategory: "Supplier"
# providerResponsible: "Open-Xchange"
@@ -791,7 +784,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "1"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-ui"
tag: "8.35.2@sha256:658563b6ec4d3d5f2e06f2987cd8e730d91b8d0c65b0206495007d347f98965f"
tag: "8.37.1@sha256:eb30e03a5976d57a62d00a613336631d46bffc84c0d67e422f062635669f6b62"
openxchangeCoreUIMiddleware:
# providerCategory: "Supplier"
# providerResponsible: "Open-Xchange"
@@ -801,7 +794,7 @@ images:
# upstreamMirrorStartFrom: ["2", "0", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-ui-middleware"
tag: "2.1.1@sha256:1a3e96243353a53e06bf3d90067d7d07de449e8273fa60a043d7ac4a5e6464c3"
tag: "2.1.2@sha256:36fe59a047fa466bef6fcdeed1ed8e4bbeaf7824c37c63e3bfe7262cd135cb9e"
openxchangeCoreUserGuide:
# providerCategory: "Supplier"
# providerResponsible: "Open-Xchange"
@@ -811,7 +804,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "799279"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/core-user-guide"
tag: "8.35.1292950@sha256:a6937222e3b07b42c7dc6a066aae0cd05b3b899325a4e4aee50ee91355c9b3b5"
tag: "8.37.1354160@sha256:226b210268cd3c9b13a84a2ca1168e1ab08b62e19bccd3129adad7ffca514655"
openxchangeDocumentConverter:
# providerCategory: "Supplier"
# providerResponsible: "Open-Xchange"
@@ -821,7 +814,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "50"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/documentconverter"
tag: "8.35.1671@sha256:0a7b9d7af9cd22562196b854ad11ca3fd477ddcc70f2ccd113e87ab3b7aad26c"
tag: "8.37.1818@sha256:d9dc76ac6b24987c1fc0d95ffd81b3d594f7f34aa38a687b98c738bdcd110928"
openxchangeGotenberg:
# providerCategory: "Supplier"
# providerResponsible: "Open-Xchange"
@@ -841,7 +834,7 @@ images:
# upstreamMirrorStartFrom: ["4", "2", "2"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/guard-ui"
tag: "8.32.0@sha256:5c9542f9112882e46c3b8cb6f0ca2bef61585abac0e640a4fafa7d7ef60a392b"
tag: "8.33.2@sha256:920b5ac87128f30c176c0ae75c6bedd32d226a97c6c5a822235606c39992ee9a"
openxchangeImageConverter:
# providerCategory: "Supplier"
# providerResponsible: "Open-Xchange"
@@ -851,7 +844,7 @@ images:
# upstreamMirrorStartFrom: ["8", "20", "50"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/imageconverter"
tag: "8.35.77@sha256:fb67cbaf0771ea6c18b5a1b94aaec9bf72b930227613e70535d382be58940372"
tag: "8.37.2089@sha256:8109351da173fa836d5559973103c8890e6a6e2514866675387bbf4d49606917"
openxchangeNextcloudIntegrationUI:
# providerCategory: "Supplier"
# providerResponsible: "Open-Xchange"
@@ -861,7 +854,7 @@ images:
# upstreamMirrorStartFrom: ["1", "2", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/nextcloud-integration-ui"
tag: "1.4.0@sha256:4be267ab2dc8dbef6b8382e2de6b28f3851a7af7f68702f360d457898cb9011e"
tag: "1.4.1@sha256:423d596b52ab32778d7227d98ccc719f98395a00d95ff0bcac826665b59e1937"
openxchangePublicSectorUI:
# providerCategory: "Supplier"
# providerResponsible: "Open-Xchange"
@@ -871,7 +864,7 @@ images:
# upstreamMirrorStartFrom: ["2", "2", "1"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/open-xchange/images-mirror/public-sector-ui"
tag: "2.4.0@sha256:6513e948028ed98aca633d9943ef3be5fed890e4757eee6b527b7215206d2bd6"
tag: "2.4.1@sha256:c9f0f5425517e1740aaf9998c5944ce36ce26eda52329754e6b8ac733e2dacc5"
oxConnector:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -889,7 +882,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/platform-development/images/postfix"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/postfix"
tag: "3.0.1@sha256:d2c6543b35b616ac3e6c8c27222d3154c0d35680813a8942ce0cc3fa9ea72a6d"
tag: "3.0.3@sha256:12bcebf57ddb53258c48eaa60e9c25b441f4319ee1b94b363c652ad0a992a875"
postfixBootstrap:
# providerCategory: "Community"
# providerResponsible: "openDesk"
@@ -897,7 +890,7 @@ images:
# upstreamRepository: "alpine/k8s"
registry: "registry-1.docker.io"
repository: "alpine/k8s"
tag: "1.32.3@sha256:eec3541331932d8613ce7b3283508063cba7f704302e9b4eda45e49b38a2a0f9"
tag: "1.33.0@sha256:60333a52c38e9a8df0a9b93a5a24a4870f0db2c7ea3266b185386bd0a500d7dc"
postgresql:
# providerCategory: "Community"
# providerResponsible: "openDesk"
@@ -905,7 +898,7 @@ images:
# upstreamRepository: "library/postgres"
registry: "registry-1.docker.io"
repository: "library/postgres"
tag: "15.4-alpine3.18@sha256:f36c528a2dc8747ea40b4cb8578da69fa75c5063fd6a71dcea3e3b2a6404ff7b"
tag: "15.13-alpine3.20@sha256:f7de0e2497b9a3b027d41377606f94bb0140a034ed303f6de690aa77637bfbc9"
prosody:
# providerCategory: "Supplier"
# providerResponsible: "Nordeck"
@@ -923,7 +916,7 @@ images:
# upstreamRepository: "bitnami/redis"
registry: "registry-1.docker.io"
repository: "bitnami/redis"
tag: "7.4.1-debian-12-r2@sha256:3cfa11e8fef45c006a101ed7cfaae2cdaed7a5167c8ada2a3f76a1de54488cd0"
tag: "7.4.3-debian-12-r0@sha256:a25b5d07a14ec13730022c7cd9bab6308d55ccd86b74af7315553c17be884889"
synapse:
# providerCategory: "Supplier"
# providerResponsible: "Element"
@@ -933,7 +926,7 @@ images:
# upstreamMirrorStartFrom: ["1", "91", "2"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/element/images-mirror/synapse"
tag: "v1.127.1@sha256:0b0b933314ac9e1ba917a72c29d5b49c47828ab6e8df3aae3ac244ee947a89fc"
tag: "v1.129.0@sha256:13ac3293547d8c06e1e03fca4e02ef9a47f132acc2e2cdb4143a01495dd924cf"
synapseCreateUser:
# providerCategory: "Community"
# providerResponsible: "Nordeck"
@@ -941,7 +934,7 @@ images:
# upstreamRepository: "alpine/k8s"
registry: "registry-1.docker.io"
repository: "alpine/k8s"
tag: "1.32.0@sha256:6d49f7f37ae5f4c07bfe46edb44e3d3b6896974d1b87da76d8aa8d6e23b4d619"
tag: "1.33.0@sha256:60333a52c38e9a8df0a9b93a5a24a4870f0db2c7ea3266b185386bd0a500d7dc"
synapseGuestModule:
# providerCategory: "Supplier"
# providerResponsible: "Element"
@@ -959,7 +952,7 @@ images:
# upstreamRepository: "rapidfort/haproxy-official"
registry: "registry-1.docker.io"
repository: "rapidfort/haproxy-official"
tag: "2.6.15-bullseye@sha256:47b6ca4074347788cb414fbf3db35d0c51e9e47af33be46457f95c750540887c"
tag: "3.1.7-bookworm@sha256:ab50f196f66884f62fb379c40824036cd0dabb10df660097cff99b7ae22c2c44"
wellKnown:
# providerCategory: "Community"
# providerResponsible: "Element"
@@ -967,7 +960,7 @@ images:
# upstreamRepository: "library/nginx"
registry: "registry-1.docker.io"
repository: "library/nginx"
tag: "1.27.3-alpine3.20@sha256:41523187cf7d7a2f2677a80609d9caa14388bf5c1fbca9c410ba3de602aaaab4"
tag: "1.28.0-alpine3.21@sha256:aed99734248e851764f1f2146835ecad42b5f994081fa6631cc5d79240891ec9"
xwikiMariadb:
# providerCategory: "Supplier"
# providerResponsible: "XWiki"

View File

@@ -12,6 +12,7 @@ ingress:
collabora: "100M"
element: "100M"
nextcloud: "100M"
notes: "100M"
openproject: "100M"
oxAppSuite: "100M"
xwiki: "100M"
@@ -19,6 +20,7 @@ ingress:
collabora: 600
element: 60
nextcloud: 600
notes: 60
openproject: 60
oxAppSuite: 60
xwiki: 60

View File

@@ -97,41 +97,6 @@
--login-logo: url("/static-files/login/logo.svg") no-repeat center;
}
/* Beta overlay for Notes */
.portal-tile[target="tab_notes"]:before {
position: absolute;
content: "Beta";
color: #571EFA;
transform: rotate(45deg);
top: 8px;
right: 0px;
font-size: var(--font-size-5);
font-weight: bold;
z-index: 1;
}
@media screen and (max-width: 748px) {
.portal-tile[target="tab_notes"]:before {
top: 5px;
font-size: 10px;
}
.portal-tile__name {
font-size: 13px;
}
}
.portal-tile[target="tab_notes"]:after {
position: absolute;
content: "";
top: 1px;
right: 1px;
border-style: solid;
border-width: 0 calc(var(--app-tile-side-length) / 2) calc(var(--app-tile-side-length) / 2) 0;
border-color: transparent #E9E4FC transparent transparent;
z-index: 0;
border-top-right-radius: calc(var(--border-radius-apptile) - 1px);
}
/* Keycloak user screens begin */
#kc-login,
#kc-logout,
@@ -145,6 +110,13 @@
color: var(--color-opendesk-white) !important;
}
#social-sso-federation-idp {
margin: 0;
color: var(--color-opendesk-white);
background-color: var(--pf-c-button--m-primary--BackgroundColor);
border-radius: var(--border-radius-interactable, 0.25rem);
}
#kc-login:hover,
#kc-logout:hover,
#saveTOTPBtn:hover,

View File

@@ -22,11 +22,11 @@ name: "openDesk"
platforms:
- "web"
developmentStatus: "stable"
softwareVersion: "1.3.1"
softwareVersion: "1.5.0"
releaseDate: "2025-04-23"
softwareType: "standalone/web"
url: "https://gitlab.opencode.de/bmi/opendesk/"
logo: "openDesk-logo-rgb-color.svg"
logo: ".opencode/openDesk-logo-rgb-color.svg"
maintenance:
type: "contract"
@@ -91,8 +91,6 @@ description:
- ".opencode/screenshots/02-dateien-desktop.png"
- ".opencode/screenshots/03-projekte-desktop.png"
- ".opencode/screenshots/04-wiki-desktop.png"
videos:
- ".opencode/screenshots/openDesk_Intro.mp4"
documentation: "https://docs.opendesk.eu/user"
usedBy:
- "Robert Koch-Institut"