diff --git a/Images/Overview_github_flow.png b/Images/Overview_github_flow.png deleted file mode 100644 index 5752a67b552b3888b5e4bee3c5b3cf05e9d46fa7..0000000000000000000000000000000000000000 Binary files a/Images/Overview_github_flow.png and /dev/null differ diff --git a/OVERVIEW.md b/OVERVIEW.md index c668d114b00e6a60e7eddfdd1324dc400b5d9662..7aebc07bf8d2d25c5fc2bd80033b51a444b38a10 100644 --- a/OVERVIEW.md +++ b/OVERVIEW.md @@ -1,12 +1,29 @@ -**Inhalte / Schnellnavigation** - -[[_TOC_]] - -# openDesk auf gitlab.opencode.de +<h1>openDesk Überblick</h1> -Der openDesk integriert Open Source Anwendungen bekannter Anbieter zu einer browserbasierten Open Source Kollaborations-Suite. - -**Der openDesk ist ein digitaler Arbeitsplatz für die Öffentliche Verwaltung mit Fokus auf Digitale Souveränität, Nutzerfreundlichkeit und Zukunftsfähigkeit.** +**Inhalte / Schnellnavigation** +* [openDesk Elevator Pitch](#opendesk-elevator-pitch) +* [Disclaimer](#disclaimer) +* [Inhalt und Zielgruppe dieses Dokuments](#inhalt-und-zielgruppe-dieses-dokuments) +* [Entwicklung von openDesk](#entwicklung-von-opendesk) + * [Anwendungsentwicklung](#anwendungsentwicklung) + * [Integrationsentwicklung](#integrationsentwicklung) + * [Anwendungsintegration- und Bereitstellung](#anwendungsintegration--und-bereitstellung) +* [Komponenten von openDesk](#komponenten-von-opendesk) + * [Helm Charts und Container-Images](#helm-charts-und-container-images) + * [Weitere Liefergegenstände](#weitere-liefergegenstände) +* [Releases](#releases) +* [Rückmeldungen und Beteiligung](#rückmeldungen-und-beteiligung) + * [Rückmeldungen](#rückmeldungen) + * [Beteiligung](#beteiligung) + * [Anwendungs- und Integrationsentwicklung](#anwendungs--und-integrationsentwicklung) + * [Anwendungsintegration- und Bereitstellung](#anwendungsintegration--und-bereitstellung-1) +* [Fußnoten](#fußnoten) + +# openDesk Elevator Pitch + +openDesk integriert Open Source Anwendungen bekannter Anbieter zu einer browserbasierten Open Source Kollaborations-Suite. + +**openDesk ist ein digitaler Arbeitsplatz für die Öffentliche Verwaltung mit Fokus auf Digitale Souveränität, Nutzerfreundlichkeit und Zukunftsfähigkeit.** Das Open Source Softwareprodukt "openDesk" ermöglicht die Wiederverwendbarkeit von Open Source Quellcodes der Öffentlichen Verwaltung und gibt Raum zur Teilhabe an der Weiterentwicklung. Flexible Weiterentwicklungsmöglichkeiten erlauben das Einbringen eigener Ideen, Anforderungen und Anwendungen. @@ -15,6 +32,7 @@ Als Betriebsumgebung von openDesk kommt Kubernetes zum Einsatz. Die teilweise ni # Disclaimer Es gelten die Inhalte der Seite [Häufig gestellte Fragen von Open CoDE](https://opencode.de/de/faq). + # Inhalt und Zielgruppe dieses Dokuments Dieses Dokument gibt einen Überblick über openDesk auf https://gitlab.opencode.de/bmi/opendesk und hat daher eine technische Ausrichtung. @@ -55,10 +73,10 @@ Den funktionalen Kern von openDesk bilden die im folgenden genannten Anwendungen Einige Hersteller entwickeln Integrations-Erweiterungen spezifisch für openDesk, insbesondere zur Integration der Komponenten untereinander und zur Umsetzung des notwendigen Brandings. Die entsprechenden Hersteller sind mit Verweis auf den Sourcecode des zugehörigen Integrationspaketes der folgenden Liste zu entnehmen: -- Nextcloud: [integration_swp](https://gitlab.opencode.de/bmi/opendesk/component-code/file/nextcloud/apps/integration_swp) -- OX App Suite 8: (*Todo: Link einfügen wenn OX AppSuite 8 Integration Package Code verfügbar*) -- OpenProject: [Souvereign workplace plugin](https://gitlab.opencode.de/bmi/opendesk/component-code/project-management/openproject/openproject-souvap) -- XWiki: [SWP Overlay](https://gitlab.opencode.de/bmi/opendesk/component-code/knowledge-management/xwiki/swp-overlay) +- Nextcloud: [integration_swp](https://gitlab.opencode.de/bmi/opendesk/component-code/file/nextcloud/nextcloud_app_integration_swp) +- OX App Suite 8: [Public Sector Extensions](https://gitlab.opencode.de/bmi/opendesk/component-code/groupware/appsuite8/extensions-public-sector) +- OpenProject: [openDesk plugin](https://gitlab.opencode.de/bmi/opendesk/component-code/project-management/openproject/openproject-opendesk-plugin) +- XWiki: [SWP Overlay](https://gitlab.opencode.de/bmi/opendesk/component-code/knowledge-management/xwiki/xwiki_swp_overlay) ## Anwendungsintegration- und Bereitstellung @@ -95,44 +113,13 @@ Die folgende Tabelle gibt einen Überblick über die im Referenzdeployment entha Weitere Details zur Deploymentautomatisierung und den Voraussetzungen für den Betrieb von openDesk sind der [README.md der Deploymentautomatisierung](https://gitlab.opencode.de/bmi/opendesk/deployment/sovereign-workplace/-/blob/main/README.md) zu entnehmen. -## Helm-Charts und Container - -Die Deploymentautomatisierung bedient sich Helm-Charts und Container-Images, die überwiegend direkt von den Herstellern kommen, jedoch auch in den zugehörigen Registries auf Open CoDE bereitgestellt werden[^6]. - -## Testautomatisierung - -### Integrationstests - -Die Integrationstests bei openDesk haben ihren Schwerpunkt auf den speziellen openDesk Anwendungsfällen, d.h. insbesondere den integrativen Features, sowie den Prozessen rund um die Authentisierung des Anwenders. Grundsätzlich baut openDesk auf der durch die Hersteller geleisteten Produkt-QA auf. Das Ziel der Integrationstests ist durch hohe Integrationstestabdeckung auch kurzfristig Releases von openDesk bereitstellen zu können. - -Weitere Details zur Testautomatisierung folgen im August 2023 mit der Readme des zugehörigen Repositories (*Todo: Link einfügen, wenn verfügbar*). - -### Geplante zusätzliche Sicherheitsscans +## Helm Charts und Container-Images -Zudem wird bis zum ersten Release Ende 2023 der aktuelle Entwicklungsstand des openDesks täglich (`nightly`) automatisiert installiert und mit den folgenden Tools gescannt: -- kubescape -- trivy -- OWASP(R) Zed Attack Proxy (ZAP) +Die Deploymentautomatisierung bedient sich Helm Charts und Container-Images, die überwiegend direkt von den Herstellern kommen, jedoch auch in den [zugehörigen Registries](https://gitlab.opencode.de/bmi/opendesk/components) auf Open CoDE bereitgestellt werden[^6]. -### Last- und Performance-Tests +## Weitere Liefergegenstände -Die Durchführung von Last- und Performancetests befindet sich noch in der Planung, soll aber ebenfalls regelmässig und automatisiert erfolgen. - -## Software Bill of Materials - -Zu den eingesetzten Container-Images wird jeweils ein Software-Bill-of-Materials (SBOM, vergleiche auch [Wikipedia](https://en.wikipedia.org/wiki/Software_supply_chain)) erstellt, um Transparenz darüber zu schaffen, welche Softwarekomponenten in welcher Version Teil der Lieferung von openDesk sind. - -Diese SBOMs werden ebenfalls auf Open CoDE veröffentlicht (*Todo: Link einfügen, wenn verfügbar*). - -## CVE-Reports - -Die zuvor angesprochenen SBOMs ermöglichen eine Prüfung der eingesetzten Softwarepakete hinsichtlich Sicherheitslücken. - -Die Ergebnisse der CVE-Prüfungen (vergleiche auch [Wikipedia](https://en.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures)) werden ebenfalls auf Open CoDE zu finden sein. (*Todo: Link einfügen, wenn verfügbar*) - -## Dokumentation und Prüfberichte - -Darüber hinaus sollen Endnutzer- und Betriebsdokumentation sowie Prüfberichte bereitgestellt werden. (*Todo: Link einfügen, wenn verfügbar*) +Eine Übersicht zu weiteren Liefergegenständen kann den [Release Notes des Releases 23.12](./23.12/README.md) und zukünftiger Releases entnommen werden. # Releases @@ -146,7 +133,7 @@ Bei der Entwicklung halten wir uns dabei an zwei international gebräuchliche Ko - Versionierung basierend auf dem [Semantic Versioning Standard](https://semver.org/) Standard. - Commits basierend auf dem [Conventional Commits](https://www.conventionalcommits.org/) Standard. -Offizielle Releases werden über ein explizites Tagging erzeugt, welches das gängige `<Jahr>.<Monat>.<Patch>` Muster nutzt, z.B. `23.06.0`, und mit dem ersten, für Ende 2023 vorgesehenen Release beginnt. +Offizielle Releases werden über ein explizites Tagging erzeugt, welches das gängige `<Jahr>.<Monat>.<Patch>` Muster nutzt, z.B. `23.12`. # Rückmeldungen und Beteiligung @@ -163,6 +150,7 @@ Insbesondere bei Themen die in einer einzelnen Fachkomponente verortet sind, ste Besteht Unsicherheit, welcher Kanal der geeigneste ist, bitte das Thema [im Diskussionsbereich auf Open CoDE platzieren](https://discourse.opencode.de/t/souveraener-arbeitsplatz-projekt-351/) platzieren, so dass wir uns um eine Antwort kümmern bzw. das Thema in dem richtigen Kanal unterbringen können. ## Beteiligung + ### Anwendungs- und Integrationsentwicklung Code-Anpassungen, z.B. Merge- / Pull-Requests, an den aufgeführten Produkten und deren zugehörigen Integrationspaketen können jeweils über die Upstream-Repositories der Hersteller und deren zugehörige Contribution-Prozesse durchgeführt werden. In den Repositorybeschreibungen auf Open CoDE wird das jeweilige Upstream-Repos benannt. @@ -171,17 +159,11 @@ Code-Anpassungen, z.B. Merge- / Pull-Requests, an den aufgeführten Produkten un **ACHTUNG:** Alle für das Projekt erstellten (Code)Zeilen werden zwingend unter die Apache 2.0 Lizenz gestellt. Zudem bedarf es der Rechteabtretung die sich an den [Open CoDE Vorgaben](https://wikijs.opencode.de/de/Hilfestellungen_und_Richtlinien/CLA_DCO) orientiert. Aktuell befinden wir uns noch in der Erarbeitung dieses Prozesses für openDesk und können daher noch keine Merge Requests von Personen die nicht Teil des Projektes sind annehmen. Siehe auch [CONTRIBUTING.md](./CONTRIBUTING.md). -An der [Deployment-](https://gitlab.opencode.de/bmi/opendesk/deployment/sovereign-workplace) und Testautomatisierung (*Todo: Link einfügen, wenn verfügbar*) kann sich unmittelbar über Merge Requests (MR) beteiligt werden. - -Die Entwicklung nutzt bis auf Weiteres den einfachen -[GitHub flow](https://docs.github.com/en/get-started/quickstart/github-flow): - - -Jedoch mit dem Unterschied, dass wir statt von "Pull Requests" von "Merge Requests" sprechen, da auf Open CoDE Gitlab zum Einsatz kommt und dort in der Benutzeroberfläche das Wording "Merge Request" verwendet wird. Es handelt sich aber um das gleiche Verfahren, siehe auch https://de.wikipedia.org/wiki/Pull_Request. +An der [Deployment-](https://gitlab.opencode.de/bmi/opendesk/deployment/sovereign-workplace) und [Testautomatisierung](https://gitlab.opencode.de/bmi/opendesk/deployment/e2e-tests) kann sich unmittelbar über Merge Requests beteiligt werden. Registrierte Benutzer auf Open CoDE können über [Forks](https://docs.gitlab.com/ee/user/project/repository/forking_workflow.html) Inhalte zum Projekt beisteuern. Projektmitglieder haben im Regelfall `Developer`-Berechtigungen in den Repositories und können über Branches und Merge-Requests Beistellungen leisten. -Wie bereits erwähnt verwendet die Entwicklung Conventional Commits. Wenn ein oder mehrere Commits eines Merge Requests sich nicht daran halten, werden die Commits im Rahmen des Merges zusammengefasst (squash) und von der durchführenden Person mit einer Commit-Message versehen. +Weitere Details können der [Beschreibung des Entwicklungsworkflows](https://gitlab.opencode.de/bmi/opendesk/deployment/sovereign-workplace/-/blob/main/docs/workflow.md) entnommen werden. # Fußnoten