Skip to main content

VertragsWerk - Releases

← App details

Nextcloud 34

VertragsWerk 1.7.0
Release Details
UpdatedSept. 6, 2026, 12:41 a.m.
Changelog

Added

  • Automatisches Backup: In den Einstellungen zeigt VertragsWerk jetzt, wann zuletzt gesichert wurde und wann die nächste Sicherung fällig ist. Ein Button „Jetzt sichern" löst eine Sicherung sofort aus, ohne auf den nächsten Intervall-Zeitpunkt zu warten (#397)

Fixed

  • Automatisches Backup: Der Sicherungsrhythmus wanderte Tag für Tag um bis zu einer Stunde nach hinten (z. B. rund 25 statt 24 Stunden bei täglicher Sicherung), weil als „zuletzt gesichert" der tatsächliche – durch die stündliche Prüfung leicht verspätete – Zeitpunkt gespeichert und zum neuen Ausgangspunkt wurde. Der Zeitplan wird jetzt an feste Intervalle verankert, sodass sich keine Verspätung mehr aufsummiert; verpasste Läufe (z. B. Server war aus) werden zu einer einzigen Nachhol-Sicherung zusammengefasst (#375)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturecvlEPnIKbl3NZG8jDo/tPcLVVV8r+h+y+iBjZWnvMKu1Hd4bxtL9Ge374uPyXH58I4Fn+XiBYhU3l9lQv9ZRjN3y1SCLSso+2VKDZUH0AcitiflXB1uz+5F3HP7eA2Fa4GfTd00MfcKEh22+oGGaomwtUCK9gds491QPFCgV6v3kcOdfFF/Lzah7UmOf7oWJGqvwr54ccM3Wu1YDNcX01zBxxCUnvL9ktl9a+PI9/3K/y0zUmLS2su/jsR2fMLYM7RjL3u40DlnxA8zRq/TOTuCg/xYfkGVQb2uOwop5MGGFftO7ODBVnFywtw7KBGXVGqfPaCJKsGLzbeXLulJzDg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.6.0
Release Details
UpdatedAug. 28, 2026, 2:19 p.m.
Changelog

Added

  • Kalender-Abo: Vertragsfristen lassen sich als schreibgeschützter Kalender (ICS) in der Nextcloud-Kalender-App abonnieren. Pro Vertrag erscheint ein Ganztags-Termin an der Kündigungsfrist (bzw. dem Vertragsende). Enthalten sind nur die Verträge, für die man ohnehin Erinnerungen erhält, damit der Kalender nicht überläuft. Die Abo-URL wird in den Einstellungen erzeugt, trägt einen geheimen Token und lässt sich bei Bedarf neu erzeugen (invalidiert die alte) (#68)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureOcObgECzJA8CiqXdiEqQjOUBkhv9o3+7AOCrIQfecN8z6Dfi2pKkVzYuAxJ0S/xkx6iLIoBwi8/Kbb9X2wCWVDiPrZQptqfTPSbhK9a+zsWna++CwCrdKKE4J2TSOWaw0JRlLVrgDRleMkHS36ruVW/CXThhA0419jMJQmGVH242E6GcfPTbV7BR4eeR/YA3foGlIVHydhRnJUpjlATbuJ4Neo9wij8A8kmMOfnim5WvrqPppJyWVQR4deZh26s3T0Jc6VtAR3JbnKyewN1dTd6Zk9zd+s+3sTb+cgYKIXu2uV5UqMo+PuA3aEUlGQZzeperm9t7I8pGo5VAe7fFsw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.5.0
Release Details
UpdatedAug. 26, 2026, 9:38 a.m.
Changelog

Added

  • Automatisches Backup: Auf Wunsch sichert VertragsWerk die eigenen Vertragsdaten regelmäßig als JSON-Datei in einen wählbaren Nextcloud-Ordner, damit der aktuelle Stand in jedem normalen Nextcloud-Backup landet, ohne jedes Mal einen vollen Account-Export anzustoßen. Aktivierbar in den Einstellungen (Ordner + Intervall täglich/wöchentlich/monatlich); es werden die letzten 30 Sicherungen behalten. Zusätzlich gibt es den Befehl occ contractmanager:export für Admin/Automatisierung. Das Serialisierungsformat ist identisch mit dem der Datenmigration (#296)

Changed

  • Zusatzfelder in den Administrator-Einstellungen haben jetzt ein echtes „aktiviert"-Flag statt der bisherigen Ableitung „Label leer = aus". Anhaken öffnet ein leeres Feld mit grauem Platzhalter (kein vorbefüllter Text mehr, den man erst löschen muss), Leerlöschen des Namens lässt das Feld offen, und ein abgehaktes Feld verschwindet aus dem Vertragsformular, behält aber seinen Namen fürs spätere Wiedereinschalten. Bestehende Konfigurationen bleiben unverändert (#368)
  • Der Hinweis unter der Vorlaufzeit im Vertragsformular lautet jetzt schlicht „Standard: X Tage.“ statt „Leer lassen = Standard (X Tage).“. Das graue X im Feld ist nur ein Platzhalter, kein fester Wert; die alte Formulierung wirkte dadurch widersprüchlich, als ließe sich der voreingetragene Wert nicht löschen (#364)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureN2yTXW9z26EU6EIMUKqqnpScMq0P/9wktuT++kzds5QKDGIqEZ6K7mvR5FZ/A+O+uq0rL0Sjbb8eepsIUWJQ5TV9t5E9WQQc4lpgoxEr4UlMCYerCvHmrhZQuC1KgE3XMUbxZ0a9a3KE+v4IOk5kgKl/g2z1r2noSXLDdrrs3L66z5EPEf7UhbB9BcbzG/Ht+C57nBVKIVbDmtixVl1VdwrYn+ThUO4REcK38Fl3oSaWwgZeHRT3+sQxFEcZr76cal775Mpo9EXdT6kKsWsE4IST9PRuISzLN6l0TWlrAsv02ao+thPzQxpL86aPY8yke89+IeOHDcZkulJBXlDwGw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.4.0
Release Details
UpdatedAug. 21, 2026, 10:16 a.m.
Changelog

Added

  • Verträge lassen sich jetzt per Ziehen aus der Liste auf einen Kategorie-Eintrag in der Seitenleiste einer Kategorie zuordnen oder umsortieren. Ein Ziehen auf „Ohne Kategorie" entfernt die Zuordnung. Das Ziel wird beim Drüberziehen hervorgehoben. Das ist eine Ergänzung zum Bearbeiten-Formular, das die Kategorie weiterhin setzt (Touch- und Tastatur-Weg bleiben unverändert). Nur Bearbeiter können auf diesem Weg umsortieren (#359)

Changed

  • Die Administrator-Einstellungen speichern jetzt einheitlich: Erinnerungstage, Zusatzfeld-Angaben und der Nachfolger bei gelöschtem Konto werden automatisch beim Verlassen des Feldes gesichert, wie die übrigen Einstellungen. Der leicht zu übersehende Sammel-Button „Admin-Einstellungen speichern" entfällt dadurch. Die KI-Vertragsanalyse behält bewusst einen eigenen „KI-Einstellungen speichern"-Schritt, weil Provider, API-Key, URL und Modell nur als vollständiger Satz sinnvoll sind, und zeigt darüber klar an, ob sie aktiv ist oder mangels API-Key nur konfiguriert aussieht (#151)

Fixed

  • Auf Nextcloud 34 legte sich der Titel des Vertragsfensters („Neuer Vertrag", „Vertrag bearbeiten", „Vertragsdetails") quer über die Suchleiste im Kopfbereich. Ursache war nicht die App: Nextcloud hat die Suchleiste in die Mitte verschoben, wo das Fenster seinen Titel zeichnete. Der Titel wird jetzt nicht mehr sichtbar dort dargestellt; das Fenster trägt seine Kopfzeile ohnehin selbst. Für Vorlesesoftware bleibt es benannt (#337)
  • Auf Nextcloud 34 kamen alle Benachrichtigungen von VertragsWerk ohne Symbol und ohne anklickbaren Link an, und im Server-Log stapelte sich im Minutentakt eine Verfallswarnung. Ursache: Das Symbol wurde mit einer relativen Adresse gesetzt, die Nextcloud 34 nicht mehr annimmt — der abgewiesene Wert brach die Aufbereitung ab, bevor der Link gesetzt war. Das Symbol wird jetzt als vollständige Adresse gesetzt; Symbol und Link erscheinen wieder, und die Log-Warnung entfällt (#357, #358)
  • Meldungen des Servers erschienen auf Englisch, auch wenn die App auf Deutsch lief: „Name is required" statt „Name ist erforderlich", „Contract not found" statt „Vertrag nicht gefunden". Betroffen waren 29 Texte aus der Vertragsprüfung, der Rechteprüfung und der Dokumentenerkennung sowie 18 weitere, die gar nicht übersetzbar angelegt waren. Sie sind jetzt durchgängig deutsch und in beiden Sprachen hinterlegt. Ursache war eine Umstellung vom März, die die Texte ins Englische übersetzte, ohne die Übersetzungsdateien nachzuziehen — die deutschen Fassungen lagen seither unerreichbar daneben (#340)

Changed

  • Die Übersetzungsprüfung der CI sieht jetzt auch den Serverteil der App und nicht mehr nur die Oberfläche. Zusätzlich läuft sie bereits beim Commit statt erst im Pull Request. Der bisherige Prüfer meldete „in Ordnung", während die 29 englischen Meldungen ausgeliefert wurden (#340)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureRwDyDuPl0Y6Jr0XETw+VscUS6jhIaAGGWuomMUzBiauQFiw4MNktA+wKdWIiUrrW3IiVsg2ImgpInu1f5uCogfmeNo5nv6/NFpItvHYWScGajIEfDk9VFUD1POFApJrg72fZiqqEAXGnYdCvSU4+1vTOPdkTZKFhESDrupRrGD4XEToghFWgV0Oe1kY3AgWbWvXlNvvQet3mi3xUVaOBPEpXf3hIEp0srjBfKFqbW3UhvSdrU8ZLbI6AehRwK+zXHrMc9fZY5tZPuEtqv8oT5jevuB87Vh490lXjio1e5bH446P7WtjBU/LwQYjSgbs+9VKh+uUPqIi/IQT6tuYHVg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.3.0
Release Details
UpdatedAug. 11, 2026, 7:03 p.m.
Changelog

Changed

  • Anzeigename der App auf „VertragsWerk" umgestellt (App-ID bleibt contractmanager)

Security

  • Die mitgelieferte Bibliothek dompurify wurde auf 3.4.13 gehoben. Die Vorversion konnte unter bestimmten Umständen Schadcode in einem abgetrennten Teilbaum ausführbar lassen. Der Bump allein hätte nicht gereicht: dompurify steckt im ausgelieferten JavaScript, deshalb wurde es neu gebaut

Fixed

  • Ein archivierter Vertrag ließ sich nicht mehr ansehen: Der Klick darauf öffnete ein leeres Formular. Das Archiv zeigt Verträge jetzt wieder vollständig an, allerdings nur noch lesend. Wer einen archivierten Vertrag ändern will, stellt ihn vorher wieder her. Die Einträge „Duplizieren“ und „Bearbeiten“ sind dort entfallen, sie waren ohnehin wirkungslos. „Wiederherstellen“ und „Löschen“ bleiben (#328)
  • 41 Texte der Oberfläche waren nie in die Übersetzungsdateien eingetragen und erschienen deshalb in jeder Sprache auf Deutsch, darunter „Betrag“, „Gekündigt am“, „Aktive Verträge“ und die Beschriftungen der Einstellungen. Sie sind jetzt vollständig hinterlegt und übersetzt. Damit die Lücke nicht erneut entsteht, prüft die CI ab sofort bei jedem Pull Request, ob jeder übersetzbare Text in allen vier Übersetzungsdateien steht (#334)
  • Eine leere Vertragsliste behauptet nicht mehr, es gebe noch keine Verträge, wenn in Wahrheit nur ein Filter, eine Kategorie oder die Suche greift. Sie nennt jetzt die Einschränkung als Ursache und bietet an, die Filter zurückzusetzen. Der Administratoren-Filter „Ohne aktiven Eigentümer“ wird außerdem nicht mehr dauerhaft gespeichert: Er ist ein Diagnosewerkzeug, das im Normalbetrieb fast immer null Treffer liefert, und filterte einmal angetippt über Monate stumm weiter. Er gilt nur noch für die laufende Ansicht (#332)
  • Beim Duplizieren eines Vertrags werden Start- und Enddatum sowie die Kündigungsdaten nicht mehr aus dem Original übernommen. Bisher stand im Startdatum der Kopie das alte Datum, und der Kalender des Browsers öffnete sich deshalb im damaligen Monat, sodass man bis zum heutigen Tag vorblättern musste. Bei leeren Feldern öffnet er sich von selbst im aktuellen Monat. Die Kopie eines gekündigten Vertrags trägt außerdem nicht länger dessen Kündigungsdaten mit sich, sondern startet als laufender Vertrag. Alles Übrige, also Anbieter, Kategorie, Kosten, Kündigungsfrist, Erinnerungen und Notizen, wird weiterhin übernommen (#307)
  • Beträge mit zwei Nachkommastellen bleiben erhalten: „10,50" wurde im Vertragsformular als „10,5" angezeigt und blieb auch nach dem Korrigieren und Speichern so. Das Feld nimmt jetzt auch die deutsche Komma-Schreibweise entgegen und zeigt Beträge einheitlich mit zwei Nachkommastellen (#305)
  • Ein Betrag, der sich nicht als Zahl lesen lässt oder über 99.999.999,99 liegt, wird beim Speichern mit einem Hinweis abgewiesen, statt zu einem Serverfehler zu führen (#315)
  • Das ausgelieferte JavaScript enthielt Entwicklungscode: Die App lädt jetzt ein kleineres Paket und läuft im Browser schneller. Fehlermeldungen der Oberfläche, die nur im Entwicklungsmodus auftraten, sind damit ebenfalls verschwunden (#306)
  • Wird ein Nutzerkonto gelöscht, verlieren dessen Verträge nicht mehr stillschweigend ihren Eigentümer: Die Zuständigkeit geht an einen Nachfolger über, der per occ config:app:set contractmanager deletion_successor --value=<Nutzer> festgelegt wird. Ohne festgelegten Nachfolger bleibt alles unverändert. Verträge werden dabei nie gelöscht, auch nicht die im Papierkorb, und der Ersteller bleibt als Angabe erhalten. Verträge mit einem anderen Verantwortlichen sowie private Verträge bleiben unberührt (#299)
  • Verträge im Papierkorb werden nicht mehr automatisch nach 30 Tagen endgültig gelöscht, wenn ihr Ersteller kein Konto mehr hat. Endgültig löschen kann sie damit nur noch ein Administrator (#299)

Added

  • Die eigenen Vertragsdaten lassen sich jetzt über Nextclouds App user_migration mit exportieren und wieder einspielen: occ user:export legt sie ins Standard-Archiv, occ user:import spielt sie samt Kategorien zurück, ohne die vorhandene Kategorienliste zu verdoppeln. Verträge im Papierkorb bleiben außen vor, angehängte Dateien nimmt Nextcloud selbst mit (#273)
  • Neue Administrator-Einstellung „Nachfolger bei gelöschtem Konto": Wer hier eingetragen ist, übernimmt die Zuständigkeit für die Verträge gelöschter Konten. Ohne Eintrag bleibt alles unverändert (#299)
  • Administratoren werden benachrichtigt, wenn ein Konto gelöscht wurde, samt Anzahl der übertragenen Verträge und derer, die noch eine Zuordnung brauchen (#299)
  • Neuer Filter „Ohne aktiven Eigentümer" in der Vertragsliste, nur für Administratoren: zeigt Verträge, deren Zuständiger beziehungsweise Ersteller kein Konto mehr hat, und macht sie über „Verträge übertragen" weiterreichbar (#299)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureCHeUXgS3flycmkGeVqbg1QRm15pCiXAFj1rApEn5mPMWQBurU6aYeVvpm+YWTDL9wrZzoNqWdzqXhqQCtWFNL9TdY9q/8/UtrxYM2WFwq989hgwcEC2BjsyDBr8PipG6Ikbk/2qmJ1xpvkUQRhOAPXzml6y1D9Xox+RemiEhF+nsXl58WyZ8i0Ub0PEW5gNhhz4yAoTR3gxUXAWm14IqcJFveLB/xPKEpfyI1QWaVQRWzBF3td4gpYvLLZH3rcwsoDa5Cqx+gkF/0Xu2ZuL21a48URYNcjNDgZdDECt1j2rK57r6ExlPJ5oRAcmPYKvoI7Wm62JV0SvwgkmRxH9Y6g==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.6
Release Details
UpdatedJuly 23, 2026, 10:01 p.m.
Changelog

Added

  • Neuer Status „Geplant" für Verträge, deren Startdatum noch in der Zukunft liegt: Sie werden in Liste und Formular als „Geplant" angezeigt statt „Laufend" und lassen sich gezielt filtern. Am Startdatum wechseln sie automatisch auf „Laufend" (#109)

Fixed

  • Ein gekündigter Vertrag wird ab seinem Wirksamkeitsdatum („Gekündigt zum") sofort als „Beendet" angezeigt, statt bis zum Folgetag noch als „Gekündigt" zu erscheinen (#288)

Security

  • Abhängigkeiten aktualisiert (axios, immutable, brace-expansion); npm audit meldet keine Schwachstellen mehr (#289, #290, #293)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturelsYDzc1oasQpg/WPzQaQxVv+3o2OcFOBkemZoEPHnEAJwf0qg3Yhb2NySJqdoPLxaUMTyfRbCPaxxt8yaIypQhLiOIuawlqUpJustOttJC9iijdgghiZs8rosR/Zb0WJxAGL+9HZOqnRNezMjSk+NNkG4ALcR3OIHHfh93JBoGkVa+1/eMFEyM9in3jkls2VJK4+AxN1Bz/++tJ0ZDikjJPtcbdx0UMPZvv7VTG6a3FJq2Swoj+6fCJI+95T63IeXz8tWnr/4TGrsMKZHsBj6Vfe0F0fupSjQZdJGjV6JHy/60mG33qwrYJHuk0EGOX8l8L+auHDrPod1K9xTrYuIA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.5
Release Details
UpdatedJuly 17, 2026, 12:27 p.m.
Changelog

Added

  • Befristete Verträge zeigen jetzt einen eigenen Frühwarn-Chip „endet", wenn ihr Enddatum ins Erinnerungsfenster fällt — bisher gab es diesen Hinweis nur bei Verträgen mit Kündigungsfrist (#238)
  • Status-Chips und Akzentbalken haben jetzt eigene Dark-Mode-Farben und bleiben im dunklen Nextcloud-Theme gut lesbar (#204)

Changed

  • Währungsbeträge werden jetzt in der Sprache/Region der Nextcloud-Oberfläche formatiert statt fest in deutschem Format (#204)
  • Datumsangaben folgen jetzt ebenfalls der Sprache/Region der Nextcloud-Oberfläche statt fest im deutschen Format (Nachgang zu #204)

Security

  • Abhängigkeiten aktualisiert und alle offenen Sicherheitswarnungen behoben (u.a. dompurify, form-data, vite, esbuild, js-yaml, fast-xml-parser); npm audit meldet keine Schwachstellen mehr
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureSetLU4KaxYBImcoTdDXSM484uXuOHcqsDiacdyxmrhP6h5gSWB8Di9sqw3uTh7HZqrx1ieZ/5AeyU9qYh5Ncbk6zeKQdxoc4KFpaKG5u3hVJxztknHohSnOG8vIJbJJESB0bgZhb2a5MrmDdAjuu4eu3D75fEIoKSxLhbcGepjOoK5NK0ldyZjEfGHNwIMzpAPv9jm8GMwXrprVc0hIsTX/0i72q9teEBw3jIwT6ox6Mza1z1N4LAjY4I2Gxrvr0o9LmNHlnJBhqRlKRmu+yQQoH/KPAdDtZEU7p30+ichX1/O2oqJe2kS6p7HUExl+hSClQd8YRmvo98kiiMMCfTA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.4
Release Details
UpdatedJuly 12, 2026, 10:02 p.m.
Changelog

Added

  • Befristete Verträge sind in der Vertragsliste und im Formular jetzt auf einen Blick erkennbar: Der Status-Chip „Laufend" und der farbige Akzentbalken erscheinen bei ihnen in einem dunkleren Grün, ein Tooltip erklärt die Befristung (#277)

Changed

  • Das Datums-Label „Kündigen bis" heißt jetzt „Kündbar bis" — es beschreibt neutral, bis wann gekündigt werden kann, statt wie eine Aufforderung zu klingen. Gilt für die Vertragsliste und das Formular (dort auch „Kündbar bis (berechnet)") (#275)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
Signatureg5+CIDwuaoKaZc09+sPadyC9hXDP4i7+3czflDyZnsdigv7bSgZ6/2StJ/LhDf1hD8jBiGExVVnh0fz9LOvFLf//oa4fe22IZKEYJoXH/Zm3Y6eBpf5yskCJfUzxwXL7Sopcv+3HtPzUzQp9FOlqZpgNqo5cSMkUccm2vUGJHqmUjsm6jP3qsLdCfE9fQ43ePYBD7dhfc15Cv/nBj7LCv0xi5DELk2vQRkvLSpziBc+OibwIu+R3xPO8zIPqBdADrcq+yNue+E9EFHugletKSEhV34Q3EkGrqldTXRYwiAScDXQY0WgKiTNq4l1EJdwLYLyjFOwhhWemRit1zzSfoQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.3
Release Details
UpdatedJuly 11, 2026, 12:50 p.m.
Changelog

Fixed

  • Tab-Taste funktionierte in der gesamten App nicht mehr (seit 1.2.0): Die dauerhaft gemounteten, unsichtbaren Formular-Modals aktivierten ihre Fokus-Fallen schon beim Seitenladen und verschluckten jeden Tab-Druck. Die Modals werden jetzt erst beim Öffnen erzeugt; Esc schließt das Formular außerdem auch dann, wenn der Fokus in einem Eingabefeld steht (#266)
  • Datumseingabe: Beim Ziffer-für-Ziffer-Eintippen wurde das Jahr auf 19XX umgeschrieben (z.B. 1906 statt 2026) und die laufende Eingabe zerstört. Das Jahr lässt sich jetzt normal eintippen (#258)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturedjKIMBNn5BASPxCnmwrImEjthNcUvx8wxMvIvYyKKlU4yhUFRhfIbiE8DwvKhYg7lc0IfxSKRdO0wU7dwl2brNvGv2ual1vJFzW6GlsWW4CoxC/VBCT9xwDAAUU1kxd5FQOtbQFDsxZBpjVA4464x7uCujvGwBl+Yc79SqpoKKmXARibK/gnRnwjkmLFSbmBUeuOZfYpomcjHFdjESQQtFLz4VwyLIFnn2fXrUgawKo2qQpVWflnFKDPY8v50tMCOEsf3KUyxbOyEOl2LYpeDeeWOX2SgWq2OK2ixtYYa8Z67zE5eqlggH7/cNxeEJp9tD2kD6qjU0ahVwSsB485tA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.2
Release Details
UpdatedJuly 10, 2026, 9:38 a.m.
Changelog

Fixed

  • Gekündigte Verträge zeigten ihr „gekündigt zum"-Datum unter dem irreführenden Spaltenkopf „Kündigen bis". Jede Zeile der Vertragsliste trägt jetzt ein kleines Label, das benennt, welches Datum gezeigt wird („Gekündigt zum" / „Kündigen bis" / „Läuft bis"); der Spaltenkopf heißt neutral „Frist / Ende" (#252)
  • Unbefristete Verträge ließen sich nicht anlegen, wenn (z.B. durch eine fehlerhafte Jahres-Eingabe) ein Enddatum im Feld stand: Bei Vertragstyp „Unbefristet" ist das Enddatum-Feld jetzt deaktiviert und wird nie gespeichert — ein versehentliches Enddatum kann das Anlegen nicht mehr blockieren. Bei befristeten Verträgen nennt die Fehlermeldung jetzt den Ausweg (Enddatum per ×-Symbol entfernen) (#257)

Changed

  • Release-Härtung: Die Composer-Runtime-Abhängigkeiten (vendor/, u.a. der PDF-Parser) werden jetzt wie das kompilierte CSS mit ausgeliefert und sind über einen Packaging-Guard gegen versehentliches Weglassen im Release-Paket abgesichert. Verhindert eine Wiederholung der 1.2.0-Regression (#249, Follow-up zu #245)
  • Intern: Der automatische PR-Review-Workflow wurde gehärtet (Diff-Beschaffung, Berechtigungen, Abbruch-Verhalten) — keine Auswirkung auf die App selbst
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureJFHuGlWAqS6qcWy1oIivanlw2pvBaheNEDMZOTMx5PX398UUnFkvs936o5fhkvvB0LtqbrDRNjcOMD7+FhSzgajxkQyrUHeD99yccdmWoQ/o8bISXzunyD29N8J0BfkiNI7hrR5+T6IKLvBzzzvlMxFt4WlL5CpNeGJKfIBijA5tldhKd4d3y7dcD4Sw/SKwOiufgcTb+iP3t44jEjfGptLC1b542hanCHpnAPQ5R3ylYXUGBHbsAH+o4h7R8UbdkfVuRKh9LK4eG5fs+XTN80npQOA4w9KT3QXXlgwypFWWxAF6LANhiHlR51no/cJ7DYY7lUkw4ibaNZntPGK20Q==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.1
Release Details
UpdatedJuly 6, 2026, 8:49 p.m.
Changelog

Fixed

  • Oberfläche seit 1.2.0 komplett ohne Styling (kaputtes Layout, Nextcloud-Hintergrund scheint durch): das kompilierte CSS-Bundle fehlte im Release-Paket. Das CSS wird jetzt wie das JavaScript mit ausgeliefert (#245)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
Signatureh4QEgBwnjwrISLNm1xQNCSo536UQbvkgSDQSeuvSMsDhyh8Sgc5mppzWu4X4bq0mkGIFpbQxj5kpUPo+K5+1/edpV10ptXtf24WY90tC38nwCddgn97ZvmjRRjOOKzBAbDcIFdOoze93GnptwhHXiTm+JmgocA383KgpPx5ZoM72DhSQN9A5Xw4pngEKxf8awyXTpZcy+k8V6V13nnqWQ+aovTP99pUEbhpZMrH1RJcATKc/1cuZhVKDuue96EU5retjehFMn/J7naHJF60VyzlACyvokFVtsk4F2oGANz8WEXFcgXKPDi4q5bjoFNl3c9BFQPbAsA6Hl456JeT8ng==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.0
Release Details
UpdatedJuly 6, 2026, 3:29 a.m.
Changelog

Added

  • „Gekündigt zum" wird beim Eintragen von „Gekündigt am" automatisch mit dem Enddatum des Vertrags vorbelegt und bleibt änderbar – das Datum muss nicht doppelt eingegeben werden (#213)

Fixed

  • Sortierung nach „Kündigen bis" berücksichtigt jetzt auch befristete Verträge: sie landeten zuvor am Listenende, obwohl die Spalte ihr Enddatum anzeigte (#217)
  • Monatliche Kosten: Verträge mit automatischer Verlängerung, die mit ihrem ursprünglichen (abgelaufenen) Enddatum eingetragen sind, werden wieder eingerechnet (#215)

Changed

  • Status „Kündigung fällig" heißt jetzt einheitlich „Kündigungsfrist endet", passend zum gleichnamigen Filter (#216)
  • Die Kennzahl „Monatliche Kosten" ist als grobe Orientierung gekennzeichnet („ca.", Untertitel „Grobe Orientierung"), da sie Netto/Brutto und unterjährige Effekte nur näherungsweise abbilden kann (#215)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturegO8R8vrZxxOWSUMcKrDzzbo6rM4SRlZIFy7wDcI49HuPgzYAM5DMgAc69AWSYHrh+aa0Js5fLXLwSSRW8klKp2W9JnxNe2v4ZQbX/+j20CNQxRpFh7HS6/q3E4ePC50ikMqO8RNuojOMk8+rzmxl9Xk9E6Ogj5ovPULRESq7visZtWAGUFeWivzMEJNbgAxbe621qd8rv11788/6C/qiT1hdN8PowWJrnompSx/4L6SXPyhpYNUrE+TQOsdCkv4Fj/XUP4PguuV2EJUOv1zJB1+SIyoYOZ1iv5Ke1YBENcngClIKCJW2WdVdAwXX99sT7woecxvJoF0kl0ug0KzZxg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 33

VertragsWerk 1.7.0
Release Details
UpdatedSept. 6, 2026, 12:41 a.m.
Changelog

Added

  • Automatisches Backup: In den Einstellungen zeigt VertragsWerk jetzt, wann zuletzt gesichert wurde und wann die nächste Sicherung fällig ist. Ein Button „Jetzt sichern" löst eine Sicherung sofort aus, ohne auf den nächsten Intervall-Zeitpunkt zu warten (#397)

Fixed

  • Automatisches Backup: Der Sicherungsrhythmus wanderte Tag für Tag um bis zu einer Stunde nach hinten (z. B. rund 25 statt 24 Stunden bei täglicher Sicherung), weil als „zuletzt gesichert" der tatsächliche – durch die stündliche Prüfung leicht verspätete – Zeitpunkt gespeichert und zum neuen Ausgangspunkt wurde. Der Zeitplan wird jetzt an feste Intervalle verankert, sodass sich keine Verspätung mehr aufsummiert; verpasste Läufe (z. B. Server war aus) werden zu einer einzigen Nachhol-Sicherung zusammengefasst (#375)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturecvlEPnIKbl3NZG8jDo/tPcLVVV8r+h+y+iBjZWnvMKu1Hd4bxtL9Ge374uPyXH58I4Fn+XiBYhU3l9lQv9ZRjN3y1SCLSso+2VKDZUH0AcitiflXB1uz+5F3HP7eA2Fa4GfTd00MfcKEh22+oGGaomwtUCK9gds491QPFCgV6v3kcOdfFF/Lzah7UmOf7oWJGqvwr54ccM3Wu1YDNcX01zBxxCUnvL9ktl9a+PI9/3K/y0zUmLS2su/jsR2fMLYM7RjL3u40DlnxA8zRq/TOTuCg/xYfkGVQb2uOwop5MGGFftO7ODBVnFywtw7KBGXVGqfPaCJKsGLzbeXLulJzDg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.6.0
Release Details
UpdatedAug. 28, 2026, 2:19 p.m.
Changelog

Added

  • Kalender-Abo: Vertragsfristen lassen sich als schreibgeschützter Kalender (ICS) in der Nextcloud-Kalender-App abonnieren. Pro Vertrag erscheint ein Ganztags-Termin an der Kündigungsfrist (bzw. dem Vertragsende). Enthalten sind nur die Verträge, für die man ohnehin Erinnerungen erhält, damit der Kalender nicht überläuft. Die Abo-URL wird in den Einstellungen erzeugt, trägt einen geheimen Token und lässt sich bei Bedarf neu erzeugen (invalidiert die alte) (#68)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureOcObgECzJA8CiqXdiEqQjOUBkhv9o3+7AOCrIQfecN8z6Dfi2pKkVzYuAxJ0S/xkx6iLIoBwi8/Kbb9X2wCWVDiPrZQptqfTPSbhK9a+zsWna++CwCrdKKE4J2TSOWaw0JRlLVrgDRleMkHS36ruVW/CXThhA0419jMJQmGVH242E6GcfPTbV7BR4eeR/YA3foGlIVHydhRnJUpjlATbuJ4Neo9wij8A8kmMOfnim5WvrqPppJyWVQR4deZh26s3T0Jc6VtAR3JbnKyewN1dTd6Zk9zd+s+3sTb+cgYKIXu2uV5UqMo+PuA3aEUlGQZzeperm9t7I8pGo5VAe7fFsw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.5.0
Release Details
UpdatedAug. 26, 2026, 9:38 a.m.
Changelog

Added

  • Automatisches Backup: Auf Wunsch sichert VertragsWerk die eigenen Vertragsdaten regelmäßig als JSON-Datei in einen wählbaren Nextcloud-Ordner, damit der aktuelle Stand in jedem normalen Nextcloud-Backup landet, ohne jedes Mal einen vollen Account-Export anzustoßen. Aktivierbar in den Einstellungen (Ordner + Intervall täglich/wöchentlich/monatlich); es werden die letzten 30 Sicherungen behalten. Zusätzlich gibt es den Befehl occ contractmanager:export für Admin/Automatisierung. Das Serialisierungsformat ist identisch mit dem der Datenmigration (#296)

Changed

  • Zusatzfelder in den Administrator-Einstellungen haben jetzt ein echtes „aktiviert"-Flag statt der bisherigen Ableitung „Label leer = aus". Anhaken öffnet ein leeres Feld mit grauem Platzhalter (kein vorbefüllter Text mehr, den man erst löschen muss), Leerlöschen des Namens lässt das Feld offen, und ein abgehaktes Feld verschwindet aus dem Vertragsformular, behält aber seinen Namen fürs spätere Wiedereinschalten. Bestehende Konfigurationen bleiben unverändert (#368)
  • Der Hinweis unter der Vorlaufzeit im Vertragsformular lautet jetzt schlicht „Standard: X Tage.“ statt „Leer lassen = Standard (X Tage).“. Das graue X im Feld ist nur ein Platzhalter, kein fester Wert; die alte Formulierung wirkte dadurch widersprüchlich, als ließe sich der voreingetragene Wert nicht löschen (#364)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureN2yTXW9z26EU6EIMUKqqnpScMq0P/9wktuT++kzds5QKDGIqEZ6K7mvR5FZ/A+O+uq0rL0Sjbb8eepsIUWJQ5TV9t5E9WQQc4lpgoxEr4UlMCYerCvHmrhZQuC1KgE3XMUbxZ0a9a3KE+v4IOk5kgKl/g2z1r2noSXLDdrrs3L66z5EPEf7UhbB9BcbzG/Ht+C57nBVKIVbDmtixVl1VdwrYn+ThUO4REcK38Fl3oSaWwgZeHRT3+sQxFEcZr76cal775Mpo9EXdT6kKsWsE4IST9PRuISzLN6l0TWlrAsv02ao+thPzQxpL86aPY8yke89+IeOHDcZkulJBXlDwGw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.4.0
Release Details
UpdatedAug. 21, 2026, 10:16 a.m.
Changelog

Added

  • Verträge lassen sich jetzt per Ziehen aus der Liste auf einen Kategorie-Eintrag in der Seitenleiste einer Kategorie zuordnen oder umsortieren. Ein Ziehen auf „Ohne Kategorie" entfernt die Zuordnung. Das Ziel wird beim Drüberziehen hervorgehoben. Das ist eine Ergänzung zum Bearbeiten-Formular, das die Kategorie weiterhin setzt (Touch- und Tastatur-Weg bleiben unverändert). Nur Bearbeiter können auf diesem Weg umsortieren (#359)

Changed

  • Die Administrator-Einstellungen speichern jetzt einheitlich: Erinnerungstage, Zusatzfeld-Angaben und der Nachfolger bei gelöschtem Konto werden automatisch beim Verlassen des Feldes gesichert, wie die übrigen Einstellungen. Der leicht zu übersehende Sammel-Button „Admin-Einstellungen speichern" entfällt dadurch. Die KI-Vertragsanalyse behält bewusst einen eigenen „KI-Einstellungen speichern"-Schritt, weil Provider, API-Key, URL und Modell nur als vollständiger Satz sinnvoll sind, und zeigt darüber klar an, ob sie aktiv ist oder mangels API-Key nur konfiguriert aussieht (#151)

Fixed

  • Auf Nextcloud 34 legte sich der Titel des Vertragsfensters („Neuer Vertrag", „Vertrag bearbeiten", „Vertragsdetails") quer über die Suchleiste im Kopfbereich. Ursache war nicht die App: Nextcloud hat die Suchleiste in die Mitte verschoben, wo das Fenster seinen Titel zeichnete. Der Titel wird jetzt nicht mehr sichtbar dort dargestellt; das Fenster trägt seine Kopfzeile ohnehin selbst. Für Vorlesesoftware bleibt es benannt (#337)
  • Auf Nextcloud 34 kamen alle Benachrichtigungen von VertragsWerk ohne Symbol und ohne anklickbaren Link an, und im Server-Log stapelte sich im Minutentakt eine Verfallswarnung. Ursache: Das Symbol wurde mit einer relativen Adresse gesetzt, die Nextcloud 34 nicht mehr annimmt — der abgewiesene Wert brach die Aufbereitung ab, bevor der Link gesetzt war. Das Symbol wird jetzt als vollständige Adresse gesetzt; Symbol und Link erscheinen wieder, und die Log-Warnung entfällt (#357, #358)
  • Meldungen des Servers erschienen auf Englisch, auch wenn die App auf Deutsch lief: „Name is required" statt „Name ist erforderlich", „Contract not found" statt „Vertrag nicht gefunden". Betroffen waren 29 Texte aus der Vertragsprüfung, der Rechteprüfung und der Dokumentenerkennung sowie 18 weitere, die gar nicht übersetzbar angelegt waren. Sie sind jetzt durchgängig deutsch und in beiden Sprachen hinterlegt. Ursache war eine Umstellung vom März, die die Texte ins Englische übersetzte, ohne die Übersetzungsdateien nachzuziehen — die deutschen Fassungen lagen seither unerreichbar daneben (#340)

Changed

  • Die Übersetzungsprüfung der CI sieht jetzt auch den Serverteil der App und nicht mehr nur die Oberfläche. Zusätzlich läuft sie bereits beim Commit statt erst im Pull Request. Der bisherige Prüfer meldete „in Ordnung", während die 29 englischen Meldungen ausgeliefert wurden (#340)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureRwDyDuPl0Y6Jr0XETw+VscUS6jhIaAGGWuomMUzBiauQFiw4MNktA+wKdWIiUrrW3IiVsg2ImgpInu1f5uCogfmeNo5nv6/NFpItvHYWScGajIEfDk9VFUD1POFApJrg72fZiqqEAXGnYdCvSU4+1vTOPdkTZKFhESDrupRrGD4XEToghFWgV0Oe1kY3AgWbWvXlNvvQet3mi3xUVaOBPEpXf3hIEp0srjBfKFqbW3UhvSdrU8ZLbI6AehRwK+zXHrMc9fZY5tZPuEtqv8oT5jevuB87Vh490lXjio1e5bH446P7WtjBU/LwQYjSgbs+9VKh+uUPqIi/IQT6tuYHVg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.3.0
Release Details
UpdatedAug. 11, 2026, 7:03 p.m.
Changelog

Changed

  • Anzeigename der App auf „VertragsWerk" umgestellt (App-ID bleibt contractmanager)

Security

  • Die mitgelieferte Bibliothek dompurify wurde auf 3.4.13 gehoben. Die Vorversion konnte unter bestimmten Umständen Schadcode in einem abgetrennten Teilbaum ausführbar lassen. Der Bump allein hätte nicht gereicht: dompurify steckt im ausgelieferten JavaScript, deshalb wurde es neu gebaut

Fixed

  • Ein archivierter Vertrag ließ sich nicht mehr ansehen: Der Klick darauf öffnete ein leeres Formular. Das Archiv zeigt Verträge jetzt wieder vollständig an, allerdings nur noch lesend. Wer einen archivierten Vertrag ändern will, stellt ihn vorher wieder her. Die Einträge „Duplizieren“ und „Bearbeiten“ sind dort entfallen, sie waren ohnehin wirkungslos. „Wiederherstellen“ und „Löschen“ bleiben (#328)
  • 41 Texte der Oberfläche waren nie in die Übersetzungsdateien eingetragen und erschienen deshalb in jeder Sprache auf Deutsch, darunter „Betrag“, „Gekündigt am“, „Aktive Verträge“ und die Beschriftungen der Einstellungen. Sie sind jetzt vollständig hinterlegt und übersetzt. Damit die Lücke nicht erneut entsteht, prüft die CI ab sofort bei jedem Pull Request, ob jeder übersetzbare Text in allen vier Übersetzungsdateien steht (#334)
  • Eine leere Vertragsliste behauptet nicht mehr, es gebe noch keine Verträge, wenn in Wahrheit nur ein Filter, eine Kategorie oder die Suche greift. Sie nennt jetzt die Einschränkung als Ursache und bietet an, die Filter zurückzusetzen. Der Administratoren-Filter „Ohne aktiven Eigentümer“ wird außerdem nicht mehr dauerhaft gespeichert: Er ist ein Diagnosewerkzeug, das im Normalbetrieb fast immer null Treffer liefert, und filterte einmal angetippt über Monate stumm weiter. Er gilt nur noch für die laufende Ansicht (#332)
  • Beim Duplizieren eines Vertrags werden Start- und Enddatum sowie die Kündigungsdaten nicht mehr aus dem Original übernommen. Bisher stand im Startdatum der Kopie das alte Datum, und der Kalender des Browsers öffnete sich deshalb im damaligen Monat, sodass man bis zum heutigen Tag vorblättern musste. Bei leeren Feldern öffnet er sich von selbst im aktuellen Monat. Die Kopie eines gekündigten Vertrags trägt außerdem nicht länger dessen Kündigungsdaten mit sich, sondern startet als laufender Vertrag. Alles Übrige, also Anbieter, Kategorie, Kosten, Kündigungsfrist, Erinnerungen und Notizen, wird weiterhin übernommen (#307)
  • Beträge mit zwei Nachkommastellen bleiben erhalten: „10,50" wurde im Vertragsformular als „10,5" angezeigt und blieb auch nach dem Korrigieren und Speichern so. Das Feld nimmt jetzt auch die deutsche Komma-Schreibweise entgegen und zeigt Beträge einheitlich mit zwei Nachkommastellen (#305)
  • Ein Betrag, der sich nicht als Zahl lesen lässt oder über 99.999.999,99 liegt, wird beim Speichern mit einem Hinweis abgewiesen, statt zu einem Serverfehler zu führen (#315)
  • Das ausgelieferte JavaScript enthielt Entwicklungscode: Die App lädt jetzt ein kleineres Paket und läuft im Browser schneller. Fehlermeldungen der Oberfläche, die nur im Entwicklungsmodus auftraten, sind damit ebenfalls verschwunden (#306)
  • Wird ein Nutzerkonto gelöscht, verlieren dessen Verträge nicht mehr stillschweigend ihren Eigentümer: Die Zuständigkeit geht an einen Nachfolger über, der per occ config:app:set contractmanager deletion_successor --value=<Nutzer> festgelegt wird. Ohne festgelegten Nachfolger bleibt alles unverändert. Verträge werden dabei nie gelöscht, auch nicht die im Papierkorb, und der Ersteller bleibt als Angabe erhalten. Verträge mit einem anderen Verantwortlichen sowie private Verträge bleiben unberührt (#299)
  • Verträge im Papierkorb werden nicht mehr automatisch nach 30 Tagen endgültig gelöscht, wenn ihr Ersteller kein Konto mehr hat. Endgültig löschen kann sie damit nur noch ein Administrator (#299)

Added

  • Die eigenen Vertragsdaten lassen sich jetzt über Nextclouds App user_migration mit exportieren und wieder einspielen: occ user:export legt sie ins Standard-Archiv, occ user:import spielt sie samt Kategorien zurück, ohne die vorhandene Kategorienliste zu verdoppeln. Verträge im Papierkorb bleiben außen vor, angehängte Dateien nimmt Nextcloud selbst mit (#273)
  • Neue Administrator-Einstellung „Nachfolger bei gelöschtem Konto": Wer hier eingetragen ist, übernimmt die Zuständigkeit für die Verträge gelöschter Konten. Ohne Eintrag bleibt alles unverändert (#299)
  • Administratoren werden benachrichtigt, wenn ein Konto gelöscht wurde, samt Anzahl der übertragenen Verträge und derer, die noch eine Zuordnung brauchen (#299)
  • Neuer Filter „Ohne aktiven Eigentümer" in der Vertragsliste, nur für Administratoren: zeigt Verträge, deren Zuständiger beziehungsweise Ersteller kein Konto mehr hat, und macht sie über „Verträge übertragen" weiterreichbar (#299)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureCHeUXgS3flycmkGeVqbg1QRm15pCiXAFj1rApEn5mPMWQBurU6aYeVvpm+YWTDL9wrZzoNqWdzqXhqQCtWFNL9TdY9q/8/UtrxYM2WFwq989hgwcEC2BjsyDBr8PipG6Ikbk/2qmJ1xpvkUQRhOAPXzml6y1D9Xox+RemiEhF+nsXl58WyZ8i0Ub0PEW5gNhhz4yAoTR3gxUXAWm14IqcJFveLB/xPKEpfyI1QWaVQRWzBF3td4gpYvLLZH3rcwsoDa5Cqx+gkF/0Xu2ZuL21a48URYNcjNDgZdDECt1j2rK57r6ExlPJ5oRAcmPYKvoI7Wm62JV0SvwgkmRxH9Y6g==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.6
Release Details
UpdatedJuly 23, 2026, 10:01 p.m.
Changelog

Added

  • Neuer Status „Geplant" für Verträge, deren Startdatum noch in der Zukunft liegt: Sie werden in Liste und Formular als „Geplant" angezeigt statt „Laufend" und lassen sich gezielt filtern. Am Startdatum wechseln sie automatisch auf „Laufend" (#109)

Fixed

  • Ein gekündigter Vertrag wird ab seinem Wirksamkeitsdatum („Gekündigt zum") sofort als „Beendet" angezeigt, statt bis zum Folgetag noch als „Gekündigt" zu erscheinen (#288)

Security

  • Abhängigkeiten aktualisiert (axios, immutable, brace-expansion); npm audit meldet keine Schwachstellen mehr (#289, #290, #293)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturelsYDzc1oasQpg/WPzQaQxVv+3o2OcFOBkemZoEPHnEAJwf0qg3Yhb2NySJqdoPLxaUMTyfRbCPaxxt8yaIypQhLiOIuawlqUpJustOttJC9iijdgghiZs8rosR/Zb0WJxAGL+9HZOqnRNezMjSk+NNkG4ALcR3OIHHfh93JBoGkVa+1/eMFEyM9in3jkls2VJK4+AxN1Bz/++tJ0ZDikjJPtcbdx0UMPZvv7VTG6a3FJq2Swoj+6fCJI+95T63IeXz8tWnr/4TGrsMKZHsBj6Vfe0F0fupSjQZdJGjV6JHy/60mG33qwrYJHuk0EGOX8l8L+auHDrPod1K9xTrYuIA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.5
Release Details
UpdatedJuly 17, 2026, 12:27 p.m.
Changelog

Added

  • Befristete Verträge zeigen jetzt einen eigenen Frühwarn-Chip „endet", wenn ihr Enddatum ins Erinnerungsfenster fällt — bisher gab es diesen Hinweis nur bei Verträgen mit Kündigungsfrist (#238)
  • Status-Chips und Akzentbalken haben jetzt eigene Dark-Mode-Farben und bleiben im dunklen Nextcloud-Theme gut lesbar (#204)

Changed

  • Währungsbeträge werden jetzt in der Sprache/Region der Nextcloud-Oberfläche formatiert statt fest in deutschem Format (#204)
  • Datumsangaben folgen jetzt ebenfalls der Sprache/Region der Nextcloud-Oberfläche statt fest im deutschen Format (Nachgang zu #204)

Security

  • Abhängigkeiten aktualisiert und alle offenen Sicherheitswarnungen behoben (u.a. dompurify, form-data, vite, esbuild, js-yaml, fast-xml-parser); npm audit meldet keine Schwachstellen mehr
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureSetLU4KaxYBImcoTdDXSM484uXuOHcqsDiacdyxmrhP6h5gSWB8Di9sqw3uTh7HZqrx1ieZ/5AeyU9qYh5Ncbk6zeKQdxoc4KFpaKG5u3hVJxztknHohSnOG8vIJbJJESB0bgZhb2a5MrmDdAjuu4eu3D75fEIoKSxLhbcGepjOoK5NK0ldyZjEfGHNwIMzpAPv9jm8GMwXrprVc0hIsTX/0i72q9teEBw3jIwT6ox6Mza1z1N4LAjY4I2Gxrvr0o9LmNHlnJBhqRlKRmu+yQQoH/KPAdDtZEU7p30+ichX1/O2oqJe2kS6p7HUExl+hSClQd8YRmvo98kiiMMCfTA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.4
Release Details
UpdatedJuly 12, 2026, 10:02 p.m.
Changelog

Added

  • Befristete Verträge sind in der Vertragsliste und im Formular jetzt auf einen Blick erkennbar: Der Status-Chip „Laufend" und der farbige Akzentbalken erscheinen bei ihnen in einem dunkleren Grün, ein Tooltip erklärt die Befristung (#277)

Changed

  • Das Datums-Label „Kündigen bis" heißt jetzt „Kündbar bis" — es beschreibt neutral, bis wann gekündigt werden kann, statt wie eine Aufforderung zu klingen. Gilt für die Vertragsliste und das Formular (dort auch „Kündbar bis (berechnet)") (#275)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
Signatureg5+CIDwuaoKaZc09+sPadyC9hXDP4i7+3czflDyZnsdigv7bSgZ6/2StJ/LhDf1hD8jBiGExVVnh0fz9LOvFLf//oa4fe22IZKEYJoXH/Zm3Y6eBpf5yskCJfUzxwXL7Sopcv+3HtPzUzQp9FOlqZpgNqo5cSMkUccm2vUGJHqmUjsm6jP3qsLdCfE9fQ43ePYBD7dhfc15Cv/nBj7LCv0xi5DELk2vQRkvLSpziBc+OibwIu+R3xPO8zIPqBdADrcq+yNue+E9EFHugletKSEhV34Q3EkGrqldTXRYwiAScDXQY0WgKiTNq4l1EJdwLYLyjFOwhhWemRit1zzSfoQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.3
Release Details
UpdatedJuly 11, 2026, 12:50 p.m.
Changelog

Fixed

  • Tab-Taste funktionierte in der gesamten App nicht mehr (seit 1.2.0): Die dauerhaft gemounteten, unsichtbaren Formular-Modals aktivierten ihre Fokus-Fallen schon beim Seitenladen und verschluckten jeden Tab-Druck. Die Modals werden jetzt erst beim Öffnen erzeugt; Esc schließt das Formular außerdem auch dann, wenn der Fokus in einem Eingabefeld steht (#266)
  • Datumseingabe: Beim Ziffer-für-Ziffer-Eintippen wurde das Jahr auf 19XX umgeschrieben (z.B. 1906 statt 2026) und die laufende Eingabe zerstört. Das Jahr lässt sich jetzt normal eintippen (#258)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturedjKIMBNn5BASPxCnmwrImEjthNcUvx8wxMvIvYyKKlU4yhUFRhfIbiE8DwvKhYg7lc0IfxSKRdO0wU7dwl2brNvGv2ual1vJFzW6GlsWW4CoxC/VBCT9xwDAAUU1kxd5FQOtbQFDsxZBpjVA4464x7uCujvGwBl+Yc79SqpoKKmXARibK/gnRnwjkmLFSbmBUeuOZfYpomcjHFdjESQQtFLz4VwyLIFnn2fXrUgawKo2qQpVWflnFKDPY8v50tMCOEsf3KUyxbOyEOl2LYpeDeeWOX2SgWq2OK2ixtYYa8Z67zE5eqlggH7/cNxeEJp9tD2kD6qjU0ahVwSsB485tA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.2
Release Details
UpdatedJuly 10, 2026, 9:38 a.m.
Changelog

Fixed

  • Gekündigte Verträge zeigten ihr „gekündigt zum"-Datum unter dem irreführenden Spaltenkopf „Kündigen bis". Jede Zeile der Vertragsliste trägt jetzt ein kleines Label, das benennt, welches Datum gezeigt wird („Gekündigt zum" / „Kündigen bis" / „Läuft bis"); der Spaltenkopf heißt neutral „Frist / Ende" (#252)
  • Unbefristete Verträge ließen sich nicht anlegen, wenn (z.B. durch eine fehlerhafte Jahres-Eingabe) ein Enddatum im Feld stand: Bei Vertragstyp „Unbefristet" ist das Enddatum-Feld jetzt deaktiviert und wird nie gespeichert — ein versehentliches Enddatum kann das Anlegen nicht mehr blockieren. Bei befristeten Verträgen nennt die Fehlermeldung jetzt den Ausweg (Enddatum per ×-Symbol entfernen) (#257)

Changed

  • Release-Härtung: Die Composer-Runtime-Abhängigkeiten (vendor/, u.a. der PDF-Parser) werden jetzt wie das kompilierte CSS mit ausgeliefert und sind über einen Packaging-Guard gegen versehentliches Weglassen im Release-Paket abgesichert. Verhindert eine Wiederholung der 1.2.0-Regression (#249, Follow-up zu #245)
  • Intern: Der automatische PR-Review-Workflow wurde gehärtet (Diff-Beschaffung, Berechtigungen, Abbruch-Verhalten) — keine Auswirkung auf die App selbst
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureJFHuGlWAqS6qcWy1oIivanlw2pvBaheNEDMZOTMx5PX398UUnFkvs936o5fhkvvB0LtqbrDRNjcOMD7+FhSzgajxkQyrUHeD99yccdmWoQ/o8bISXzunyD29N8J0BfkiNI7hrR5+T6IKLvBzzzvlMxFt4WlL5CpNeGJKfIBijA5tldhKd4d3y7dcD4Sw/SKwOiufgcTb+iP3t44jEjfGptLC1b542hanCHpnAPQ5R3ylYXUGBHbsAH+o4h7R8UbdkfVuRKh9LK4eG5fs+XTN80npQOA4w9KT3QXXlgwypFWWxAF6LANhiHlR51no/cJ7DYY7lUkw4ibaNZntPGK20Q==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.1
Release Details
UpdatedJuly 6, 2026, 8:49 p.m.
Changelog

Fixed

  • Oberfläche seit 1.2.0 komplett ohne Styling (kaputtes Layout, Nextcloud-Hintergrund scheint durch): das kompilierte CSS-Bundle fehlte im Release-Paket. Das CSS wird jetzt wie das JavaScript mit ausgeliefert (#245)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
Signatureh4QEgBwnjwrISLNm1xQNCSo536UQbvkgSDQSeuvSMsDhyh8Sgc5mppzWu4X4bq0mkGIFpbQxj5kpUPo+K5+1/edpV10ptXtf24WY90tC38nwCddgn97ZvmjRRjOOKzBAbDcIFdOoze93GnptwhHXiTm+JmgocA383KgpPx5ZoM72DhSQN9A5Xw4pngEKxf8awyXTpZcy+k8V6V13nnqWQ+aovTP99pUEbhpZMrH1RJcATKc/1cuZhVKDuue96EU5retjehFMn/J7naHJF60VyzlACyvokFVtsk4F2oGANz8WEXFcgXKPDi4q5bjoFNl3c9BFQPbAsA6Hl456JeT8ng==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.0
Release Details
UpdatedJuly 6, 2026, 3:29 a.m.
Changelog

Added

  • „Gekündigt zum" wird beim Eintragen von „Gekündigt am" automatisch mit dem Enddatum des Vertrags vorbelegt und bleibt änderbar – das Datum muss nicht doppelt eingegeben werden (#213)

Fixed

  • Sortierung nach „Kündigen bis" berücksichtigt jetzt auch befristete Verträge: sie landeten zuvor am Listenende, obwohl die Spalte ihr Enddatum anzeigte (#217)
  • Monatliche Kosten: Verträge mit automatischer Verlängerung, die mit ihrem ursprünglichen (abgelaufenen) Enddatum eingetragen sind, werden wieder eingerechnet (#215)

Changed

  • Status „Kündigung fällig" heißt jetzt einheitlich „Kündigungsfrist endet", passend zum gleichnamigen Filter (#216)
  • Die Kennzahl „Monatliche Kosten" ist als grobe Orientierung gekennzeichnet („ca.", Untertitel „Grobe Orientierung"), da sie Netto/Brutto und unterjährige Effekte nur näherungsweise abbilden kann (#215)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturegO8R8vrZxxOWSUMcKrDzzbo6rM4SRlZIFy7wDcI49HuPgzYAM5DMgAc69AWSYHrh+aa0Js5fLXLwSSRW8klKp2W9JnxNe2v4ZQbX/+j20CNQxRpFh7HS6/q3E4ePC50ikMqO8RNuojOMk8+rzmxl9Xk9E6Ogj5ovPULRESq7visZtWAGUFeWivzMEJNbgAxbe621qd8rv11788/6C/qiT1hdN8PowWJrnompSx/4L6SXPyhpYNUrE+TQOsdCkv4Fj/XUP4PguuV2EJUOv1zJB1+SIyoYOZ1iv5Ke1YBENcngClIKCJW2WdVdAwXX99sT7woecxvJoF0kl0ug0KzZxg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.1.0
Release Details
UpdatedJune 19, 2026, 10:27 a.m.
Changelog

Added

  • Übersichts-Kennzahlen über der Vertragsliste: Anzahl aktiver Verträge, monatliche Gesamtkosten und anstehende Kündigungen auf einen Blick. Die Kennzahlen beziehen sich auf die aktuell gewählte Ansicht und passen sich Kategorie-Auswahl, Filtern und Suche an. Monatliche Kosten werden je Zahlweise auf den Monat umgerechnet; bei Fremdwährungen und gemischten Netto/Brutto-Beträgen wird das transparent ausgewiesen (#112, #170)

Changed

  • Überarbeitetes Oberflächen-Design: Vertragsliste als übersichtliche Tabelle, Vertrags-Dialog mit einheitlichen Eingabefeldern und der Detail-Übersicht oben, Einstellungen mit klarer zweispaltiger Navigation (#170, #198)
  • Erinnerungs-Einstellungen im Vertrag verständlicher: ein globaler Schalter (gilt für alle Berechtigten) und ein persönlicher „nicht erinnern"-Schalter, jeweils mit kurzer Erklärung; die persönliche Vorlaufzeit zeigt den geltenden Standardwert (#198)
  • Benutzer-Auswahlfelder (Zuständig, Verträge übertragen) zeigen Vorschläge bereits beim Öffnen, ohne dass man erst tippen muss (#205)

Fixed

  • Genauere Erkennung der Server-Adresse für Erinnerungs-Links (Normalisierung), dadurch weniger falsche Hinweise zu overwrite.cli.url; zusätzlich robustere Berechnung des Kündigungsdatums (#201)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureGDxPEkr7p8dPUnH4mUI/aoAWFY/7P6ADxjnQVhJ26HZSRzMGV9QCLw680opPQt6ofv666gMLU69ZIXhyv8hjim2iM7qoxSXJkEDgLXIAIaGXCzfIL18eonvLOohfAwv+nsPyiI8dcAlfCxRXoFWM1XgRL7bfAcNMEqwDEylA0ndCU6dH2/Ys8a/9naB4L/q3OR1ml0Acgn4w2P0iOq8lG69gjpDumVKl0zynGqhedq1pUVkfzzJPAzoJN4JuMpwTGnYURIw05tEvZTYHPkNMXdMtT1P0wI2msLDGmBGTpzh1NicGE9urXKD0Nu26D7sIWgtCWVauphAmdBbp+jwuCw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.0.4
Release Details
UpdatedJune 17, 2026, 10:13 a.m.
Changelog

Added

  • Neues Feld „Kündigen zum" pro Vertrag (bei automatischer Verlängerung): „Tagesgenau" (wie bisher) oder „Zum Monatsende" – das Kündigungsdatum landet dann auf dem letzten Tag des Monats statt auf dem rückgerechneten Tag. Hilft bei Verträgen, die nur zum Monatsende kündbar sind (#159)
  • Hinweis in den Administrator-Einstellungen, wenn die für Erinnerungs-Links genutzte Server-Adresse (overwrite.cli.url) fehlt oder vom tatsächlichen Zugriff abweicht – andernfalls führen Links in Erinnerungs-E-Mails zur falschen Adresse (#194)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureLlBZDq0gQgSPjmcxCceYToQRjn26k7R8vUOvgyGlnLbHs6YBQwbKVK6GkCm45U+KcqeKy/HxqK3CwgTX6/8NiLXEEsgSssXYmupsOd3FHHeUdnsPDT0o6d/lqawprqA8/XhY3nrbdfYTH1cidhXwMkKAi2Q3x/O6GH0rD2KcCGoIUukKZV8VhSHIdGkrQlIc6jq/2e/35unyn4WFYe9fuPKzf56LqRz6v1mshh3crRZFo1HvL0oXMR1WNPpp+BqBqQCNWc4bS5ZEpwZjFqgCeFU8cBPbwim+/JxCubU2tVYZ7bhRL6xWmQufjH1Twdfr4p7Wn7QORIdhZsbUes1ioA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.0.3
Release Details
UpdatedJune 15, 2026, noon
Changelog

Added

  • Zuständigkeit pro Vertrag: neues Feld „Zuständig" – der effektive Eigentümer für Sichtbarkeit und „nur meine"-Erinnerungen ist die zuständige Person, der Ersteller bleibt als Nachweis erhalten (#173)
  • Administratoren können Verträge von einem Nutzer auf einen anderen übertragen (mit Vorschau-Zähler); „Zuständig" steht zudem in Liste, Filter und Suche zur Verfügung (#174)

Fixed

  • Der Button in der Erinnerungs-Mail führt jetzt zuverlässig in die App und direkt zum betroffenen Vertrag – zuvor landete man auf der Startseite/dem Dashboard, weil der Link im Hintergrund-Versand nicht korrekt aufgebaut wurde (#187)
  • Die Lese-Ansicht eines Vertrags war kaum lesbar (sehr blasse Felder); die Werte werden jetzt mit vollem Kontrast dargestellt (#187)

Changed

  • Aus der Erinnerungs-Mail öffnet sich der Vertrag direkt: bei Bearbeitungsrecht im Bearbeiten-Formular, sonst in der Lese-Ansicht (#187)
  • Mail-Texte und der Nextcloud-Talk-Absender heißen jetzt „Verträge" statt „ContractManager" (#187)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureOtdk401zx1hU/k+ngoLo3QGjiyzkS/ouAwab5vnaeSAke/zcG0EddS+QsCnXEcYLDnGYdAhPYHqJ0+uN7uQ/LUVuBnU7h+BqvsJR3SuVeAzlK/EIsZygU4kBU7S2kfrToRov9JJTFt3JPQbir+5DfOjUP+ZBv3/mZaYpQ0fTeCEs/AW0N9osIFUC8/aoIU8Yp3w+Y5EkTCUItZ/6rLsMhQTE56DSwm1ZEqrbIDtk5r39fnpRkOcQN2BS+y9+krAG88tY43888I2ygram01eOzTg6mBXk1GZmK8pIgh+GH9IBsdGZu70eRHBpPOjbHeSGnHyVu7PSfhloOY9H9c/pcg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.0.2
Release Details
UpdatedJune 14, 2026, 7:54 p.m.
Changelog

Fixed

  • Erinnerungen lassen sich pro Vertrag wieder dauerhaft deaktivieren; der Schalter „Erinnerung aktivieren" bleibt nach dem Speichern auch beim erneuten Öffnen aus (#180)
  • Regulär ausgelaufene befristete Verträge werden jetzt automatisch ins Archiv verschoben, wie es bei gekündigten Verträgen bereits geschah (#176)

Changed

  • Das Listen-Badge „Kündigung naht" heißt jetzt „Kündigungsfrist endet" – treffender, da ohne aktive Kündigung nichts passiert (#179)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureBaWNhZ5idX+9k7LIFE5FD9iiVDIdE2PCOTzhaunJoYkmG6h7ReXG+HNydxYGK5AddxEpBR8DwfxyD9GH8Ai0pEThLCMBE+b2k2yFvJH5lt3rKl1jhWa4h+jiX5pydCc/ZGuRc/aSlfNOVJK0JuZ436a4HEpX3FV+04vYGz5xO1pu66fLnBZC886V5hp3apEFoGVXtM0ur/250q2rcOZRQl/erKqvXBw36u6X0dfwxV7OBn/V62KUJBRje8A2272THv8QyVY5XLlrFrG+Rt0YUoHfyv/fGxzxu+ZassLmR5sQfJjnM+/FWbCPsRFzZ+OUpi4SFslAUwmLCn2e3vhB+Q==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.0.1
Release Details
UpdatedJune 14, 2026, 8:44 a.m.
Changelog

Added

  • Persönliches Erinnerungs-Modell: Jeder Nutzer legt in den Einstellungen selbst fest, für welche Verträge er Erinnerungen erhält – alle sichtbaren, nur eigene oder keine (#157)
  • Eigene Vorlaufzeit pro Nutzer; der vom Administrator eingestellte Wert dient nur noch als Standard für alle, die nichts Eigenes hinterlegen (#172)
  • Erinnerungen wahlweise zusätzlich über einen persönlichen Nextcloud-Talk-Chat (pro Nutzer konfigurierbar)
  • Opt-out pro Vertrag: einzelne Verträge gezielt von den eigenen Erinnerungen ausnehmen

Changed

  • Erinnerungen gehen nicht mehr nur an den Ersteller eines Vertrags, sondern an alle berechtigten Empfänger gemäß ihrem persönlichen Modus
  • Nextcloud-Talk-Benachrichtigungen sind jetzt pro Nutzer statt admin-global; private Verträge erscheinen dadurch nicht mehr in einem geteilten Chat

Fixed

  • Jahresbasierte Kündigungsfristen über den 29. Februar werden korrekt berechnet (z. B. 29.02. minus 1 Jahr → 28.02.)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureV7tWZo89ABWlAIeAHK/UHdfkLFEPitosAf1vlY/s6JCobWiLXxdPkKVu4+bIIrBvtFuxMUC8n7LHCwmaGMCiJz1iYMuN7Z8yzjafh65BlAMh9oO8YoLVftrAIUSI1mPyulWPyvln8dCyTyvIEbYilsd4nB5c/Vlnvxt8XTFZYN2g5/Nkva4tByFv04sFGYVALo68YNfKhPkcQImvs/AEl5Av8M/kxSLc84xs45ARywxrbh7FCajDKDWdI59lrY2cMTR+OQ4sX+oHapSXqm4KpafKBhANI1iRyoB//hrXNB7d90FIEfccS0JxnBG5jjo+dzxdhskJlzxIsHQCguxAxw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.0.0
Release Details
UpdatedMay 27, 2026, 5:42 p.m.
Changelog

Changed

  • Frontend komplett auf den aktuellen Nextcloud-Stack migriert: Vue 2 → Vue 3, webpack → Vite, Vuex → Pinia, @nextcloud/vue 8 → 9, Stores in TypeScript. Keine funktionalen Änderungen für Nutzer; die App ist damit technologisch auf aktuellem Stand und das Vue-2-EOL-Risiko entfällt (#150)

Fixed

  • Benutzer-/Gruppen-Suche in den Berechtigungs-Einstellungen lädt die Auswahl wieder (an @nextcloud/vue 9 angepasst)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturepPd5X5RTT7Fe1VJtaOrn1QmFW8ATb5cJ6VOwB2N9mWsKMf5Pj7sJaaMJ8hHq82DjHl3vnCyiqZBdTr6EcZFKgjuodpApVOpz9jrmqAmkhGa9T1/aXrtKd7S9HuoFOo3r7ASoSeE2T+4dc9L/gs3X6C5tiwG1C0pfs8yIt2bheoOIBlYgzFNcQVldWQRvNGKj5TrsSMkir2g46ydUhNLjCXGlkGjXnK80u8GU7vdNTXNVzE6SjDrwpEwFFR5TzD5rdVmkl/yMLnvHueuZOWKj8GaroinBBxkA5zJa742/1Ff+r9xaFvew/gq4TpyN8be4MVGc9ESSyL3+j4u/3w8vpw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.5.4
Release Details
UpdatedMay 26, 2026, 6 p.m.
Changelog

Fixed

  • Gekündigte Verträge mit automatischer Verlängerung wurden in der Liste falsch einsortiert und mit einem in die Zukunft gerollten Enddatum angezeigt. Gekündigte Verträge verlängern sich nicht mehr; ihr effektives Ende ist das „Gekündigt zum"- bzw. reguläre Enddatum (#145)
  • Die beiden Kündigungs-Datumsfelder „Gekündigt am" und „Gekündigt zum" werden jetzt gleich breit dargestellt (#144)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureabIE//S5nrfdLkvMqDK5jexsCh2o0zIOA+CN9wZ4KeyYU3yKbJPrbdLU38JBbFUmg2y2ysi/mBL3AGYYKnm7kOKqt3qchtiF34YAo1lDxvtlBuFb0KzA7ZfXjacFeZ+2ssmxJxKVPp77jzgzHDi8JfcCD6ikwAzRgmIXJo3QAjwPrmtr82pXhcMsOSIFYboFwG4sjgLPvuaVgb/cHxtWDLix/XTmL7cbohfQnZNiNoailHOCFyFgTc9pJifm8+5nEgOLqWRo9PEb7Z7+HUMQ5ZTiyxU1uTqOzJ4FpPMRfhzcUH7fV2vn/Ot+qaZWgZewYCcqfawAE/oNGjDbGlHU/Q==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.5.3
Release Details
UpdatedMay 21, 2026, 8:36 p.m.
Changelog

Added

  • Datumsfelder (Start, Ende) nutzen jetzt einen Kalender-Datepicker statt manueller TT.MM.JJJJ-Eingabe — einheitlich mit der Kontakte-App (#137)
  • Kündigungs-Automatik: Neue Felder „Gekündigt am" und „Gekündigt zum" (z. B. bei Sonderkündigung). Gekündigte Verträge werden am Laufzeitende bzw. zum „Gekündigt zum"-Datum automatisch beendet und archiviert (#136)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureKc/F73lI4B9xNoeBuc1BuEuqq7He1bCpN76n1QPN4j9BWx+DexEUo5jtcBW0eVw5EPkwUqiq9DoIoe6RMbu/MKy0046PTryjs36Lp6YoHaUvU4W5gmjxHX9xKW5juFs4C4XuxahiA0J3iaadc6nEnf/5AA/5p37mGDmxwXSnDsM3pFANcgeHZkDAA09VAp/zaTTdL+HADuJkRNxYSehB6W6huFFrdZnUF4bVcfpveKAkTWDl2wcbxiMfNST8MFlYGkjaJLSdL9JcQ51nTjrJb7YIZXOL1nrUPPbaQ7jtweV8Je3oCYWo0+aTl5JQFMCpTMRuYcWoKdg++cY3ChaC2g==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.5.2
Release Details
UpdatedMay 21, 2026, 1:41 p.m.
Changelog

Fixed

  • Vertragsdialog: Die Buttons „Abbrechen" und „Speichern" bleiben auf kleinen Fensterhöhen als fixierte Fußleiste sichtbar; der Dialog nutzt die verfügbare Höhe adaptiv statt eines festen Limits (#134)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureLgJztbw125YdscWFiR2zrsKhRubnejkpr/I79S1rLyXkao5ouB2JKdYVk8ACl9wU89ysdhIbERnoqmUXTedEvTR9Xwf38QitTuTFY+ouF6E04TowuQ3mYiYWQdGS3EHN9k8njHUqQ+rQoq9MAFiFcBG+5VT2baebfu8DVKUJHIN//E2B2+hy1jJKvl9Zll9tBLcek9pEN+P9IfsEisr1SSAbK8ipsdOzlny4Cp+xbEDpHNsJN8USkzjkyD6zdmeUxWo0O1Z7mLBbl/Y//guYcXyRlSb2do0UdlyKkV94G7J3E9mByOUtnzgLwMiQSWQ5xgJuFoxSXaC9A3j7nhqYZA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.5.1
Release Details
UpdatedMay 21, 2026, 10:27 a.m.
Changelog

Security

  • AI-API-URL wird beim Speichern gegen Schema und Host validiert: nur https oder http auf localhost/127.0.0.1/[::1]/.local/.localhost (#123)
  • Schutz gegen Prompt-Injection in der KI-Extraktion: PDF-Text wird in <document>-Tags gekapselt, eingebettete schliessende Tags werden neutralisiert (#124)
  • Weniger personenbezogene Daten in Logs: E-Mail-Adressen werden maskiert, Vertragsnamen aus Reminder-Logs entfernt, Erfolgs-Logs auf Debug-Level (#125)
  • API-Key-Maske als einheitliche Konstante (Single Source of Truth) statt hartkodierter Werte an mehreren Stellen (#126)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureJkCx2S+gI4dQ6jiCwsYWqRNkaM7GGnjgcPEf43+xXHVDf5iwdm3i0w7K9naqDkABFNkFBTTVbau/++zkabkSNr0yt7sdipDe9N4i4trEpjpwogrr9/A3lE61zNFT2/t9eXkCoGO3UMDdFABbO5VMqABfpwk4vi3jns7RRrGry99YQBf5H7ieJfwZGU2wLxABs/hDkQPzP/NUFiIumSzGKHPRXjPa6RpSKfAjGCy32mwgM/eiJLkB9BGYgPSz1lyxUsXYNoWvqQn61X8H2//LTuap8Cxwl2+9kkpJ7jjRAObeExYgYOl4Iu9VJIz0IzJZHk3yjzWy52Kd/V6/NOon6w==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.5.0
Release Details
UpdatedMay 19, 2026, 3:23 p.m.
Changelog

Added

  • Vertragspartner-Feld jetzt als Autocomplete mit Vorschlaegen aus bestehenden Vertraegen (#107)
  • URLs in Notizen werden in der Leseansicht als anklickbare Hyperlinks gerendert (#108)

Fixed

  • Doppelte Erinnerungs-Mails: wenn beide Reminder-Fenster gleichzeitig aktiv sind, wird nur noch die finale Erinnerung verschickt (#111)
  • Per-Vertrag reminderDays-Override wirkt jetzt korrekt auf die finale Erinnerung — kein verfruehter "letzter Hinweis" mehr wenn ein eigener Wert gesetzt ist (#116)

Changed

  • Screenshots im App Store aktualisiert (saubere Demo-Daten, Autocomplete sichtbar)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureNb7Dwx1o9fbkIrkRWWpmxB4+npA3YrlIjy8b9l1PE9jRCnXzC0iDqTZSB2MYID6R5PJ5TNjb+160yy2/TKk677+h0L5PWdVJiJG0QrwlgvXHQakC1p2ojrfNVKey+jD5BKWFZCvH/M6wtiqjaK+LYj80vTBFkOlWIqwPc5UIoQu3dhTcg79tc5rSPAw4vsFwqxGYsbhvZmX3MAl2dnTa/80TJVLzlNYUZWUrO21AKTZlY0rF087EbNOAptue105x8cksaKyhVNIUyY7uZ+evx0V9y0irJKrR8RDvrX8AlJYl17XMmNlVZy63DB+HkRAueCgVlPatJRIzIWPO1v+tkA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.4.4
Release Details
UpdatedApril 29, 2026, 9:34 a.m.
Changelog

Added

  • Aktive Sortierung wird im Sort-Button angezeigt (Feldname + Richtungspfeil), nach Nextcloud Tasks Pattern (#82)

Fixed

  • Kuendigungsdatum bei auto_renewal-Vertraegen springt jetzt automatisch zur naechsten Periode, wenn die Frist bereits abgelaufen ist (#80)
  • Vertraege ohne Kuendigungsfrist (z.B. befristete Vertraege) werden bei Sortierung "Kuendigen bis" ans Ende sortiert statt an den Anfang (#93)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureNogaqjh7Wgym0VWtGsKfYk+cWpEd5B30T3k3VZSRMZuTnFbNhbj9sfFsIjhNppDdfAoGxUa/Ufijn2sSrW7yYR3oICOMl0SpsWZjg75j4LWi2hjZnJjNS53FqGy1NpbPDp+WPx6O2VFDbY2s2aLUdBA6M3+hmIj8Vq9Nt92NkxqmSnSSAbKLIpbLHaVabsDROCxE6chGmsNCn+JgePR3QmjeVQfC1qLlJ4nfb5+3rHVmaIiuc8DjVssRGY9I8hiedcT/11D1RTbhuw99SlqlWM01MEESBC8H1jOv3TDt4hkRL6FatCVJSW4ZY4yWGwxVcUiWUSRvJI510yUnAJbIOg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.4.3
Release Details
UpdatedApril 14, 2026, 12:18 p.m.
Changelog

Fixed

  • KRITISCH (#86): App-Update und occ app:enable crashten auf Nextcloud 33, weil der Repair-Step die seit NC 11 deprecated und in NC 33 entfernte OC_App::getAppPath() nutzte. Betroffene User mussten die App disablen und auf v0.4.0 ausweichen. Fix nutzt jetzt die OCP-API IAppManager::getAppPath().
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureiEPxRKZ/36V/MAFhrVNIQy+gjHVeg2HpNs4V5cPvJuTHogZmr6Q3YTnWVG+RSV1A6HPNDo3xYakD/60ZlulWxcPVsa/jOPnT4J0Pm9AGrqIWkwS1FlCnXHmcWrzs16qIte3xrZMeB7Gl80f5SaoliEq3+OWst6f82kbs5VNqdB7x5UMYLYspJqvotyo+DJK9IpGb9ZUSXHEyGFBqPzpLPD6J8grG6FiLgIPD/OPHjd5ouQ9HGkIRT54AfWqZO7BiRYs6lr+6lG0jy5r6fzyLkXsZFmEm1bP2919KHoCCy8WvZENpb8EUcRaWli0GBiXGt+U0aBa2zq9EPCKYQfKYbg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.4.2
Release Details
UpdatedApril 11, 2026, 10:02 p.m.
Changelog

Fixed

  • Automatische Bereinigung von Extra-Dateien aus frueheren Releases via RepairStep
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureNixveg25w9r9rK41NCf2CvJS4nMr2SFvihlE2xfzEOiqUuJOZzaw7z8ZUqxB+EyYOwrHF767bUF8r5HPpCCwaVRg9d9lKG9l/yUAR204X2KnDDWEgE1lyLLgtzgClAnANxXB6OpBSCwNEIRmKjvo8wX3tSpP3ZGkVvZwjGSySIMqQt0PfewdnF4CCKMdA6tat7hq3nLmKM/wzvzfvkSORwohEh0+eqdCpWRkmGz+NUsVNpXb8j2FmPuBpPe8eI2YW9psoDyjP7YKLSUw2SAa48kIM8aBHHR5A7t4plo/eHbvVuwEGXeX+YvXgfyqlUdEz6TpCNUvAt+33cpUm7dHYA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.4.1
Release Details
UpdatedApril 11, 2026, 9:03 p.m.
Changelog

Fixed

  • Integritaetspruefung: test-results/ aus Tarball entfernt
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureEfqS20ZDolIXGiGCLx2Aw/3O2DNYsWMTVOfYKYH3kvd/HxoJn6lPXSDNi+VZZy6avl7WWA894kWJAc71GRful8rOIRVFlZI/w9+AbH/uZ2Iw1tjUWh+XNBWEhYFEsWT06CY/NH5l1sVymL61a8vbP2fMNaz1cho7DgMrbb1kubhGh9FYDmwUhrgB4g/P0CB2KMZA/bMdfhIn06KzmpyyBJ+avCOqgXFhbmj9GLiXWhr6S48mdlcN52AaCYLAACRKixZqs0jbeQAcNEsD9gJafUudfk5MseT6EX5dqSO2LdBRIhGX2nGrJGl+wJTC35c7/7DOG3VxBO+gMf31WYMnFQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.4.0
Release Details
UpdatedApril 8, 2026, 7:59 p.m.
Changelog

Added

  • Suchfeld in der Sidebar: Client-seitige Volltextsuche ueber Name, Vertragspartner, Notizen und Zusatzfelder (#60)
  • Globale Nextcloud-Suche: Vertraege erscheinen in der einheitlichen NC-Suche (#60)
  • Vertragstyp "Unbefristet": Enddatum ist kein Pflichtfeld mehr (#49, #67)
  • Filter "Ohne Kategorie" in der Sidebar mit Counter (#71)
  • Sortieroption "Kuendigen bis" in der Vertragsliste (#70)
  • Archiv-Counter in der Sidebar
  • Editoren koennen Vertraege in den Papierkorb verschieben (Soft-Delete)

Fixed

  • Kuendigungsdatum-Berechnung bei Monatsende korrigiert (z.B. 31.03 minus 1 Monat = 28.02 statt 03.03) (#72)
  • Browser-Confirm-Dialoge durch Nextcloud NcDialog ersetzt (Archivieren, Wiederherstellen, Kategorie loeschen)
  • NcDialog-Buttons nutzen buttons-Prop statt actions-Slot (verhindert Re-Trigger beim Schliessen)
  • Papierkorb nutzt ContractListItem (konsistentes Layout mit Vertragsliste und Archiv)
  • Erinnerung wird automatisch deaktiviert wenn Enddatum entfernt wird
  • Datumsvalidierung: Ungueltige Eingaben werden geleert mit Fehlermeldung

Changed

  • Loeschen-Dialog zeigt Hinweis auf 30-Tage Auto-Cleanup
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureSieDpGuTZ56Y5UGTUJ9Svk2ihCo3g8UJ59F4unOb/KPBG1movGAamOxrugqvTK1LD/azfUJ2TTpQvMXU5QBFD2aOkPSqxmcIlQpVuljKV2p+jvWlzpYMjZsQLNm+iw/SXA/MH0EK50ONVkiNOtqbhdbBxB+tOEdTMRcZVzBAHtwANWmJ/Rd+ukqXTZfvNJyIZzJBFLE5UggFs+UTXhhYyU3RMMVFC6j1QjSv/wvTYYBrAxBnqRxgvaZxbM40eMAm/tsVHtNblyKQnT3VpVEqoYHK3w/hxCv/NgDGCGo6leTSTO0AaXq7DlkMKxJUq2OJ3g7n5HzKyNXcTuVUdxFIJw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.3.0
Release Details
UpdatedMarch 30, 2026, 2:05 p.m.
Changelog

Added

  • Benutzerdefinierte Zusatzfelder: Bis zu 3 admin-konfigurierbare Felder pro Vertrag (#58)
  • Zahlweise (Zahlungsintervall): Monatlich, Quartalsweise, Halbjaehrlich, Jaehrlich, Einmalig (#59)
  • Externer Link Button: Externe URLs als Vertragsdokument hinterlegen

Changed

  • Formular-Redesign: Zusatzfelder in Grunddaten integriert, Kuendigen-bis in Laufzeit-Zeile, Kosten/Dokumente/Erinnerung als 3-Spalten-Layout
  • Vertragsdokument oeffnet im Nextcloud Viewer Overlay statt in neuem Tab
  • File Picker statt Smart Picker fuer Dokumentauswahl (weniger irrelevante Optionen)

Fixed

  • Vertragsordner "Oeffnen" Button funktioniert wieder (fehlende Methode)
  • Rote Pflichtfeld-Markierung bei leerem Formular entfernt (HTML5 required Bug)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureXWu692AGYav7p6GKcaNR1ft6lcej/OKXlfZGlfzYddiNHtKbifsGjAeMlSdu1hH8pwjPu0a+cmXMCL4QoWkntJOSRXDweVgKE1nqbQUfvhADCxHM9DgQOWwmq1hYZIa+Aeyr7ip4Q9OJJR55phPjMJQzjPslVNu/gT6TW2+pWQlNz4i0So17bWMOUCoHtJIYuLjhs1gl1yAKysR2AOqXYmHUt0WyclOi8MHRnAENlEJPq9/BeuHsZH3X8etDHxnOkV3kWpxeNJSzJPBtFrZSS6Rm/Y1ezLWM3ByC/Paoas5m/kuAosWBNC1z4mMj7lbin2ch9XlXV6EOCYNWfhteCA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.6
Release Details
UpdatedMarch 25, 2026, 1:47 p.m.
Changelog

Added

  • Smart Picker fuer Vertragsdokument: Unterstuetzt jetzt externe URLs zusaetzlich zu Nextcloud-Dateien (#48)
  • Automatische Statusaenderung: Abgelaufene befristete Vertraege werden taeglich auf "Beendet" gesetzt (#53)

Fixed

  • Falsche Datumsberechnung bei monatlichen Vertraegen aelter als ~8 Jahre durch Iterations-Limit (#51)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureXBnMgjIAfGw91tRrbID795GM7wJT0TVgGO/GR/OP3cpjrTSWl7nd7Af1i+aJALmk0Xj8XJ98hCW2jX5MZbnSMeaW6DvrqWWjRucwAL1zskc5KlmWkaewTrvYwFvPqbg7RbhUJpEwluw98r2etZ7WT4bO+aaPDHYyCRtn9vV+WEDguj0px2fUC7SB7mt7eOjkdZdR3aXtYWw4aKydOy8e2B2q3ousMrRS0Z8/+XyZ1fHyDJ1KmujM1Yw8FdAxKK/KsH1CAHYRLgGl9ue1c8LnbgkYGn7/SV9ZvBCv9/WodGosndAjJv+Pc00UpCjaFRWagcWpxDdHf7zn5RhbWrD0CQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.5
Release Details
UpdatedMarch 16, 2026, 9:03 p.m.
Changelog

Fixed

  • Vertragsdokument öffnet jetzt im Nextcloud Viewer als Overlay statt nur den Ordner anzuzeigen (#43)
  • Fallback bei fehlendem Viewer nutzt File-ID (/f/{id}) statt Parent-Ordner
  • "In Nextcloud öffnen" im Formular nutzt ebenfalls File-ID für zuverlässiges Öffnen
  • AI-Extraktionshinweise werden jetzt auf Deutsch angezeigt statt Englisch
  • Validierungsfehler (Enddatum) nutzt NcNoteCard statt schwer lesbarem eigenen Styling

Changed

  • Nextcloud Viewer wird auf der Verträge-Seite geladen (LoadViewer Event)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureC7DaszHix+eyQDohShhjWWGVKdBpHwbC65fX7/ISICwUvH8gPNQM3fJCLeAFJLyVljqHVu810b8OiDJI9UJe9+z11qKU7fJfWd51nf1cspgqMUUpYgzau2XVHHQnafwoi2jnTmj2ZwSmxlVLjexlHIeeWrJL4hbbuJVmP4LkSW0TVjBY+fyrnKA4md1v0Q0ganfxYanuJw+/KD/xzCk1KSeWsEJp3HfWzU1oFNLoPul64fAezCwLpEOEF5M6z5fqt9Afv6OITMVubdl8zugT/1FJTkAf8q30KyUhk0fSBIKMEK8ZsNq4D26emXNof0mS78Rg+/ceWbSoWEfKpLP1rg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.4
Release Details
UpdatedMarch 12, 2026, 10:35 p.m.
Changelog

Fixed

  • Fix "Extracted app has more than 1 folder" installation error caused by macOS metadata in tarball (#41, #38)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureQu6/CWJCFqj+gSaRsmLWn8Ysyw5hCQiGJLURRPyfU+xrDiSeyaMOeWzLxasI3GUDbNYeTN+AWlsqTguLN0FS+kJRH7TbkSbiBR0Hmc9aLy/fN3M7JBp3mRUs1LKAtaRTZoteBFg7LjqJFMlYWpJ03nkYQeGSZ5Scm0064AG4cNf59TOvwRs8I1/U4D3AyMsGpMIVn8XRB7ytVRxMKUCC4znJnC82BhPGSIGRyjjeM/Xit4uKd+0zLY1Vz+dRwm5qsKLfMzFCzB1iCQC15zesdh3IM8lbCHesW66SwcSIKeMYkfmcFV46BxuJbm+2Jq5GZWWnqnCTJtAIvRtZspoYAw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.3
Release Details
UpdatedMarch 8, 2026, 10:31 a.m.
Changelog

Fixed

  • Fix app update error by repackaging with correct code signature (#38)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureRA2wGkJYFDex8dxBPX9Aa7dQqPeTZqVNzjkNqIxR3PLX/pgDolF0etmcJCwEfW2Z8pbB/4RpxljeQTBKFpTo282+CDW89sYvE5Ws2HNJNsghNlAwHFdM6YdpnlIq292ONatPWSqnl4BalxBWHGtlLnj6PafAobRlVgUFYnvT0t2WqK1CMpZw1SVazAUx0M+0Te/HRBXxWWkL7LdQwofQj9aSgwRY2TZXR6jbVC82em1DU2K3Engb/O2YQI7NQeImJfQNACXLXiT4+O9GFSyMA8/nweE5hG3elxvXz2JgTb81rUQQ4i+1+L9VaLc/+2tkiy6XhepO/t+qu8KOWfc+dQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.2
Release Details
UpdatedMarch 8, 2026, 9:57 a.m.
Changelog

Fixed

  • Repackaged release tarball to fix "Extracted app has more than 1 folder" update error (#38)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureO3O8BSYsBnU6UnfgULrtgWyKvN2Zua2hhUnKxy9OcPGoZIoKZFQHV3BeqKzui/o5RXgCvZ1G3HfCXum+6ntxknIjyM+MqErUezvf36asxav3M2dhF7P29DntLWHtt4uZJZO5ypfCxBKWcz1OLooPYkKrDSO4t7l2XDV/1ugibkEP45U66AWlhihCAWIU/7Up6rpXwk8baMXbLSlbpfq62UeMs3X3brvXLrl0bpH6BpzGRMP2x1US1qttjAgN7DmnILf0907h19UOrhwzn0cp5M6qHPwUtdFSSBQCQ1Zw8D7sYWELhLMQPYcqkf0/MenwTs5ARnR2oUR8un70rW3bUQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.1
Release Details
UpdatedMarch 6, 2026, 1:15 p.m.
Changelog

Added

  • Support for fixed-term contracts without cancellation period (#28)
  • Dynamic reminders: cancellation deadline for auto_renewal, expiry date for fixed contracts (#27)
  • Code review documentation (docs/20260303_code-review.md)

Changed

  • Settings link moved to navigation footer (#1)
  • Improved privacy toggle UX (#30)
  • Cancellation period field only shown for auto_renewal contracts
  • Email and Talk reminder messages now differentiate by contract type

Security

  • Added userId null-check in ContractController (H1)
  • Added try-catch for DateTime parsing in validation (H2)
  • Added noopener/noreferrer to all window.open() calls (M4)
  • Added htmlspecialchars for email URLs (N1)

Removed

  • Unused CSS class .form-row--thirds (N3)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureULNilsw2pCJqm9zCMtbzqe0aRKt5wEJkVQNQHuXKr18KLD3+LkhFdrLTSb2AsQnXzj2m2yUHnFXPmpJxIsNFLdJyO/480JqiGtb++48pQVvFXS7PYjSAifcFQclgyKfyI9vNz7F4+BekAJijiTbXQTaHNOMoUHKjpFB6iWkH1YuDlGttiAR57vOCZuVFHbPbdvGnRj6w+JuHwBsikY37FGGHZF8JUMKoH8im4Nku1ggy84qGeFSNb6SBELxMZLh6x5cQ2XqrWzEr9KoxcS8Medg969uzrooxYtFIySzIatNKDbZLUOy7ps/Js5b25ZG2A7TEBnRbK/5uk+DAP+FLwA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.0
Release Details
UpdatedFeb. 27, 2026, 1:44 p.m.
Changelog

Added

  • Filterable contract list with vendor, status, and contract type filters (#22)
  • Sortable contract list with persistent user preference (#21)
  • Duplicate contract action (#18)
  • Folder icon in contract list to open contract folder (#15)

Changed

  • Display name renamed to "Verträge" (#17)
  • Filter and sort preferences persist per user across page reloads
  • Updated screenshots for App Store listing

Fixed

  • Categories now sorted alphabetically (#8)
  • Invalid JSON in l10n translation files (#16)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureKIBmvrqKEGy2kGUnXUthC95r6BKGgWd6ip2Sz7fLHuDP9+9DA7Bw8ZS6k57y7ve/EOCxRk0jCHrDjCg1z6cBMvathmrS8EYskirFmOThHB4R842XOFZJdniItJcJjEDpdxRQUQ7pN+6zUVNGqnMMJFS3iFjsHJ09xjnyYIfNV92uEM3wwLPHsUpLf/EmDwMHWxqeyQecy4LofKgzl5nzqCLox8b4sJwYMLJh4AKRdP3MeEJmZ1sOIjoHvMFlv+8FfJ+bYndB7X4/mByi8YGBFsu7oE3nSZYFiWBPJyrE8iXvpyFOjbF3LDO7l6K9tvoZ/oVfRAW8gcxXjIy/5cGeEg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.1.5
Release Details
UpdatedFeb. 23, 2026, 8:26 p.m.
Changelog

Fixed

  • FilePicker not opening on certain hosting providers due to extremely long webpack chunk filenames
  • Selected folder/file name not visible after FilePicker selection (only in tooltip)

Changed

  • Nextcloud 33 compatibility added (max-version raised to 33)
  • Webpack chunk filenames shortened to hash-based naming
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureJv66e/NQUYBs/GKvoVA5n79dFyMMgRggxXCa4C0RU0Hq5W4pc7tVl9KOe8hPaLtcu9Yfi8FeTttKUEZdrSVZvsiRyADH+hd5XXFvV/IRKq0X3HltOTre597GzCyXUuLKK3W2ORbgQlydnxudQqC8rvsUGUkl4AqhZf8mfmIzYd07nrRsPGIE7WxRJ8aDE1nfJiq9fFrMXBCr3UpEwC9o9BYroyc3cbyGwpWzF0hFZIwJ76Wm388oOskC0bCCRJT2MyoGaQ++kXaxY09csHtWfr+d/V9HAYnyDBRdeGYxaKqgjE57AJNKNCZjRqiYVuajIt91CYN7c62OjtaDtuIhjA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0

Nextcloud 32

VertragsWerk 1.7.0
Release Details
UpdatedSept. 6, 2026, 12:41 a.m.
Changelog

Added

  • Automatisches Backup: In den Einstellungen zeigt VertragsWerk jetzt, wann zuletzt gesichert wurde und wann die nächste Sicherung fällig ist. Ein Button „Jetzt sichern" löst eine Sicherung sofort aus, ohne auf den nächsten Intervall-Zeitpunkt zu warten (#397)

Fixed

  • Automatisches Backup: Der Sicherungsrhythmus wanderte Tag für Tag um bis zu einer Stunde nach hinten (z. B. rund 25 statt 24 Stunden bei täglicher Sicherung), weil als „zuletzt gesichert" der tatsächliche – durch die stündliche Prüfung leicht verspätete – Zeitpunkt gespeichert und zum neuen Ausgangspunkt wurde. Der Zeitplan wird jetzt an feste Intervalle verankert, sodass sich keine Verspätung mehr aufsummiert; verpasste Läufe (z. B. Server war aus) werden zu einer einzigen Nachhol-Sicherung zusammengefasst (#375)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturecvlEPnIKbl3NZG8jDo/tPcLVVV8r+h+y+iBjZWnvMKu1Hd4bxtL9Ge374uPyXH58I4Fn+XiBYhU3l9lQv9ZRjN3y1SCLSso+2VKDZUH0AcitiflXB1uz+5F3HP7eA2Fa4GfTd00MfcKEh22+oGGaomwtUCK9gds491QPFCgV6v3kcOdfFF/Lzah7UmOf7oWJGqvwr54ccM3Wu1YDNcX01zBxxCUnvL9ktl9a+PI9/3K/y0zUmLS2su/jsR2fMLYM7RjL3u40DlnxA8zRq/TOTuCg/xYfkGVQb2uOwop5MGGFftO7ODBVnFywtw7KBGXVGqfPaCJKsGLzbeXLulJzDg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.6.0
Release Details
UpdatedAug. 28, 2026, 2:19 p.m.
Changelog

Added

  • Kalender-Abo: Vertragsfristen lassen sich als schreibgeschützter Kalender (ICS) in der Nextcloud-Kalender-App abonnieren. Pro Vertrag erscheint ein Ganztags-Termin an der Kündigungsfrist (bzw. dem Vertragsende). Enthalten sind nur die Verträge, für die man ohnehin Erinnerungen erhält, damit der Kalender nicht überläuft. Die Abo-URL wird in den Einstellungen erzeugt, trägt einen geheimen Token und lässt sich bei Bedarf neu erzeugen (invalidiert die alte) (#68)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureOcObgECzJA8CiqXdiEqQjOUBkhv9o3+7AOCrIQfecN8z6Dfi2pKkVzYuAxJ0S/xkx6iLIoBwi8/Kbb9X2wCWVDiPrZQptqfTPSbhK9a+zsWna++CwCrdKKE4J2TSOWaw0JRlLVrgDRleMkHS36ruVW/CXThhA0419jMJQmGVH242E6GcfPTbV7BR4eeR/YA3foGlIVHydhRnJUpjlATbuJ4Neo9wij8A8kmMOfnim5WvrqPppJyWVQR4deZh26s3T0Jc6VtAR3JbnKyewN1dTd6Zk9zd+s+3sTb+cgYKIXu2uV5UqMo+PuA3aEUlGQZzeperm9t7I8pGo5VAe7fFsw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.5.0
Release Details
UpdatedAug. 26, 2026, 9:38 a.m.
Changelog

Added

  • Automatisches Backup: Auf Wunsch sichert VertragsWerk die eigenen Vertragsdaten regelmäßig als JSON-Datei in einen wählbaren Nextcloud-Ordner, damit der aktuelle Stand in jedem normalen Nextcloud-Backup landet, ohne jedes Mal einen vollen Account-Export anzustoßen. Aktivierbar in den Einstellungen (Ordner + Intervall täglich/wöchentlich/monatlich); es werden die letzten 30 Sicherungen behalten. Zusätzlich gibt es den Befehl occ contractmanager:export für Admin/Automatisierung. Das Serialisierungsformat ist identisch mit dem der Datenmigration (#296)

Changed

  • Zusatzfelder in den Administrator-Einstellungen haben jetzt ein echtes „aktiviert"-Flag statt der bisherigen Ableitung „Label leer = aus". Anhaken öffnet ein leeres Feld mit grauem Platzhalter (kein vorbefüllter Text mehr, den man erst löschen muss), Leerlöschen des Namens lässt das Feld offen, und ein abgehaktes Feld verschwindet aus dem Vertragsformular, behält aber seinen Namen fürs spätere Wiedereinschalten. Bestehende Konfigurationen bleiben unverändert (#368)
  • Der Hinweis unter der Vorlaufzeit im Vertragsformular lautet jetzt schlicht „Standard: X Tage.“ statt „Leer lassen = Standard (X Tage).“. Das graue X im Feld ist nur ein Platzhalter, kein fester Wert; die alte Formulierung wirkte dadurch widersprüchlich, als ließe sich der voreingetragene Wert nicht löschen (#364)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureN2yTXW9z26EU6EIMUKqqnpScMq0P/9wktuT++kzds5QKDGIqEZ6K7mvR5FZ/A+O+uq0rL0Sjbb8eepsIUWJQ5TV9t5E9WQQc4lpgoxEr4UlMCYerCvHmrhZQuC1KgE3XMUbxZ0a9a3KE+v4IOk5kgKl/g2z1r2noSXLDdrrs3L66z5EPEf7UhbB9BcbzG/Ht+C57nBVKIVbDmtixVl1VdwrYn+ThUO4REcK38Fl3oSaWwgZeHRT3+sQxFEcZr76cal775Mpo9EXdT6kKsWsE4IST9PRuISzLN6l0TWlrAsv02ao+thPzQxpL86aPY8yke89+IeOHDcZkulJBXlDwGw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.4.0
Release Details
UpdatedAug. 21, 2026, 10:16 a.m.
Changelog

Added

  • Verträge lassen sich jetzt per Ziehen aus der Liste auf einen Kategorie-Eintrag in der Seitenleiste einer Kategorie zuordnen oder umsortieren. Ein Ziehen auf „Ohne Kategorie" entfernt die Zuordnung. Das Ziel wird beim Drüberziehen hervorgehoben. Das ist eine Ergänzung zum Bearbeiten-Formular, das die Kategorie weiterhin setzt (Touch- und Tastatur-Weg bleiben unverändert). Nur Bearbeiter können auf diesem Weg umsortieren (#359)

Changed

  • Die Administrator-Einstellungen speichern jetzt einheitlich: Erinnerungstage, Zusatzfeld-Angaben und der Nachfolger bei gelöschtem Konto werden automatisch beim Verlassen des Feldes gesichert, wie die übrigen Einstellungen. Der leicht zu übersehende Sammel-Button „Admin-Einstellungen speichern" entfällt dadurch. Die KI-Vertragsanalyse behält bewusst einen eigenen „KI-Einstellungen speichern"-Schritt, weil Provider, API-Key, URL und Modell nur als vollständiger Satz sinnvoll sind, und zeigt darüber klar an, ob sie aktiv ist oder mangels API-Key nur konfiguriert aussieht (#151)

Fixed

  • Auf Nextcloud 34 legte sich der Titel des Vertragsfensters („Neuer Vertrag", „Vertrag bearbeiten", „Vertragsdetails") quer über die Suchleiste im Kopfbereich. Ursache war nicht die App: Nextcloud hat die Suchleiste in die Mitte verschoben, wo das Fenster seinen Titel zeichnete. Der Titel wird jetzt nicht mehr sichtbar dort dargestellt; das Fenster trägt seine Kopfzeile ohnehin selbst. Für Vorlesesoftware bleibt es benannt (#337)
  • Auf Nextcloud 34 kamen alle Benachrichtigungen von VertragsWerk ohne Symbol und ohne anklickbaren Link an, und im Server-Log stapelte sich im Minutentakt eine Verfallswarnung. Ursache: Das Symbol wurde mit einer relativen Adresse gesetzt, die Nextcloud 34 nicht mehr annimmt — der abgewiesene Wert brach die Aufbereitung ab, bevor der Link gesetzt war. Das Symbol wird jetzt als vollständige Adresse gesetzt; Symbol und Link erscheinen wieder, und die Log-Warnung entfällt (#357, #358)
  • Meldungen des Servers erschienen auf Englisch, auch wenn die App auf Deutsch lief: „Name is required" statt „Name ist erforderlich", „Contract not found" statt „Vertrag nicht gefunden". Betroffen waren 29 Texte aus der Vertragsprüfung, der Rechteprüfung und der Dokumentenerkennung sowie 18 weitere, die gar nicht übersetzbar angelegt waren. Sie sind jetzt durchgängig deutsch und in beiden Sprachen hinterlegt. Ursache war eine Umstellung vom März, die die Texte ins Englische übersetzte, ohne die Übersetzungsdateien nachzuziehen — die deutschen Fassungen lagen seither unerreichbar daneben (#340)

Changed

  • Die Übersetzungsprüfung der CI sieht jetzt auch den Serverteil der App und nicht mehr nur die Oberfläche. Zusätzlich läuft sie bereits beim Commit statt erst im Pull Request. Der bisherige Prüfer meldete „in Ordnung", während die 29 englischen Meldungen ausgeliefert wurden (#340)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureRwDyDuPl0Y6Jr0XETw+VscUS6jhIaAGGWuomMUzBiauQFiw4MNktA+wKdWIiUrrW3IiVsg2ImgpInu1f5uCogfmeNo5nv6/NFpItvHYWScGajIEfDk9VFUD1POFApJrg72fZiqqEAXGnYdCvSU4+1vTOPdkTZKFhESDrupRrGD4XEToghFWgV0Oe1kY3AgWbWvXlNvvQet3mi3xUVaOBPEpXf3hIEp0srjBfKFqbW3UhvSdrU8ZLbI6AehRwK+zXHrMc9fZY5tZPuEtqv8oT5jevuB87Vh490lXjio1e5bH446P7WtjBU/LwQYjSgbs+9VKh+uUPqIi/IQT6tuYHVg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.3.0
Release Details
UpdatedAug. 11, 2026, 7:03 p.m.
Changelog

Changed

  • Anzeigename der App auf „VertragsWerk" umgestellt (App-ID bleibt contractmanager)

Security

  • Die mitgelieferte Bibliothek dompurify wurde auf 3.4.13 gehoben. Die Vorversion konnte unter bestimmten Umständen Schadcode in einem abgetrennten Teilbaum ausführbar lassen. Der Bump allein hätte nicht gereicht: dompurify steckt im ausgelieferten JavaScript, deshalb wurde es neu gebaut

Fixed

  • Ein archivierter Vertrag ließ sich nicht mehr ansehen: Der Klick darauf öffnete ein leeres Formular. Das Archiv zeigt Verträge jetzt wieder vollständig an, allerdings nur noch lesend. Wer einen archivierten Vertrag ändern will, stellt ihn vorher wieder her. Die Einträge „Duplizieren“ und „Bearbeiten“ sind dort entfallen, sie waren ohnehin wirkungslos. „Wiederherstellen“ und „Löschen“ bleiben (#328)
  • 41 Texte der Oberfläche waren nie in die Übersetzungsdateien eingetragen und erschienen deshalb in jeder Sprache auf Deutsch, darunter „Betrag“, „Gekündigt am“, „Aktive Verträge“ und die Beschriftungen der Einstellungen. Sie sind jetzt vollständig hinterlegt und übersetzt. Damit die Lücke nicht erneut entsteht, prüft die CI ab sofort bei jedem Pull Request, ob jeder übersetzbare Text in allen vier Übersetzungsdateien steht (#334)
  • Eine leere Vertragsliste behauptet nicht mehr, es gebe noch keine Verträge, wenn in Wahrheit nur ein Filter, eine Kategorie oder die Suche greift. Sie nennt jetzt die Einschränkung als Ursache und bietet an, die Filter zurückzusetzen. Der Administratoren-Filter „Ohne aktiven Eigentümer“ wird außerdem nicht mehr dauerhaft gespeichert: Er ist ein Diagnosewerkzeug, das im Normalbetrieb fast immer null Treffer liefert, und filterte einmal angetippt über Monate stumm weiter. Er gilt nur noch für die laufende Ansicht (#332)
  • Beim Duplizieren eines Vertrags werden Start- und Enddatum sowie die Kündigungsdaten nicht mehr aus dem Original übernommen. Bisher stand im Startdatum der Kopie das alte Datum, und der Kalender des Browsers öffnete sich deshalb im damaligen Monat, sodass man bis zum heutigen Tag vorblättern musste. Bei leeren Feldern öffnet er sich von selbst im aktuellen Monat. Die Kopie eines gekündigten Vertrags trägt außerdem nicht länger dessen Kündigungsdaten mit sich, sondern startet als laufender Vertrag. Alles Übrige, also Anbieter, Kategorie, Kosten, Kündigungsfrist, Erinnerungen und Notizen, wird weiterhin übernommen (#307)
  • Beträge mit zwei Nachkommastellen bleiben erhalten: „10,50" wurde im Vertragsformular als „10,5" angezeigt und blieb auch nach dem Korrigieren und Speichern so. Das Feld nimmt jetzt auch die deutsche Komma-Schreibweise entgegen und zeigt Beträge einheitlich mit zwei Nachkommastellen (#305)
  • Ein Betrag, der sich nicht als Zahl lesen lässt oder über 99.999.999,99 liegt, wird beim Speichern mit einem Hinweis abgewiesen, statt zu einem Serverfehler zu führen (#315)
  • Das ausgelieferte JavaScript enthielt Entwicklungscode: Die App lädt jetzt ein kleineres Paket und läuft im Browser schneller. Fehlermeldungen der Oberfläche, die nur im Entwicklungsmodus auftraten, sind damit ebenfalls verschwunden (#306)
  • Wird ein Nutzerkonto gelöscht, verlieren dessen Verträge nicht mehr stillschweigend ihren Eigentümer: Die Zuständigkeit geht an einen Nachfolger über, der per occ config:app:set contractmanager deletion_successor --value=<Nutzer> festgelegt wird. Ohne festgelegten Nachfolger bleibt alles unverändert. Verträge werden dabei nie gelöscht, auch nicht die im Papierkorb, und der Ersteller bleibt als Angabe erhalten. Verträge mit einem anderen Verantwortlichen sowie private Verträge bleiben unberührt (#299)
  • Verträge im Papierkorb werden nicht mehr automatisch nach 30 Tagen endgültig gelöscht, wenn ihr Ersteller kein Konto mehr hat. Endgültig löschen kann sie damit nur noch ein Administrator (#299)

Added

  • Die eigenen Vertragsdaten lassen sich jetzt über Nextclouds App user_migration mit exportieren und wieder einspielen: occ user:export legt sie ins Standard-Archiv, occ user:import spielt sie samt Kategorien zurück, ohne die vorhandene Kategorienliste zu verdoppeln. Verträge im Papierkorb bleiben außen vor, angehängte Dateien nimmt Nextcloud selbst mit (#273)
  • Neue Administrator-Einstellung „Nachfolger bei gelöschtem Konto": Wer hier eingetragen ist, übernimmt die Zuständigkeit für die Verträge gelöschter Konten. Ohne Eintrag bleibt alles unverändert (#299)
  • Administratoren werden benachrichtigt, wenn ein Konto gelöscht wurde, samt Anzahl der übertragenen Verträge und derer, die noch eine Zuordnung brauchen (#299)
  • Neuer Filter „Ohne aktiven Eigentümer" in der Vertragsliste, nur für Administratoren: zeigt Verträge, deren Zuständiger beziehungsweise Ersteller kein Konto mehr hat, und macht sie über „Verträge übertragen" weiterreichbar (#299)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureCHeUXgS3flycmkGeVqbg1QRm15pCiXAFj1rApEn5mPMWQBurU6aYeVvpm+YWTDL9wrZzoNqWdzqXhqQCtWFNL9TdY9q/8/UtrxYM2WFwq989hgwcEC2BjsyDBr8PipG6Ikbk/2qmJ1xpvkUQRhOAPXzml6y1D9Xox+RemiEhF+nsXl58WyZ8i0Ub0PEW5gNhhz4yAoTR3gxUXAWm14IqcJFveLB/xPKEpfyI1QWaVQRWzBF3td4gpYvLLZH3rcwsoDa5Cqx+gkF/0Xu2ZuL21a48URYNcjNDgZdDECt1j2rK57r6ExlPJ5oRAcmPYKvoI7Wm62JV0SvwgkmRxH9Y6g==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.6
Release Details
UpdatedJuly 23, 2026, 10:01 p.m.
Changelog

Added

  • Neuer Status „Geplant" für Verträge, deren Startdatum noch in der Zukunft liegt: Sie werden in Liste und Formular als „Geplant" angezeigt statt „Laufend" und lassen sich gezielt filtern. Am Startdatum wechseln sie automatisch auf „Laufend" (#109)

Fixed

  • Ein gekündigter Vertrag wird ab seinem Wirksamkeitsdatum („Gekündigt zum") sofort als „Beendet" angezeigt, statt bis zum Folgetag noch als „Gekündigt" zu erscheinen (#288)

Security

  • Abhängigkeiten aktualisiert (axios, immutable, brace-expansion); npm audit meldet keine Schwachstellen mehr (#289, #290, #293)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturelsYDzc1oasQpg/WPzQaQxVv+3o2OcFOBkemZoEPHnEAJwf0qg3Yhb2NySJqdoPLxaUMTyfRbCPaxxt8yaIypQhLiOIuawlqUpJustOttJC9iijdgghiZs8rosR/Zb0WJxAGL+9HZOqnRNezMjSk+NNkG4ALcR3OIHHfh93JBoGkVa+1/eMFEyM9in3jkls2VJK4+AxN1Bz/++tJ0ZDikjJPtcbdx0UMPZvv7VTG6a3FJq2Swoj+6fCJI+95T63IeXz8tWnr/4TGrsMKZHsBj6Vfe0F0fupSjQZdJGjV6JHy/60mG33qwrYJHuk0EGOX8l8L+auHDrPod1K9xTrYuIA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.5
Release Details
UpdatedJuly 17, 2026, 12:27 p.m.
Changelog

Added

  • Befristete Verträge zeigen jetzt einen eigenen Frühwarn-Chip „endet", wenn ihr Enddatum ins Erinnerungsfenster fällt — bisher gab es diesen Hinweis nur bei Verträgen mit Kündigungsfrist (#238)
  • Status-Chips und Akzentbalken haben jetzt eigene Dark-Mode-Farben und bleiben im dunklen Nextcloud-Theme gut lesbar (#204)

Changed

  • Währungsbeträge werden jetzt in der Sprache/Region der Nextcloud-Oberfläche formatiert statt fest in deutschem Format (#204)
  • Datumsangaben folgen jetzt ebenfalls der Sprache/Region der Nextcloud-Oberfläche statt fest im deutschen Format (Nachgang zu #204)

Security

  • Abhängigkeiten aktualisiert und alle offenen Sicherheitswarnungen behoben (u.a. dompurify, form-data, vite, esbuild, js-yaml, fast-xml-parser); npm audit meldet keine Schwachstellen mehr
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureSetLU4KaxYBImcoTdDXSM484uXuOHcqsDiacdyxmrhP6h5gSWB8Di9sqw3uTh7HZqrx1ieZ/5AeyU9qYh5Ncbk6zeKQdxoc4KFpaKG5u3hVJxztknHohSnOG8vIJbJJESB0bgZhb2a5MrmDdAjuu4eu3D75fEIoKSxLhbcGepjOoK5NK0ldyZjEfGHNwIMzpAPv9jm8GMwXrprVc0hIsTX/0i72q9teEBw3jIwT6ox6Mza1z1N4LAjY4I2Gxrvr0o9LmNHlnJBhqRlKRmu+yQQoH/KPAdDtZEU7p30+ichX1/O2oqJe2kS6p7HUExl+hSClQd8YRmvo98kiiMMCfTA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.4
Release Details
UpdatedJuly 12, 2026, 10:02 p.m.
Changelog

Added

  • Befristete Verträge sind in der Vertragsliste und im Formular jetzt auf einen Blick erkennbar: Der Status-Chip „Laufend" und der farbige Akzentbalken erscheinen bei ihnen in einem dunkleren Grün, ein Tooltip erklärt die Befristung (#277)

Changed

  • Das Datums-Label „Kündigen bis" heißt jetzt „Kündbar bis" — es beschreibt neutral, bis wann gekündigt werden kann, statt wie eine Aufforderung zu klingen. Gilt für die Vertragsliste und das Formular (dort auch „Kündbar bis (berechnet)") (#275)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
Signatureg5+CIDwuaoKaZc09+sPadyC9hXDP4i7+3czflDyZnsdigv7bSgZ6/2StJ/LhDf1hD8jBiGExVVnh0fz9LOvFLf//oa4fe22IZKEYJoXH/Zm3Y6eBpf5yskCJfUzxwXL7Sopcv+3HtPzUzQp9FOlqZpgNqo5cSMkUccm2vUGJHqmUjsm6jP3qsLdCfE9fQ43ePYBD7dhfc15Cv/nBj7LCv0xi5DELk2vQRkvLSpziBc+OibwIu+R3xPO8zIPqBdADrcq+yNue+E9EFHugletKSEhV34Q3EkGrqldTXRYwiAScDXQY0WgKiTNq4l1EJdwLYLyjFOwhhWemRit1zzSfoQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.3
Release Details
UpdatedJuly 11, 2026, 12:50 p.m.
Changelog

Fixed

  • Tab-Taste funktionierte in der gesamten App nicht mehr (seit 1.2.0): Die dauerhaft gemounteten, unsichtbaren Formular-Modals aktivierten ihre Fokus-Fallen schon beim Seitenladen und verschluckten jeden Tab-Druck. Die Modals werden jetzt erst beim Öffnen erzeugt; Esc schließt das Formular außerdem auch dann, wenn der Fokus in einem Eingabefeld steht (#266)
  • Datumseingabe: Beim Ziffer-für-Ziffer-Eintippen wurde das Jahr auf 19XX umgeschrieben (z.B. 1906 statt 2026) und die laufende Eingabe zerstört. Das Jahr lässt sich jetzt normal eintippen (#258)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturedjKIMBNn5BASPxCnmwrImEjthNcUvx8wxMvIvYyKKlU4yhUFRhfIbiE8DwvKhYg7lc0IfxSKRdO0wU7dwl2brNvGv2ual1vJFzW6GlsWW4CoxC/VBCT9xwDAAUU1kxd5FQOtbQFDsxZBpjVA4464x7uCujvGwBl+Yc79SqpoKKmXARibK/gnRnwjkmLFSbmBUeuOZfYpomcjHFdjESQQtFLz4VwyLIFnn2fXrUgawKo2qQpVWflnFKDPY8v50tMCOEsf3KUyxbOyEOl2LYpeDeeWOX2SgWq2OK2ixtYYa8Z67zE5eqlggH7/cNxeEJp9tD2kD6qjU0ahVwSsB485tA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.2
Release Details
UpdatedJuly 10, 2026, 9:38 a.m.
Changelog

Fixed

  • Gekündigte Verträge zeigten ihr „gekündigt zum"-Datum unter dem irreführenden Spaltenkopf „Kündigen bis". Jede Zeile der Vertragsliste trägt jetzt ein kleines Label, das benennt, welches Datum gezeigt wird („Gekündigt zum" / „Kündigen bis" / „Läuft bis"); der Spaltenkopf heißt neutral „Frist / Ende" (#252)
  • Unbefristete Verträge ließen sich nicht anlegen, wenn (z.B. durch eine fehlerhafte Jahres-Eingabe) ein Enddatum im Feld stand: Bei Vertragstyp „Unbefristet" ist das Enddatum-Feld jetzt deaktiviert und wird nie gespeichert — ein versehentliches Enddatum kann das Anlegen nicht mehr blockieren. Bei befristeten Verträgen nennt die Fehlermeldung jetzt den Ausweg (Enddatum per ×-Symbol entfernen) (#257)

Changed

  • Release-Härtung: Die Composer-Runtime-Abhängigkeiten (vendor/, u.a. der PDF-Parser) werden jetzt wie das kompilierte CSS mit ausgeliefert und sind über einen Packaging-Guard gegen versehentliches Weglassen im Release-Paket abgesichert. Verhindert eine Wiederholung der 1.2.0-Regression (#249, Follow-up zu #245)
  • Intern: Der automatische PR-Review-Workflow wurde gehärtet (Diff-Beschaffung, Berechtigungen, Abbruch-Verhalten) — keine Auswirkung auf die App selbst
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureJFHuGlWAqS6qcWy1oIivanlw2pvBaheNEDMZOTMx5PX398UUnFkvs936o5fhkvvB0LtqbrDRNjcOMD7+FhSzgajxkQyrUHeD99yccdmWoQ/o8bISXzunyD29N8J0BfkiNI7hrR5+T6IKLvBzzzvlMxFt4WlL5CpNeGJKfIBijA5tldhKd4d3y7dcD4Sw/SKwOiufgcTb+iP3t44jEjfGptLC1b542hanCHpnAPQ5R3ylYXUGBHbsAH+o4h7R8UbdkfVuRKh9LK4eG5fs+XTN80npQOA4w9KT3QXXlgwypFWWxAF6LANhiHlR51no/cJ7DYY7lUkw4ibaNZntPGK20Q==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.1
Release Details
UpdatedJuly 6, 2026, 8:49 p.m.
Changelog

Fixed

  • Oberfläche seit 1.2.0 komplett ohne Styling (kaputtes Layout, Nextcloud-Hintergrund scheint durch): das kompilierte CSS-Bundle fehlte im Release-Paket. Das CSS wird jetzt wie das JavaScript mit ausgeliefert (#245)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
Signatureh4QEgBwnjwrISLNm1xQNCSo536UQbvkgSDQSeuvSMsDhyh8Sgc5mppzWu4X4bq0mkGIFpbQxj5kpUPo+K5+1/edpV10ptXtf24WY90tC38nwCddgn97ZvmjRRjOOKzBAbDcIFdOoze93GnptwhHXiTm+JmgocA383KgpPx5ZoM72DhSQN9A5Xw4pngEKxf8awyXTpZcy+k8V6V13nnqWQ+aovTP99pUEbhpZMrH1RJcATKc/1cuZhVKDuue96EU5retjehFMn/J7naHJF60VyzlACyvokFVtsk4F2oGANz8WEXFcgXKPDi4q5bjoFNl3c9BFQPbAsA6Hl456JeT8ng==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.2.0
Release Details
UpdatedJuly 6, 2026, 3:29 a.m.
Changelog

Added

  • „Gekündigt zum" wird beim Eintragen von „Gekündigt am" automatisch mit dem Enddatum des Vertrags vorbelegt und bleibt änderbar – das Datum muss nicht doppelt eingegeben werden (#213)

Fixed

  • Sortierung nach „Kündigen bis" berücksichtigt jetzt auch befristete Verträge: sie landeten zuvor am Listenende, obwohl die Spalte ihr Enddatum anzeigte (#217)
  • Monatliche Kosten: Verträge mit automatischer Verlängerung, die mit ihrem ursprünglichen (abgelaufenen) Enddatum eingetragen sind, werden wieder eingerechnet (#215)

Changed

  • Status „Kündigung fällig" heißt jetzt einheitlich „Kündigungsfrist endet", passend zum gleichnamigen Filter (#216)
  • Die Kennzahl „Monatliche Kosten" ist als grobe Orientierung gekennzeichnet („ca.", Untertitel „Grobe Orientierung"), da sie Netto/Brutto und unterjährige Effekte nur näherungsweise abbilden kann (#215)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturegO8R8vrZxxOWSUMcKrDzzbo6rM4SRlZIFy7wDcI49HuPgzYAM5DMgAc69AWSYHrh+aa0Js5fLXLwSSRW8klKp2W9JnxNe2v4ZQbX/+j20CNQxRpFh7HS6/q3E4ePC50ikMqO8RNuojOMk8+rzmxl9Xk9E6Ogj5ovPULRESq7visZtWAGUFeWivzMEJNbgAxbe621qd8rv11788/6C/qiT1hdN8PowWJrnompSx/4L6SXPyhpYNUrE+TQOsdCkv4Fj/XUP4PguuV2EJUOv1zJB1+SIyoYOZ1iv5Ke1YBENcngClIKCJW2WdVdAwXX99sT7woecxvJoF0kl0ug0KzZxg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.1.0
Release Details
UpdatedJune 19, 2026, 10:27 a.m.
Changelog

Added

  • Übersichts-Kennzahlen über der Vertragsliste: Anzahl aktiver Verträge, monatliche Gesamtkosten und anstehende Kündigungen auf einen Blick. Die Kennzahlen beziehen sich auf die aktuell gewählte Ansicht und passen sich Kategorie-Auswahl, Filtern und Suche an. Monatliche Kosten werden je Zahlweise auf den Monat umgerechnet; bei Fremdwährungen und gemischten Netto/Brutto-Beträgen wird das transparent ausgewiesen (#112, #170)

Changed

  • Überarbeitetes Oberflächen-Design: Vertragsliste als übersichtliche Tabelle, Vertrags-Dialog mit einheitlichen Eingabefeldern und der Detail-Übersicht oben, Einstellungen mit klarer zweispaltiger Navigation (#170, #198)
  • Erinnerungs-Einstellungen im Vertrag verständlicher: ein globaler Schalter (gilt für alle Berechtigten) und ein persönlicher „nicht erinnern"-Schalter, jeweils mit kurzer Erklärung; die persönliche Vorlaufzeit zeigt den geltenden Standardwert (#198)
  • Benutzer-Auswahlfelder (Zuständig, Verträge übertragen) zeigen Vorschläge bereits beim Öffnen, ohne dass man erst tippen muss (#205)

Fixed

  • Genauere Erkennung der Server-Adresse für Erinnerungs-Links (Normalisierung), dadurch weniger falsche Hinweise zu overwrite.cli.url; zusätzlich robustere Berechnung des Kündigungsdatums (#201)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureGDxPEkr7p8dPUnH4mUI/aoAWFY/7P6ADxjnQVhJ26HZSRzMGV9QCLw680opPQt6ofv666gMLU69ZIXhyv8hjim2iM7qoxSXJkEDgLXIAIaGXCzfIL18eonvLOohfAwv+nsPyiI8dcAlfCxRXoFWM1XgRL7bfAcNMEqwDEylA0ndCU6dH2/Ys8a/9naB4L/q3OR1ml0Acgn4w2P0iOq8lG69gjpDumVKl0zynGqhedq1pUVkfzzJPAzoJN4JuMpwTGnYURIw05tEvZTYHPkNMXdMtT1P0wI2msLDGmBGTpzh1NicGE9urXKD0Nu26D7sIWgtCWVauphAmdBbp+jwuCw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.0.4
Release Details
UpdatedJune 17, 2026, 10:13 a.m.
Changelog

Added

  • Neues Feld „Kündigen zum" pro Vertrag (bei automatischer Verlängerung): „Tagesgenau" (wie bisher) oder „Zum Monatsende" – das Kündigungsdatum landet dann auf dem letzten Tag des Monats statt auf dem rückgerechneten Tag. Hilft bei Verträgen, die nur zum Monatsende kündbar sind (#159)
  • Hinweis in den Administrator-Einstellungen, wenn die für Erinnerungs-Links genutzte Server-Adresse (overwrite.cli.url) fehlt oder vom tatsächlichen Zugriff abweicht – andernfalls führen Links in Erinnerungs-E-Mails zur falschen Adresse (#194)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureLlBZDq0gQgSPjmcxCceYToQRjn26k7R8vUOvgyGlnLbHs6YBQwbKVK6GkCm45U+KcqeKy/HxqK3CwgTX6/8NiLXEEsgSssXYmupsOd3FHHeUdnsPDT0o6d/lqawprqA8/XhY3nrbdfYTH1cidhXwMkKAi2Q3x/O6GH0rD2KcCGoIUukKZV8VhSHIdGkrQlIc6jq/2e/35unyn4WFYe9fuPKzf56LqRz6v1mshh3crRZFo1HvL0oXMR1WNPpp+BqBqQCNWc4bS5ZEpwZjFqgCeFU8cBPbwim+/JxCubU2tVYZ7bhRL6xWmQufjH1Twdfr4p7Wn7QORIdhZsbUes1ioA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.0.3
Release Details
UpdatedJune 15, 2026, noon
Changelog

Added

  • Zuständigkeit pro Vertrag: neues Feld „Zuständig" – der effektive Eigentümer für Sichtbarkeit und „nur meine"-Erinnerungen ist die zuständige Person, der Ersteller bleibt als Nachweis erhalten (#173)
  • Administratoren können Verträge von einem Nutzer auf einen anderen übertragen (mit Vorschau-Zähler); „Zuständig" steht zudem in Liste, Filter und Suche zur Verfügung (#174)

Fixed

  • Der Button in der Erinnerungs-Mail führt jetzt zuverlässig in die App und direkt zum betroffenen Vertrag – zuvor landete man auf der Startseite/dem Dashboard, weil der Link im Hintergrund-Versand nicht korrekt aufgebaut wurde (#187)
  • Die Lese-Ansicht eines Vertrags war kaum lesbar (sehr blasse Felder); die Werte werden jetzt mit vollem Kontrast dargestellt (#187)

Changed

  • Aus der Erinnerungs-Mail öffnet sich der Vertrag direkt: bei Bearbeitungsrecht im Bearbeiten-Formular, sonst in der Lese-Ansicht (#187)
  • Mail-Texte und der Nextcloud-Talk-Absender heißen jetzt „Verträge" statt „ContractManager" (#187)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureOtdk401zx1hU/k+ngoLo3QGjiyzkS/ouAwab5vnaeSAke/zcG0EddS+QsCnXEcYLDnGYdAhPYHqJ0+uN7uQ/LUVuBnU7h+BqvsJR3SuVeAzlK/EIsZygU4kBU7S2kfrToRov9JJTFt3JPQbir+5DfOjUP+ZBv3/mZaYpQ0fTeCEs/AW0N9osIFUC8/aoIU8Yp3w+Y5EkTCUItZ/6rLsMhQTE56DSwm1ZEqrbIDtk5r39fnpRkOcQN2BS+y9+krAG88tY43888I2ygram01eOzTg6mBXk1GZmK8pIgh+GH9IBsdGZu70eRHBpPOjbHeSGnHyVu7PSfhloOY9H9c/pcg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.0.2
Release Details
UpdatedJune 14, 2026, 7:54 p.m.
Changelog

Fixed

  • Erinnerungen lassen sich pro Vertrag wieder dauerhaft deaktivieren; der Schalter „Erinnerung aktivieren" bleibt nach dem Speichern auch beim erneuten Öffnen aus (#180)
  • Regulär ausgelaufene befristete Verträge werden jetzt automatisch ins Archiv verschoben, wie es bei gekündigten Verträgen bereits geschah (#176)

Changed

  • Das Listen-Badge „Kündigung naht" heißt jetzt „Kündigungsfrist endet" – treffender, da ohne aktive Kündigung nichts passiert (#179)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureBaWNhZ5idX+9k7LIFE5FD9iiVDIdE2PCOTzhaunJoYkmG6h7ReXG+HNydxYGK5AddxEpBR8DwfxyD9GH8Ai0pEThLCMBE+b2k2yFvJH5lt3rKl1jhWa4h+jiX5pydCc/ZGuRc/aSlfNOVJK0JuZ436a4HEpX3FV+04vYGz5xO1pu66fLnBZC886V5hp3apEFoGVXtM0ur/250q2rcOZRQl/erKqvXBw36u6X0dfwxV7OBn/V62KUJBRje8A2272THv8QyVY5XLlrFrG+Rt0YUoHfyv/fGxzxu+ZassLmR5sQfJjnM+/FWbCPsRFzZ+OUpi4SFslAUwmLCn2e3vhB+Q==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.0.1
Release Details
UpdatedJune 14, 2026, 8:44 a.m.
Changelog

Added

  • Persönliches Erinnerungs-Modell: Jeder Nutzer legt in den Einstellungen selbst fest, für welche Verträge er Erinnerungen erhält – alle sichtbaren, nur eigene oder keine (#157)
  • Eigene Vorlaufzeit pro Nutzer; der vom Administrator eingestellte Wert dient nur noch als Standard für alle, die nichts Eigenes hinterlegen (#172)
  • Erinnerungen wahlweise zusätzlich über einen persönlichen Nextcloud-Talk-Chat (pro Nutzer konfigurierbar)
  • Opt-out pro Vertrag: einzelne Verträge gezielt von den eigenen Erinnerungen ausnehmen

Changed

  • Erinnerungen gehen nicht mehr nur an den Ersteller eines Vertrags, sondern an alle berechtigten Empfänger gemäß ihrem persönlichen Modus
  • Nextcloud-Talk-Benachrichtigungen sind jetzt pro Nutzer statt admin-global; private Verträge erscheinen dadurch nicht mehr in einem geteilten Chat

Fixed

  • Jahresbasierte Kündigungsfristen über den 29. Februar werden korrekt berechnet (z. B. 29.02. minus 1 Jahr → 28.02.)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureV7tWZo89ABWlAIeAHK/UHdfkLFEPitosAf1vlY/s6JCobWiLXxdPkKVu4+bIIrBvtFuxMUC8n7LHCwmaGMCiJz1iYMuN7Z8yzjafh65BlAMh9oO8YoLVftrAIUSI1mPyulWPyvln8dCyTyvIEbYilsd4nB5c/Vlnvxt8XTFZYN2g5/Nkva4tByFv04sFGYVALo68YNfKhPkcQImvs/AEl5Av8M/kxSLc84xs45ARywxrbh7FCajDKDWdI59lrY2cMTR+OQ4sX+oHapSXqm4KpafKBhANI1iRyoB//hrXNB7d90FIEfccS0JxnBG5jjo+dzxdhskJlzxIsHQCguxAxw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 1.0.0
Release Details
UpdatedMay 27, 2026, 5:42 p.m.
Changelog

Changed

  • Frontend komplett auf den aktuellen Nextcloud-Stack migriert: Vue 2 → Vue 3, webpack → Vite, Vuex → Pinia, @nextcloud/vue 8 → 9, Stores in TypeScript. Keine funktionalen Änderungen für Nutzer; die App ist damit technologisch auf aktuellem Stand und das Vue-2-EOL-Risiko entfällt (#150)

Fixed

  • Benutzer-/Gruppen-Suche in den Berechtigungs-Einstellungen lädt die Auswahl wieder (an @nextcloud/vue 9 angepasst)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignaturepPd5X5RTT7Fe1VJtaOrn1QmFW8ATb5cJ6VOwB2N9mWsKMf5Pj7sJaaMJ8hHq82DjHl3vnCyiqZBdTr6EcZFKgjuodpApVOpz9jrmqAmkhGa9T1/aXrtKd7S9HuoFOo3r7ASoSeE2T+4dc9L/gs3X6C5tiwG1C0pfs8yIt2bheoOIBlYgzFNcQVldWQRvNGKj5TrsSMkir2g46ydUhNLjCXGlkGjXnK80u8GU7vdNTXNVzE6SjDrwpEwFFR5TzD5rdVmkl/yMLnvHueuZOWKj8GaroinBBxkA5zJa742/1Ff+r9xaFvew/gq4TpyN8be4MVGc9ESSyL3+j4u/3w8vpw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.5.4
Release Details
UpdatedMay 26, 2026, 6 p.m.
Changelog

Fixed

  • Gekündigte Verträge mit automatischer Verlängerung wurden in der Liste falsch einsortiert und mit einem in die Zukunft gerollten Enddatum angezeigt. Gekündigte Verträge verlängern sich nicht mehr; ihr effektives Ende ist das „Gekündigt zum"- bzw. reguläre Enddatum (#145)
  • Die beiden Kündigungs-Datumsfelder „Gekündigt am" und „Gekündigt zum" werden jetzt gleich breit dargestellt (#144)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureabIE//S5nrfdLkvMqDK5jexsCh2o0zIOA+CN9wZ4KeyYU3yKbJPrbdLU38JBbFUmg2y2ysi/mBL3AGYYKnm7kOKqt3qchtiF34YAo1lDxvtlBuFb0KzA7ZfXjacFeZ+2ssmxJxKVPp77jzgzHDi8JfcCD6ikwAzRgmIXJo3QAjwPrmtr82pXhcMsOSIFYboFwG4sjgLPvuaVgb/cHxtWDLix/XTmL7cbohfQnZNiNoailHOCFyFgTc9pJifm8+5nEgOLqWRo9PEb7Z7+HUMQ5ZTiyxU1uTqOzJ4FpPMRfhzcUH7fV2vn/Ot+qaZWgZewYCcqfawAE/oNGjDbGlHU/Q==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.5.3
Release Details
UpdatedMay 21, 2026, 8:36 p.m.
Changelog

Added

  • Datumsfelder (Start, Ende) nutzen jetzt einen Kalender-Datepicker statt manueller TT.MM.JJJJ-Eingabe — einheitlich mit der Kontakte-App (#137)
  • Kündigungs-Automatik: Neue Felder „Gekündigt am" und „Gekündigt zum" (z. B. bei Sonderkündigung). Gekündigte Verträge werden am Laufzeitende bzw. zum „Gekündigt zum"-Datum automatisch beendet und archiviert (#136)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureKc/F73lI4B9xNoeBuc1BuEuqq7He1bCpN76n1QPN4j9BWx+DexEUo5jtcBW0eVw5EPkwUqiq9DoIoe6RMbu/MKy0046PTryjs36Lp6YoHaUvU4W5gmjxHX9xKW5juFs4C4XuxahiA0J3iaadc6nEnf/5AA/5p37mGDmxwXSnDsM3pFANcgeHZkDAA09VAp/zaTTdL+HADuJkRNxYSehB6W6huFFrdZnUF4bVcfpveKAkTWDl2wcbxiMfNST8MFlYGkjaJLSdL9JcQ51nTjrJb7YIZXOL1nrUPPbaQ7jtweV8Je3oCYWo0+aTl5JQFMCpTMRuYcWoKdg++cY3ChaC2g==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.5.2
Release Details
UpdatedMay 21, 2026, 1:41 p.m.
Changelog

Fixed

  • Vertragsdialog: Die Buttons „Abbrechen" und „Speichern" bleiben auf kleinen Fensterhöhen als fixierte Fußleiste sichtbar; der Dialog nutzt die verfügbare Höhe adaptiv statt eines festen Limits (#134)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureLgJztbw125YdscWFiR2zrsKhRubnejkpr/I79S1rLyXkao5ouB2JKdYVk8ACl9wU89ysdhIbERnoqmUXTedEvTR9Xwf38QitTuTFY+ouF6E04TowuQ3mYiYWQdGS3EHN9k8njHUqQ+rQoq9MAFiFcBG+5VT2baebfu8DVKUJHIN//E2B2+hy1jJKvl9Zll9tBLcek9pEN+P9IfsEisr1SSAbK8ipsdOzlny4Cp+xbEDpHNsJN8USkzjkyD6zdmeUxWo0O1Z7mLBbl/Y//guYcXyRlSb2do0UdlyKkV94G7J3E9mByOUtnzgLwMiQSWQ5xgJuFoxSXaC9A3j7nhqYZA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.5.1
Release Details
UpdatedMay 21, 2026, 10:27 a.m.
Changelog

Security

  • AI-API-URL wird beim Speichern gegen Schema und Host validiert: nur https oder http auf localhost/127.0.0.1/[::1]/.local/.localhost (#123)
  • Schutz gegen Prompt-Injection in der KI-Extraktion: PDF-Text wird in <document>-Tags gekapselt, eingebettete schliessende Tags werden neutralisiert (#124)
  • Weniger personenbezogene Daten in Logs: E-Mail-Adressen werden maskiert, Vertragsnamen aus Reminder-Logs entfernt, Erfolgs-Logs auf Debug-Level (#125)
  • API-Key-Maske als einheitliche Konstante (Single Source of Truth) statt hartkodierter Werte an mehreren Stellen (#126)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureJkCx2S+gI4dQ6jiCwsYWqRNkaM7GGnjgcPEf43+xXHVDf5iwdm3i0w7K9naqDkABFNkFBTTVbau/++zkabkSNr0yt7sdipDe9N4i4trEpjpwogrr9/A3lE61zNFT2/t9eXkCoGO3UMDdFABbO5VMqABfpwk4vi3jns7RRrGry99YQBf5H7ieJfwZGU2wLxABs/hDkQPzP/NUFiIumSzGKHPRXjPa6RpSKfAjGCy32mwgM/eiJLkB9BGYgPSz1lyxUsXYNoWvqQn61X8H2//LTuap8Cxwl2+9kkpJ7jjRAObeExYgYOl4Iu9VJIz0IzJZHk3yjzWy52Kd/V6/NOon6w==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.5.0
Release Details
UpdatedMay 19, 2026, 3:23 p.m.
Changelog

Added

  • Vertragspartner-Feld jetzt als Autocomplete mit Vorschlaegen aus bestehenden Vertraegen (#107)
  • URLs in Notizen werden in der Leseansicht als anklickbare Hyperlinks gerendert (#108)

Fixed

  • Doppelte Erinnerungs-Mails: wenn beide Reminder-Fenster gleichzeitig aktiv sind, wird nur noch die finale Erinnerung verschickt (#111)
  • Per-Vertrag reminderDays-Override wirkt jetzt korrekt auf die finale Erinnerung — kein verfruehter "letzter Hinweis" mehr wenn ein eigener Wert gesetzt ist (#116)

Changed

  • Screenshots im App Store aktualisiert (saubere Demo-Daten, Autocomplete sichtbar)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureNb7Dwx1o9fbkIrkRWWpmxB4+npA3YrlIjy8b9l1PE9jRCnXzC0iDqTZSB2MYID6R5PJ5TNjb+160yy2/TKk677+h0L5PWdVJiJG0QrwlgvXHQakC1p2ojrfNVKey+jD5BKWFZCvH/M6wtiqjaK+LYj80vTBFkOlWIqwPc5UIoQu3dhTcg79tc5rSPAw4vsFwqxGYsbhvZmX3MAl2dnTa/80TJVLzlNYUZWUrO21AKTZlY0rF087EbNOAptue105x8cksaKyhVNIUyY7uZ+evx0V9y0irJKrR8RDvrX8AlJYl17XMmNlVZy63DB+HkRAueCgVlPatJRIzIWPO1v+tkA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.4.4
Release Details
UpdatedApril 29, 2026, 9:34 a.m.
Changelog

Added

  • Aktive Sortierung wird im Sort-Button angezeigt (Feldname + Richtungspfeil), nach Nextcloud Tasks Pattern (#82)

Fixed

  • Kuendigungsdatum bei auto_renewal-Vertraegen springt jetzt automatisch zur naechsten Periode, wenn die Frist bereits abgelaufen ist (#80)
  • Vertraege ohne Kuendigungsfrist (z.B. befristete Vertraege) werden bei Sortierung "Kuendigen bis" ans Ende sortiert statt an den Anfang (#93)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureNogaqjh7Wgym0VWtGsKfYk+cWpEd5B30T3k3VZSRMZuTnFbNhbj9sfFsIjhNppDdfAoGxUa/Ufijn2sSrW7yYR3oICOMl0SpsWZjg75j4LWi2hjZnJjNS53FqGy1NpbPDp+WPx6O2VFDbY2s2aLUdBA6M3+hmIj8Vq9Nt92NkxqmSnSSAbKLIpbLHaVabsDROCxE6chGmsNCn+JgePR3QmjeVQfC1qLlJ4nfb5+3rHVmaIiuc8DjVssRGY9I8hiedcT/11D1RTbhuw99SlqlWM01MEESBC8H1jOv3TDt4hkRL6FatCVJSW4ZY4yWGwxVcUiWUSRvJI510yUnAJbIOg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.4.3
Release Details
UpdatedApril 14, 2026, 12:18 p.m.
Changelog

Fixed

  • KRITISCH (#86): App-Update und occ app:enable crashten auf Nextcloud 33, weil der Repair-Step die seit NC 11 deprecated und in NC 33 entfernte OC_App::getAppPath() nutzte. Betroffene User mussten die App disablen und auf v0.4.0 ausweichen. Fix nutzt jetzt die OCP-API IAppManager::getAppPath().
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureiEPxRKZ/36V/MAFhrVNIQy+gjHVeg2HpNs4V5cPvJuTHogZmr6Q3YTnWVG+RSV1A6HPNDo3xYakD/60ZlulWxcPVsa/jOPnT4J0Pm9AGrqIWkwS1FlCnXHmcWrzs16qIte3xrZMeB7Gl80f5SaoliEq3+OWst6f82kbs5VNqdB7x5UMYLYspJqvotyo+DJK9IpGb9ZUSXHEyGFBqPzpLPD6J8grG6FiLgIPD/OPHjd5ouQ9HGkIRT54AfWqZO7BiRYs6lr+6lG0jy5r6fzyLkXsZFmEm1bP2919KHoCCy8WvZENpb8EUcRaWli0GBiXGt+U0aBa2zq9EPCKYQfKYbg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.4.2
Release Details
UpdatedApril 11, 2026, 10:02 p.m.
Changelog

Fixed

  • Automatische Bereinigung von Extra-Dateien aus frueheren Releases via RepairStep
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureNixveg25w9r9rK41NCf2CvJS4nMr2SFvihlE2xfzEOiqUuJOZzaw7z8ZUqxB+EyYOwrHF767bUF8r5HPpCCwaVRg9d9lKG9l/yUAR204X2KnDDWEgE1lyLLgtzgClAnANxXB6OpBSCwNEIRmKjvo8wX3tSpP3ZGkVvZwjGSySIMqQt0PfewdnF4CCKMdA6tat7hq3nLmKM/wzvzfvkSORwohEh0+eqdCpWRkmGz+NUsVNpXb8j2FmPuBpPe8eI2YW9psoDyjP7YKLSUw2SAa48kIM8aBHHR5A7t4plo/eHbvVuwEGXeX+YvXgfyqlUdEz6TpCNUvAt+33cpUm7dHYA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.4.1
Release Details
UpdatedApril 11, 2026, 9:03 p.m.
Changelog

Fixed

  • Integritaetspruefung: test-results/ aus Tarball entfernt
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureEfqS20ZDolIXGiGCLx2Aw/3O2DNYsWMTVOfYKYH3kvd/HxoJn6lPXSDNi+VZZy6avl7WWA894kWJAc71GRful8rOIRVFlZI/w9+AbH/uZ2Iw1tjUWh+XNBWEhYFEsWT06CY/NH5l1sVymL61a8vbP2fMNaz1cho7DgMrbb1kubhGh9FYDmwUhrgB4g/P0CB2KMZA/bMdfhIn06KzmpyyBJ+avCOqgXFhbmj9GLiXWhr6S48mdlcN52AaCYLAACRKixZqs0jbeQAcNEsD9gJafUudfk5MseT6EX5dqSO2LdBRIhGX2nGrJGl+wJTC35c7/7DOG3VxBO+gMf31WYMnFQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.4.0
Release Details
UpdatedApril 8, 2026, 7:59 p.m.
Changelog

Added

  • Suchfeld in der Sidebar: Client-seitige Volltextsuche ueber Name, Vertragspartner, Notizen und Zusatzfelder (#60)
  • Globale Nextcloud-Suche: Vertraege erscheinen in der einheitlichen NC-Suche (#60)
  • Vertragstyp "Unbefristet": Enddatum ist kein Pflichtfeld mehr (#49, #67)
  • Filter "Ohne Kategorie" in der Sidebar mit Counter (#71)
  • Sortieroption "Kuendigen bis" in der Vertragsliste (#70)
  • Archiv-Counter in der Sidebar
  • Editoren koennen Vertraege in den Papierkorb verschieben (Soft-Delete)

Fixed

  • Kuendigungsdatum-Berechnung bei Monatsende korrigiert (z.B. 31.03 minus 1 Monat = 28.02 statt 03.03) (#72)
  • Browser-Confirm-Dialoge durch Nextcloud NcDialog ersetzt (Archivieren, Wiederherstellen, Kategorie loeschen)
  • NcDialog-Buttons nutzen buttons-Prop statt actions-Slot (verhindert Re-Trigger beim Schliessen)
  • Papierkorb nutzt ContractListItem (konsistentes Layout mit Vertragsliste und Archiv)
  • Erinnerung wird automatisch deaktiviert wenn Enddatum entfernt wird
  • Datumsvalidierung: Ungueltige Eingaben werden geleert mit Fehlermeldung

Changed

  • Loeschen-Dialog zeigt Hinweis auf 30-Tage Auto-Cleanup
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureSieDpGuTZ56Y5UGTUJ9Svk2ihCo3g8UJ59F4unOb/KPBG1movGAamOxrugqvTK1LD/azfUJ2TTpQvMXU5QBFD2aOkPSqxmcIlQpVuljKV2p+jvWlzpYMjZsQLNm+iw/SXA/MH0EK50ONVkiNOtqbhdbBxB+tOEdTMRcZVzBAHtwANWmJ/Rd+ukqXTZfvNJyIZzJBFLE5UggFs+UTXhhYyU3RMMVFC6j1QjSv/wvTYYBrAxBnqRxgvaZxbM40eMAm/tsVHtNblyKQnT3VpVEqoYHK3w/hxCv/NgDGCGo6leTSTO0AaXq7DlkMKxJUq2OJ3g7n5HzKyNXcTuVUdxFIJw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.3.0
Release Details
UpdatedMarch 30, 2026, 2:05 p.m.
Changelog

Added

  • Benutzerdefinierte Zusatzfelder: Bis zu 3 admin-konfigurierbare Felder pro Vertrag (#58)
  • Zahlweise (Zahlungsintervall): Monatlich, Quartalsweise, Halbjaehrlich, Jaehrlich, Einmalig (#59)
  • Externer Link Button: Externe URLs als Vertragsdokument hinterlegen

Changed

  • Formular-Redesign: Zusatzfelder in Grunddaten integriert, Kuendigen-bis in Laufzeit-Zeile, Kosten/Dokumente/Erinnerung als 3-Spalten-Layout
  • Vertragsdokument oeffnet im Nextcloud Viewer Overlay statt in neuem Tab
  • File Picker statt Smart Picker fuer Dokumentauswahl (weniger irrelevante Optionen)

Fixed

  • Vertragsordner "Oeffnen" Button funktioniert wieder (fehlende Methode)
  • Rote Pflichtfeld-Markierung bei leerem Formular entfernt (HTML5 required Bug)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureXWu692AGYav7p6GKcaNR1ft6lcej/OKXlfZGlfzYddiNHtKbifsGjAeMlSdu1hH8pwjPu0a+cmXMCL4QoWkntJOSRXDweVgKE1nqbQUfvhADCxHM9DgQOWwmq1hYZIa+Aeyr7ip4Q9OJJR55phPjMJQzjPslVNu/gT6TW2+pWQlNz4i0So17bWMOUCoHtJIYuLjhs1gl1yAKysR2AOqXYmHUt0WyclOi8MHRnAENlEJPq9/BeuHsZH3X8etDHxnOkV3kWpxeNJSzJPBtFrZSS6Rm/Y1ezLWM3ByC/Paoas5m/kuAosWBNC1z4mMj7lbin2ch9XlXV6EOCYNWfhteCA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.6
Release Details
UpdatedMarch 25, 2026, 1:47 p.m.
Changelog

Added

  • Smart Picker fuer Vertragsdokument: Unterstuetzt jetzt externe URLs zusaetzlich zu Nextcloud-Dateien (#48)
  • Automatische Statusaenderung: Abgelaufene befristete Vertraege werden taeglich auf "Beendet" gesetzt (#53)

Fixed

  • Falsche Datumsberechnung bei monatlichen Vertraegen aelter als ~8 Jahre durch Iterations-Limit (#51)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureXBnMgjIAfGw91tRrbID795GM7wJT0TVgGO/GR/OP3cpjrTSWl7nd7Af1i+aJALmk0Xj8XJ98hCW2jX5MZbnSMeaW6DvrqWWjRucwAL1zskc5KlmWkaewTrvYwFvPqbg7RbhUJpEwluw98r2etZ7WT4bO+aaPDHYyCRtn9vV+WEDguj0px2fUC7SB7mt7eOjkdZdR3aXtYWw4aKydOy8e2B2q3ousMrRS0Z8/+XyZ1fHyDJ1KmujM1Yw8FdAxKK/KsH1CAHYRLgGl9ue1c8LnbgkYGn7/SV9ZvBCv9/WodGosndAjJv+Pc00UpCjaFRWagcWpxDdHf7zn5RhbWrD0CQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.5
Release Details
UpdatedMarch 16, 2026, 9:03 p.m.
Changelog

Fixed

  • Vertragsdokument öffnet jetzt im Nextcloud Viewer als Overlay statt nur den Ordner anzuzeigen (#43)
  • Fallback bei fehlendem Viewer nutzt File-ID (/f/{id}) statt Parent-Ordner
  • "In Nextcloud öffnen" im Formular nutzt ebenfalls File-ID für zuverlässiges Öffnen
  • AI-Extraktionshinweise werden jetzt auf Deutsch angezeigt statt Englisch
  • Validierungsfehler (Enddatum) nutzt NcNoteCard statt schwer lesbarem eigenen Styling

Changed

  • Nextcloud Viewer wird auf der Verträge-Seite geladen (LoadViewer Event)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureC7DaszHix+eyQDohShhjWWGVKdBpHwbC65fX7/ISICwUvH8gPNQM3fJCLeAFJLyVljqHVu810b8OiDJI9UJe9+z11qKU7fJfWd51nf1cspgqMUUpYgzau2XVHHQnafwoi2jnTmj2ZwSmxlVLjexlHIeeWrJL4hbbuJVmP4LkSW0TVjBY+fyrnKA4md1v0Q0ganfxYanuJw+/KD/xzCk1KSeWsEJp3HfWzU1oFNLoPul64fAezCwLpEOEF5M6z5fqt9Afv6OITMVubdl8zugT/1FJTkAf8q30KyUhk0fSBIKMEK8ZsNq4D26emXNof0mS78Rg+/ceWbSoWEfKpLP1rg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.4
Release Details
UpdatedMarch 12, 2026, 10:35 p.m.
Changelog

Fixed

  • Fix "Extracted app has more than 1 folder" installation error caused by macOS metadata in tarball (#41, #38)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureQu6/CWJCFqj+gSaRsmLWn8Ysyw5hCQiGJLURRPyfU+xrDiSeyaMOeWzLxasI3GUDbNYeTN+AWlsqTguLN0FS+kJRH7TbkSbiBR0Hmc9aLy/fN3M7JBp3mRUs1LKAtaRTZoteBFg7LjqJFMlYWpJ03nkYQeGSZ5Scm0064AG4cNf59TOvwRs8I1/U4D3AyMsGpMIVn8XRB7ytVRxMKUCC4znJnC82BhPGSIGRyjjeM/Xit4uKd+0zLY1Vz+dRwm5qsKLfMzFCzB1iCQC15zesdh3IM8lbCHesW66SwcSIKeMYkfmcFV46BxuJbm+2Jq5GZWWnqnCTJtAIvRtZspoYAw==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.3
Release Details
UpdatedMarch 8, 2026, 10:31 a.m.
Changelog

Fixed

  • Fix app update error by repackaging with correct code signature (#38)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureRA2wGkJYFDex8dxBPX9Aa7dQqPeTZqVNzjkNqIxR3PLX/pgDolF0etmcJCwEfW2Z8pbB/4RpxljeQTBKFpTo282+CDW89sYvE5Ws2HNJNsghNlAwHFdM6YdpnlIq292ONatPWSqnl4BalxBWHGtlLnj6PafAobRlVgUFYnvT0t2WqK1CMpZw1SVazAUx0M+0Te/HRBXxWWkL7LdQwofQj9aSgwRY2TZXR6jbVC82em1DU2K3Engb/O2YQI7NQeImJfQNACXLXiT4+O9GFSyMA8/nweE5hG3elxvXz2JgTb81rUQQ4i+1+L9VaLc/+2tkiy6XhepO/t+qu8KOWfc+dQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.2
Release Details
UpdatedMarch 8, 2026, 9:57 a.m.
Changelog

Fixed

  • Repackaged release tarball to fix "Extracted app has more than 1 folder" update error (#38)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureO3O8BSYsBnU6UnfgULrtgWyKvN2Zua2hhUnKxy9OcPGoZIoKZFQHV3BeqKzui/o5RXgCvZ1G3HfCXum+6ntxknIjyM+MqErUezvf36asxav3M2dhF7P29DntLWHtt4uZJZO5ypfCxBKWcz1OLooPYkKrDSO4t7l2XDV/1ugibkEP45U66AWlhihCAWIU/7Up6rpXwk8baMXbLSlbpfq62UeMs3X3brvXLrl0bpH6BpzGRMP2x1US1qttjAgN7DmnILf0907h19UOrhwzn0cp5M6qHPwUtdFSSBQCQ1Zw8D7sYWELhLMQPYcqkf0/MenwTs5ARnR2oUR8un70rW3bUQ==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.1
Release Details
UpdatedMarch 6, 2026, 1:15 p.m.
Changelog

Added

  • Support for fixed-term contracts without cancellation period (#28)
  • Dynamic reminders: cancellation deadline for auto_renewal, expiry date for fixed contracts (#27)
  • Code review documentation (docs/20260303_code-review.md)

Changed

  • Settings link moved to navigation footer (#1)
  • Improved privacy toggle UX (#30)
  • Cancellation period field only shown for auto_renewal contracts
  • Email and Talk reminder messages now differentiate by contract type

Security

  • Added userId null-check in ContractController (H1)
  • Added try-catch for DateTime parsing in validation (H2)
  • Added noopener/noreferrer to all window.open() calls (M4)
  • Added htmlspecialchars for email URLs (N1)

Removed

  • Unused CSS class .form-row--thirds (N3)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureULNilsw2pCJqm9zCMtbzqe0aRKt5wEJkVQNQHuXKr18KLD3+LkhFdrLTSb2AsQnXzj2m2yUHnFXPmpJxIsNFLdJyO/480JqiGtb++48pQVvFXS7PYjSAifcFQclgyKfyI9vNz7F4+BekAJijiTbXQTaHNOMoUHKjpFB6iWkH1YuDlGttiAR57vOCZuVFHbPbdvGnRj6w+JuHwBsikY37FGGHZF8JUMKoH8im4Nku1ggy84qGeFSNb6SBELxMZLh6x5cQ2XqrWzEr9KoxcS8Medg969uzrooxYtFIySzIatNKDbZLUOy7ps/Js5b25ZG2A7TEBnRbK/5uk+DAP+FLwA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.2.0
Release Details
UpdatedFeb. 27, 2026, 1:44 p.m.
Changelog

Added

  • Filterable contract list with vendor, status, and contract type filters (#22)
  • Sortable contract list with persistent user preference (#21)
  • Duplicate contract action (#18)
  • Folder icon in contract list to open contract folder (#15)

Changed

  • Display name renamed to "Verträge" (#17)
  • Filter and sort preferences persist per user across page reloads
  • Updated screenshots for App Store listing

Fixed

  • Categories now sorted alphabetically (#8)
  • Invalid JSON in l10n translation files (#16)
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureKIBmvrqKEGy2kGUnXUthC95r6BKGgWd6ip2Sz7fLHuDP9+9DA7Bw8ZS6k57y7ve/EOCxRk0jCHrDjCg1z6cBMvathmrS8EYskirFmOThHB4R842XOFZJdniItJcJjEDpdxRQUQ7pN+6zUVNGqnMMJFS3iFjsHJ09xjnyYIfNV92uEM3wwLPHsUpLf/EmDwMHWxqeyQecy4LofKgzl5nzqCLox8b4sJwYMLJh4AKRdP3MeEJmZ1sOIjoHvMFlv+8FfJ+bYndB7X4/mByi8YGBFsu7oE3nSZYFiWBPJyrE8iXvpyFOjbF3LDO7l6K9tvoZ/oVfRAW8gcxXjIy/5cGeEg==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.1.5
Release Details
UpdatedFeb. 23, 2026, 8:26 p.m.
Changelog

Fixed

  • FilePicker not opening on certain hosting providers due to extremely long webpack chunk filenames
  • Selected folder/file name not visible after FilePicker selection (only in tooltip)

Changed

  • Nextcloud 33 compatibility added (max-version raised to 33)
  • Webpack chunk filenames shortened to hash-based naming
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureJv66e/NQUYBs/GKvoVA5n79dFyMMgRggxXCa4C0RU0Hq5W4pc7tVl9KOe8hPaLtcu9Yfi8FeTttKUEZdrSVZvsiRyADH+hd5XXFvV/IRKq0X3HltOTre597GzCyXUuLKK3W2ORbgQlydnxudQqC8rvsUGUkl4AqhZf8mfmIzYd07nrRsPGIE7WxRJ8aDE1nfJiq9fFrMXBCr3UpEwC9o9BYroyc3cbyGwpWzF0hFZIwJ76Wm388oOskC0bCCRJT2MyoGaQ++kXaxY09csHtWfr+d/V9HAYnyDBRdeGYxaKqgjE57AJNKNCZjRqiYVuajIt91CYN7c62OjtaDtuIhjA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0
VertragsWerk 0.1.4
Release Details
UpdatedFeb. 4, 2026, 11:42 a.m.
Changelog

Added

  • Permission system with Editor/Viewer roles
  • Trash functionality with 30-day auto-cleanup
  • Private contracts (only visible to creator)
  • Read-only contract view for users with Viewer permission
  • Nextcloud Initial State API for admin detection

Changed

  • Improved E-Mail reminder texts with personal greeting
  • Viewer users can now view contract details (read-only)
  • "New Contract" button hidden for Viewer users

Fixed

  • Mount point conflict between header height and admin detection
  • Permission dropdown now loads all users/groups on open
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD
VQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H
/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE
vDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32
ivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e
SAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs
qebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08
vS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU
N8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z
O1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm
FXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5
c6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi
dg1AcSTaDHL7vhQm19M=
-----END CERTIFICATE-----
SignatureoTMCOa/9PgznRcYsCQ82z7ctSPo44bwbadTSiQNMNhdeALLbd+Faskd3/plUTLa2qkcgUxiCrDTyEnLU4zski1LdSxhw/yFtcE5AaS1ZofLBy8Z1Dx01YMZqsQ0nt1XbPdeesmZZriIvo+fA2z4QLhyRYifPPGneNzx2M+8lt5y6LmUAZVhJtnXfHWVBLQ5I4dZDccvgzc/FZ3nbmOoMRtKrARLWG03tR6zjp853TZh+lGZVOS2sQ9JyKbgRzPem4kkDSvm1czfhWgwVlGOunY5z3e1jUkkWXsBePmHaY2FeEPCsjKV8pWjYeG6gVPuG/YyVVWg+8w6Fo0gerVQbNA==
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<33.0.0
Minimum Integer bits32
PHP>=8.2.0