DutyCheck - Releases

← App details

Nextcloud 33

DutyCheck 0.1.14
Release Details
UpdatedJune 3, 2026, 7:34 a.m.
Changelog

Fixed

  • Roster "Create assignment" form layout. On the tablet/desktop grid the start- and end-time fields were placed in columns 2–3, leaving a gap in the first column and pushing the break field out of alignment. Start now sits in column 1 and end in column 2, so the day/time row lines up cleanly with the rest of the form.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBDCCAuwCAhNHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTUxNTAxWhcNMzYwODI2MTUxNTAxWjAUMRIwEAYD
VQQDDAlkdXR5Y2hlY2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn
WEE+B5fAWUDUcINdliOsuP7J3vd/roctHn3e0TBND7r6yrwLjxSQKYgNoWRAYJmC
jhDrZxv6kFyf09XtdABaEvKo4EZAUS3trqIlfBCbz3PLtVHiTB9NbuNhk4XssBAf
I2S3FXLj3Ygx88F/8I1T2n2XJ63uQBeYFjCf1uwx8wbaIv+mbfk3+uhkurCNTiav
3IsT8RM5rSkMApiShhPQOlgaM43d+TzxJG1dXwMTf3e8gZz5XH80fiKyP6gNfPLy
jbiNpG9WBCL/DsBWXL0pn+jUYO4lnyRrOS977Mqk1luOJGsPFWXaLSVOSvrdJDHd
R968uUoXtr8TcD9PxNE6fNd3Mhu28sGcn1V1QFtGTWonkYp8wDgnZPqJHw37Need
r442wrKbwmJqN6t+MSFklBLB/h0ExD1QBFNvRtpV+BVNseoK4spNszWvlXtfLFxx
3DwFPeg7dRqcHuD1BGLgG/LwD8dynwamKdNndbtF343vVVHKIfzcWpsua39MYO3W
SxwQBRN0lmlDGWYbypdNJzp+aSZzUDG/SxpqJDH7ylpBTaWtRiVJEiXY7/bZ+AXX
2CqYUad//oK5rvqkfODiPNBRVX7pniRpRb8Y7Y3lAJgE/4wpGzeYsfDVQCAjY76y
L/rg+w17xKDurZNOgawDQSzrkBbCizdj9RgaS+lVCwIDAQABMA0GCSqGSIb3DQEB
CwUAA4IBAQB4mchRZJvbcmIifarIimDO4nY+KO2F3/fE0Z21O27ppHqvk3dH6j6X
Gdy57dcmDrGYMOuFHRI5j+1Vlbn419xXqx2aG+cs/tojxdvaPyaRSC/IS7hhqz7B
oRagvxhPj46QRWyHmBA10OO+G9AWtlVlwezR+LbFiZ27oazTqNZKUNdlBMgmA/K2
T6lEw6/Zk+f3ipa0o9KSVukNOWGkhGJa324EQcgytizCyzSQeF+blffSsVDDVvcB
3z8x88iJSys4bmNqetVdiOnqysrCCr7DFMlSS2T1Ck8I6t2QkcBovoyrj6r20GtU
FH87CRYAmFQSgkEOElRTaAnCn6/CeBOl
-----END CERTIFICATE-----
SignatureYeA5OgPzR8/D7JGtC54EhgrT0KX3UgH1bwepI+l1Er3X0d9vmuxOga0YVacp0LfHoi0iQu2lUSpwD3D3Bex5TMv+NJgs75IUD4QtnLiOlVxMPaMhjqa/E4pynp/Hez7td0ipFRlEx3jZK0wbpQCOc9PRT8jLy6v4UlDKtaLDTNpeUXlPS+sCLadlSxva1duZmpubYhK2lWRBMeu+D+jKKovjVlL9icw7IbyW9IAQvz0k1zooa44PNuLXXDf2J+YOMbdO69uLpX6I8kn753PIvwv0G35X8byig5ddC82KPDwRMpK4ioklZNV8DBj1tH9n/LqYMeCZaJd8ZQ2+jVupbDgVc2aAkVXuTKzw1rLDEJZPkHXQovr7Y4wTfRlmMkeMJ6k61RiSyB/17izd742jEpBwFCTESXC93yCrmQG8SV61jSjngmhrGaWuJ1z8U+KaKjHAjDydfQnm+BTRHm6k2Qq2DjeG89XZdcMVDSDKf2WhUcoX0bK5iYOT7N163PIU7p8F2tl9EmXu1YPtNKVHWq6KEuSXdJ6wiPL0Xqb259S3JnCuajnmeXJSzhsWY3SxVwE8HCyFP2hIqq5OK5j49c8PZ9STzBdCyj2/xmNbN4fpGkEry2t14VAc2S3tGUzbgO1Ofki1Nv82u+eahToMFMsNYPM5QZOKJJCUc3hioUg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0
DutyCheck 0.1.12
Release Details
UpdatedJune 1, 2026, 1:15 p.m.
Changelog

Changed

  • Mobile-first responsive layout. The stylesheet now builds up from a small-screen base (min-width: 480px / 768px breakpoints) instead of patching a desktop layout downward. Shell, cards, page header, filter and form grids reflow cleanly from phone to desktop, and overflow-x: clip prevents the stray horizontal scrollbar on narrow viewports.
  • Tables collapse to cards on small screens. Data tables render as stacked, labelled cards below the tablet breakpoint (row headers and data-cell labels) and switch back to a normal table on wider screens, keeping rosters and lists readable on phones (WCAG 2.1 AA reflow).
  • Tighter page header with a smaller icon and a dedicated actions area so primary actions stay reachable on mobile.

Security

  • Hardened CI workflow and refreshed the Composer lock file to pull in the patched Symfony release (CVE fix), keeping bundled dependencies current.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBDCCAuwCAhNHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTUxNTAxWhcNMzYwODI2MTUxNTAxWjAUMRIwEAYD
VQQDDAlkdXR5Y2hlY2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn
WEE+B5fAWUDUcINdliOsuP7J3vd/roctHn3e0TBND7r6yrwLjxSQKYgNoWRAYJmC
jhDrZxv6kFyf09XtdABaEvKo4EZAUS3trqIlfBCbz3PLtVHiTB9NbuNhk4XssBAf
I2S3FXLj3Ygx88F/8I1T2n2XJ63uQBeYFjCf1uwx8wbaIv+mbfk3+uhkurCNTiav
3IsT8RM5rSkMApiShhPQOlgaM43d+TzxJG1dXwMTf3e8gZz5XH80fiKyP6gNfPLy
jbiNpG9WBCL/DsBWXL0pn+jUYO4lnyRrOS977Mqk1luOJGsPFWXaLSVOSvrdJDHd
R968uUoXtr8TcD9PxNE6fNd3Mhu28sGcn1V1QFtGTWonkYp8wDgnZPqJHw37Need
r442wrKbwmJqN6t+MSFklBLB/h0ExD1QBFNvRtpV+BVNseoK4spNszWvlXtfLFxx
3DwFPeg7dRqcHuD1BGLgG/LwD8dynwamKdNndbtF343vVVHKIfzcWpsua39MYO3W
SxwQBRN0lmlDGWYbypdNJzp+aSZzUDG/SxpqJDH7ylpBTaWtRiVJEiXY7/bZ+AXX
2CqYUad//oK5rvqkfODiPNBRVX7pniRpRb8Y7Y3lAJgE/4wpGzeYsfDVQCAjY76y
L/rg+w17xKDurZNOgawDQSzrkBbCizdj9RgaS+lVCwIDAQABMA0GCSqGSIb3DQEB
CwUAA4IBAQB4mchRZJvbcmIifarIimDO4nY+KO2F3/fE0Z21O27ppHqvk3dH6j6X
Gdy57dcmDrGYMOuFHRI5j+1Vlbn419xXqx2aG+cs/tojxdvaPyaRSC/IS7hhqz7B
oRagvxhPj46QRWyHmBA10OO+G9AWtlVlwezR+LbFiZ27oazTqNZKUNdlBMgmA/K2
T6lEw6/Zk+f3ipa0o9KSVukNOWGkhGJa324EQcgytizCyzSQeF+blffSsVDDVvcB
3z8x88iJSys4bmNqetVdiOnqysrCCr7DFMlSS2T1Ck8I6t2QkcBovoyrj6r20GtU
FH87CRYAmFQSgkEOElRTaAnCn6/CeBOl
-----END CERTIFICATE-----
SignatureQ1wPRBYiz2D5QfEj5/DXGly92+wz5D9px20DL65AMfMTwZiLNLShMBvwwbFe3DPsCMR2sw2cquQhRc24kMhb9snVGE9Dn5liksrHK3p5N6TRk+O7tgFipSd7B/Wr58B1OjyTpGgRI6H7Ypb1SLfe7gNUz3ojIrBVMXGWJ4AGgHi7xeH4AqQQZPVBiAUhBVDAGm19s+tLwy4Xv8di3pkuBn3CuR0wZqBuLUlSmoSEWicS3tl8y5mEAaXvGPPu1VxQzCxz9aKt3VDqnq7LJecxPv78vmT5v9a0LNK8L3OaC9OEdtGN1K24DNgwEdUNo9bCRzb2hhM6Asxv58eIHtcVQ5ekqG3boSOwVN1/9yAvupZq3OXruMtvq66TqHUuFFMtqt6/Cq4f1ONOxlPIovjpty+mPhmytCCkLUsYYT4z/e39JE/3icDCwEQADfS23jB4NzVhl/5PtwZzBM3HJ+oeAjmtzV1sRi1hUI2HPE8jj8voivCfWJGnEDekvQaQCbW+l8USCt8ylgIZGt/mKaxM1VAJ42A9f2QhN+q1z0S3tFYNp5qb4/EZAS9ffxuoKL/wZ8a6cXKTs/C/VvOQWzCpZFHnGymcj9lSuYipUuq24X/m3Sx9xcNErYmeQ7iiauzQ++hcJKlv2N8JOTt3OOINrh6QBaJ7arqGkmOE6a4lVPM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0
DutyCheck 0.1.9
Release Details
UpdatedMay 29, 2026, 7:44 a.m.
Changelog

Fixed

  • Mutations no longer fail with an opaque REQUEST_FAILED after the CSRF token rotates. The shared API client (js/common/api.js) now transparently refreshes the request token from /csrftoken and retries a write once on 412 — the same recovery @nextcloud/axios performs for the rest of the Nextcloud frontend. This fixes "Add employee" (and every other create/update) failing on long-lived or multi-tab sessions, where the failure left no entry in nextcloud.log (CSRF rejections are handled in middleware and are never logged). Retrying is safe because a 412 is rejected before any database write occurs.
  • Clear, localized error messages (js/common/messaging.js): expired tokens/sessions now tell the user to reload, and internal codes (REQUEST_FAILED, INTERNAL_ERROR, …) are never shown raw. German translations added.
  • Editing or deactivating an employee whose linked Nextcloud account was deleted no longer fails. RosterService::updateEmployee only re-validates the linked account when it actually changes; an unchanged, now-missing link stays manageable so the record is never frozen. A new (or changed) link to a missing account is still rejected.

Changed

  • App Store listing copy refreshed for broader appeal (appinfo/info.xml: summary + long description, EN + DE).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBDCCAuwCAhNHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTUxNTAxWhcNMzYwODI2MTUxNTAxWjAUMRIwEAYD
VQQDDAlkdXR5Y2hlY2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn
WEE+B5fAWUDUcINdliOsuP7J3vd/roctHn3e0TBND7r6yrwLjxSQKYgNoWRAYJmC
jhDrZxv6kFyf09XtdABaEvKo4EZAUS3trqIlfBCbz3PLtVHiTB9NbuNhk4XssBAf
I2S3FXLj3Ygx88F/8I1T2n2XJ63uQBeYFjCf1uwx8wbaIv+mbfk3+uhkurCNTiav
3IsT8RM5rSkMApiShhPQOlgaM43d+TzxJG1dXwMTf3e8gZz5XH80fiKyP6gNfPLy
jbiNpG9WBCL/DsBWXL0pn+jUYO4lnyRrOS977Mqk1luOJGsPFWXaLSVOSvrdJDHd
R968uUoXtr8TcD9PxNE6fNd3Mhu28sGcn1V1QFtGTWonkYp8wDgnZPqJHw37Need
r442wrKbwmJqN6t+MSFklBLB/h0ExD1QBFNvRtpV+BVNseoK4spNszWvlXtfLFxx
3DwFPeg7dRqcHuD1BGLgG/LwD8dynwamKdNndbtF343vVVHKIfzcWpsua39MYO3W
SxwQBRN0lmlDGWYbypdNJzp+aSZzUDG/SxpqJDH7ylpBTaWtRiVJEiXY7/bZ+AXX
2CqYUad//oK5rvqkfODiPNBRVX7pniRpRb8Y7Y3lAJgE/4wpGzeYsfDVQCAjY76y
L/rg+w17xKDurZNOgawDQSzrkBbCizdj9RgaS+lVCwIDAQABMA0GCSqGSIb3DQEB
CwUAA4IBAQB4mchRZJvbcmIifarIimDO4nY+KO2F3/fE0Z21O27ppHqvk3dH6j6X
Gdy57dcmDrGYMOuFHRI5j+1Vlbn419xXqx2aG+cs/tojxdvaPyaRSC/IS7hhqz7B
oRagvxhPj46QRWyHmBA10OO+G9AWtlVlwezR+LbFiZ27oazTqNZKUNdlBMgmA/K2
T6lEw6/Zk+f3ipa0o9KSVukNOWGkhGJa324EQcgytizCyzSQeF+blffSsVDDVvcB
3z8x88iJSys4bmNqetVdiOnqysrCCr7DFMlSS2T1Ck8I6t2QkcBovoyrj6r20GtU
FH87CRYAmFQSgkEOElRTaAnCn6/CeBOl
-----END CERTIFICATE-----
SignatureOd6OfM2NKgnHuG3faFhhFiGXlAJpJZy1hCJUWl1rriIUlcpQDgZV4heD1U2APILsDX2QjkOspiJdZdqdZ6azbjUuNKt6Eza9rOJOoO6/RH7SC86d2y1IaZ/skXkF81o/RnnF8/EejM+YcDPmm7GgM09WJB7tz8yHAlUYmHj6I+BrBsXB701/eNUouo6Ii2su3fggJ9wzpvohFZ/X43nhA7tZXFJg5w2ojrC7Exo2ybagydf78yR/fkebdL/n3CxyEgg4kwBB9sEFpWsb+ODcIj1htRYE/2JAqsHgvgP+SzOOGKAkIeLdeswqIlSzMX/4UdQoCpLT/I+6tOwd1Qyb9qzSCXuO4tMt6wLJUkA3VMsDu/Rgsh8OboZurilDUFSKGq1cCwaqgUUeLUHUADDfcCphy3JJN35oeRQwlIjAUSibA3i68I87XxiJYsLYj0H1pJ2NvIPuHcDJW7+0hGheOew8CCW0jxhrNAjQTGO73w6Zil09H+ML3u5vOvWNhUKo64JwJUwo93kdioaSKFsK76HCleK8BjRnhYjicQYyxrK5WG6BenzMbiZ/AhI2xmIrB362RTPJj04Xf8k3IMs3Hg2l6I1FA6WJRJpcFK+zFengK56heplwJH2+aaUyTkiWi2jUBHDZYLFrc1T5Jo67EEH8slx4VQQ0Jv3CCHUElME=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0
DutyCheck 0.1.8
Release Details
UpdatedMay 25, 2026, 8:06 p.m.
Changelog

Added

  • Searchable IANA timezone picker on the locations page: js/common/timezone-picker.js with keyboard navigation, live filtering, and accessible listbox semantics; backed by TimezoneCatalog and a new read-only catalog API (CatalogApiController).
  • OCA\DutyCheck\Repair\UninstallDropTables wired in appinfo/info.xml so disabling the app drops all dutycheck tables, migration rows, and app config.

Changed

  • TimezoneCatalog: expanded IANA coverage and unit tests (TimezoneCatalogTest); roster/location flows use the shared picker instead of a plain text field.
  • Locations UI: timezone field uses the new picker component; styling in css/app.css for the combobox pattern (WCAG-friendly focus and contrast).

Bumped

  • Nextcloud max-version: 33 (latest stable major).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBDCCAuwCAhNHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTUxNTAxWhcNMzYwODI2MTUxNTAxWjAUMRIwEAYD
VQQDDAlkdXR5Y2hlY2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn
WEE+B5fAWUDUcINdliOsuP7J3vd/roctHn3e0TBND7r6yrwLjxSQKYgNoWRAYJmC
jhDrZxv6kFyf09XtdABaEvKo4EZAUS3trqIlfBCbz3PLtVHiTB9NbuNhk4XssBAf
I2S3FXLj3Ygx88F/8I1T2n2XJ63uQBeYFjCf1uwx8wbaIv+mbfk3+uhkurCNTiav
3IsT8RM5rSkMApiShhPQOlgaM43d+TzxJG1dXwMTf3e8gZz5XH80fiKyP6gNfPLy
jbiNpG9WBCL/DsBWXL0pn+jUYO4lnyRrOS977Mqk1luOJGsPFWXaLSVOSvrdJDHd
R968uUoXtr8TcD9PxNE6fNd3Mhu28sGcn1V1QFtGTWonkYp8wDgnZPqJHw37Need
r442wrKbwmJqN6t+MSFklBLB/h0ExD1QBFNvRtpV+BVNseoK4spNszWvlXtfLFxx
3DwFPeg7dRqcHuD1BGLgG/LwD8dynwamKdNndbtF343vVVHKIfzcWpsua39MYO3W
SxwQBRN0lmlDGWYbypdNJzp+aSZzUDG/SxpqJDH7ylpBTaWtRiVJEiXY7/bZ+AXX
2CqYUad//oK5rvqkfODiPNBRVX7pniRpRb8Y7Y3lAJgE/4wpGzeYsfDVQCAjY76y
L/rg+w17xKDurZNOgawDQSzrkBbCizdj9RgaS+lVCwIDAQABMA0GCSqGSIb3DQEB
CwUAA4IBAQB4mchRZJvbcmIifarIimDO4nY+KO2F3/fE0Z21O27ppHqvk3dH6j6X
Gdy57dcmDrGYMOuFHRI5j+1Vlbn419xXqx2aG+cs/tojxdvaPyaRSC/IS7hhqz7B
oRagvxhPj46QRWyHmBA10OO+G9AWtlVlwezR+LbFiZ27oazTqNZKUNdlBMgmA/K2
T6lEw6/Zk+f3ipa0o9KSVukNOWGkhGJa324EQcgytizCyzSQeF+blffSsVDDVvcB
3z8x88iJSys4bmNqetVdiOnqysrCCr7DFMlSS2T1Ck8I6t2QkcBovoyrj6r20GtU
FH87CRYAmFQSgkEOElRTaAnCn6/CeBOl
-----END CERTIFICATE-----
SignatureJkhkknrJb+VN8C5EL94UUUGVP4kDm1j4xHH1Q0rNkAop3Bsifm+kHrdFhh9o8DdoPQK24XUF1d9XwIUB11g9eUo6eHoU+rghg6gvvZPyBoCpiWXjxLxQb5gNoK8oTwQXT5HdE69yPIQLMhTtOySuHMP+hgnGOiWBzuQyCWgElCXWSBPJ293neBG1h+CjQXJR0Ib7fNTssCCqKeUtSbs7HvluAhrtbK/GUTeWVx3gtkm+4pDCjBJpK6OgLytW1rPjrSSRvNvAgIj+ZZM30laRbLH4S0l5qfNKFQPu9o0bQ9yUc8PF881qitxFOQxqeMSrzfKjrKSIraKXPJTbvQQg6UaxQszsDROaRW94W/K0Sy+nl53vJCBzzuQI1n9YwJwga0fwSWhdc/Q47rw8C0rTQOmph6Y09IKU20p3gwhkXt98xegZ3/+F//0ikeQIvN52fTd8UsScPqjIkfFh8HUn4mmZwJdF9pH63SCXdgzzHMUrDHuqyovdVBvdPvHI6zr3cuc/ha1O4NOyYNd4wljjxMwyFaBhRN+QUNAXovStP/9ahffo5gccLQudbzbzQQuFfqsFqCjBA1Sr7bV9pF7gmzHI29oQYCYXSKb+b5gSLsskeR6sN7C9jiM4ELEGA6rZSn89N76EQxr3JM59JXksMXuZnqQv9JrQgqzGQPl8Cwk=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0
DutyCheck 0.1.7
Release Details
UpdatedMay 21, 2026, 6:35 p.m.
Changelog

Fixed

  • App Store info.xml: use https:// for author homepage, website, and donation URL (matches ProjectCheck; store schema requires https://.+).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBDCCAuwCAhNHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTUxNTAxWhcNMzYwODI2MTUxNTAxWjAUMRIwEAYD
VQQDDAlkdXR5Y2hlY2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn
WEE+B5fAWUDUcINdliOsuP7J3vd/roctHn3e0TBND7r6yrwLjxSQKYgNoWRAYJmC
jhDrZxv6kFyf09XtdABaEvKo4EZAUS3trqIlfBCbz3PLtVHiTB9NbuNhk4XssBAf
I2S3FXLj3Ygx88F/8I1T2n2XJ63uQBeYFjCf1uwx8wbaIv+mbfk3+uhkurCNTiav
3IsT8RM5rSkMApiShhPQOlgaM43d+TzxJG1dXwMTf3e8gZz5XH80fiKyP6gNfPLy
jbiNpG9WBCL/DsBWXL0pn+jUYO4lnyRrOS977Mqk1luOJGsPFWXaLSVOSvrdJDHd
R968uUoXtr8TcD9PxNE6fNd3Mhu28sGcn1V1QFtGTWonkYp8wDgnZPqJHw37Need
r442wrKbwmJqN6t+MSFklBLB/h0ExD1QBFNvRtpV+BVNseoK4spNszWvlXtfLFxx
3DwFPeg7dRqcHuD1BGLgG/LwD8dynwamKdNndbtF343vVVHKIfzcWpsua39MYO3W
SxwQBRN0lmlDGWYbypdNJzp+aSZzUDG/SxpqJDH7ylpBTaWtRiVJEiXY7/bZ+AXX
2CqYUad//oK5rvqkfODiPNBRVX7pniRpRb8Y7Y3lAJgE/4wpGzeYsfDVQCAjY76y
L/rg+w17xKDurZNOgawDQSzrkBbCizdj9RgaS+lVCwIDAQABMA0GCSqGSIb3DQEB
CwUAA4IBAQB4mchRZJvbcmIifarIimDO4nY+KO2F3/fE0Z21O27ppHqvk3dH6j6X
Gdy57dcmDrGYMOuFHRI5j+1Vlbn419xXqx2aG+cs/tojxdvaPyaRSC/IS7hhqz7B
oRagvxhPj46QRWyHmBA10OO+G9AWtlVlwezR+LbFiZ27oazTqNZKUNdlBMgmA/K2
T6lEw6/Zk+f3ipa0o9KSVukNOWGkhGJa324EQcgytizCyzSQeF+blffSsVDDVvcB
3z8x88iJSys4bmNqetVdiOnqysrCCr7DFMlSS2T1Ck8I6t2QkcBovoyrj6r20GtU
FH87CRYAmFQSgkEOElRTaAnCn6/CeBOl
-----END CERTIFICATE-----
SignatureXo+WBT9sAMGzkChMgF/s5FMbZ8/MaoikA2ShzvLJP4qrvWQPlkz2VCHAbuAj3rNGdMmYL+oaPpSAqaiCC6Rc4Siq/uB2X9pucYJecy49zGF/5870lCZUI/0P8RpYqUnh7DMeqSaDNF1jvIo63tttYTeqWy+IwZ0kENobidjuNlJyhd3Pnhk0joWuDYBIzhbkY5numH0Bz8yxerzoBlbFz9gyt9RsIbCPbkfB+2WjhLqt4tWKZSrngf0sG2XkL3nQ4tjvCGm/DW2heNlnd8VhptJniYzbWHIqzaMswoAgSuojnkONCurK583Xp9MHTEBn12h4olgBspiD8JRjE4W3oW1Ms+j21A4aDAdEydSY0UXSLWDsvYL4VHa+zs+cGUGr5eywRR7Rp/PqUu1wCBWaEQYwQaItC6P1kcDOqktTFMJsEUbq1t17EjDTENOoStHdTtxgnmNwgrQsS/6qT0rR44Ioqbmn+fUk9cpzzpArxqHQCjGfOYt2f1sq00e96Em/jFKrkd6t5b6QBD4YyG2gON0mwqP3IzZdDdmBiXM9toiPOzKSUgO5YyPrjF4uJYGRlAKcaWHIUbeVeE8jFiDuU5WeYpeialaodpdPlhqrqK7ghdcqpXI8RHjkkkCEk8b7+m98qzxZC01oV19IMfNe9x5bRQGmvBxbcUguxb0zB34=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0

Nextcloud 32

DutyCheck 0.1.14
Release Details
UpdatedJune 3, 2026, 7:34 a.m.
Changelog

Fixed

  • Roster "Create assignment" form layout. On the tablet/desktop grid the start- and end-time fields were placed in columns 2–3, leaving a gap in the first column and pushing the break field out of alignment. Start now sits in column 1 and end in column 2, so the day/time row lines up cleanly with the rest of the form.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBDCCAuwCAhNHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTUxNTAxWhcNMzYwODI2MTUxNTAxWjAUMRIwEAYD
VQQDDAlkdXR5Y2hlY2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn
WEE+B5fAWUDUcINdliOsuP7J3vd/roctHn3e0TBND7r6yrwLjxSQKYgNoWRAYJmC
jhDrZxv6kFyf09XtdABaEvKo4EZAUS3trqIlfBCbz3PLtVHiTB9NbuNhk4XssBAf
I2S3FXLj3Ygx88F/8I1T2n2XJ63uQBeYFjCf1uwx8wbaIv+mbfk3+uhkurCNTiav
3IsT8RM5rSkMApiShhPQOlgaM43d+TzxJG1dXwMTf3e8gZz5XH80fiKyP6gNfPLy
jbiNpG9WBCL/DsBWXL0pn+jUYO4lnyRrOS977Mqk1luOJGsPFWXaLSVOSvrdJDHd
R968uUoXtr8TcD9PxNE6fNd3Mhu28sGcn1V1QFtGTWonkYp8wDgnZPqJHw37Need
r442wrKbwmJqN6t+MSFklBLB/h0ExD1QBFNvRtpV+BVNseoK4spNszWvlXtfLFxx
3DwFPeg7dRqcHuD1BGLgG/LwD8dynwamKdNndbtF343vVVHKIfzcWpsua39MYO3W
SxwQBRN0lmlDGWYbypdNJzp+aSZzUDG/SxpqJDH7ylpBTaWtRiVJEiXY7/bZ+AXX
2CqYUad//oK5rvqkfODiPNBRVX7pniRpRb8Y7Y3lAJgE/4wpGzeYsfDVQCAjY76y
L/rg+w17xKDurZNOgawDQSzrkBbCizdj9RgaS+lVCwIDAQABMA0GCSqGSIb3DQEB
CwUAA4IBAQB4mchRZJvbcmIifarIimDO4nY+KO2F3/fE0Z21O27ppHqvk3dH6j6X
Gdy57dcmDrGYMOuFHRI5j+1Vlbn419xXqx2aG+cs/tojxdvaPyaRSC/IS7hhqz7B
oRagvxhPj46QRWyHmBA10OO+G9AWtlVlwezR+LbFiZ27oazTqNZKUNdlBMgmA/K2
T6lEw6/Zk+f3ipa0o9KSVukNOWGkhGJa324EQcgytizCyzSQeF+blffSsVDDVvcB
3z8x88iJSys4bmNqetVdiOnqysrCCr7DFMlSS2T1Ck8I6t2QkcBovoyrj6r20GtU
FH87CRYAmFQSgkEOElRTaAnCn6/CeBOl
-----END CERTIFICATE-----
SignatureYeA5OgPzR8/D7JGtC54EhgrT0KX3UgH1bwepI+l1Er3X0d9vmuxOga0YVacp0LfHoi0iQu2lUSpwD3D3Bex5TMv+NJgs75IUD4QtnLiOlVxMPaMhjqa/E4pynp/Hez7td0ipFRlEx3jZK0wbpQCOc9PRT8jLy6v4UlDKtaLDTNpeUXlPS+sCLadlSxva1duZmpubYhK2lWRBMeu+D+jKKovjVlL9icw7IbyW9IAQvz0k1zooa44PNuLXXDf2J+YOMbdO69uLpX6I8kn753PIvwv0G35X8byig5ddC82KPDwRMpK4ioklZNV8DBj1tH9n/LqYMeCZaJd8ZQ2+jVupbDgVc2aAkVXuTKzw1rLDEJZPkHXQovr7Y4wTfRlmMkeMJ6k61RiSyB/17izd742jEpBwFCTESXC93yCrmQG8SV61jSjngmhrGaWuJ1z8U+KaKjHAjDydfQnm+BTRHm6k2Qq2DjeG89XZdcMVDSDKf2WhUcoX0bK5iYOT7N163PIU7p8F2tl9EmXu1YPtNKVHWq6KEuSXdJ6wiPL0Xqb259S3JnCuajnmeXJSzhsWY3SxVwE8HCyFP2hIqq5OK5j49c8PZ9STzBdCyj2/xmNbN4fpGkEry2t14VAc2S3tGUzbgO1Ofki1Nv82u+eahToMFMsNYPM5QZOKJJCUc3hioUg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0
DutyCheck 0.1.12
Release Details
UpdatedJune 1, 2026, 1:15 p.m.
Changelog

Changed

  • Mobile-first responsive layout. The stylesheet now builds up from a small-screen base (min-width: 480px / 768px breakpoints) instead of patching a desktop layout downward. Shell, cards, page header, filter and form grids reflow cleanly from phone to desktop, and overflow-x: clip prevents the stray horizontal scrollbar on narrow viewports.
  • Tables collapse to cards on small screens. Data tables render as stacked, labelled cards below the tablet breakpoint (row headers and data-cell labels) and switch back to a normal table on wider screens, keeping rosters and lists readable on phones (WCAG 2.1 AA reflow).
  • Tighter page header with a smaller icon and a dedicated actions area so primary actions stay reachable on mobile.

Security

  • Hardened CI workflow and refreshed the Composer lock file to pull in the patched Symfony release (CVE fix), keeping bundled dependencies current.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBDCCAuwCAhNHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTUxNTAxWhcNMzYwODI2MTUxNTAxWjAUMRIwEAYD
VQQDDAlkdXR5Y2hlY2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn
WEE+B5fAWUDUcINdliOsuP7J3vd/roctHn3e0TBND7r6yrwLjxSQKYgNoWRAYJmC
jhDrZxv6kFyf09XtdABaEvKo4EZAUS3trqIlfBCbz3PLtVHiTB9NbuNhk4XssBAf
I2S3FXLj3Ygx88F/8I1T2n2XJ63uQBeYFjCf1uwx8wbaIv+mbfk3+uhkurCNTiav
3IsT8RM5rSkMApiShhPQOlgaM43d+TzxJG1dXwMTf3e8gZz5XH80fiKyP6gNfPLy
jbiNpG9WBCL/DsBWXL0pn+jUYO4lnyRrOS977Mqk1luOJGsPFWXaLSVOSvrdJDHd
R968uUoXtr8TcD9PxNE6fNd3Mhu28sGcn1V1QFtGTWonkYp8wDgnZPqJHw37Need
r442wrKbwmJqN6t+MSFklBLB/h0ExD1QBFNvRtpV+BVNseoK4spNszWvlXtfLFxx
3DwFPeg7dRqcHuD1BGLgG/LwD8dynwamKdNndbtF343vVVHKIfzcWpsua39MYO3W
SxwQBRN0lmlDGWYbypdNJzp+aSZzUDG/SxpqJDH7ylpBTaWtRiVJEiXY7/bZ+AXX
2CqYUad//oK5rvqkfODiPNBRVX7pniRpRb8Y7Y3lAJgE/4wpGzeYsfDVQCAjY76y
L/rg+w17xKDurZNOgawDQSzrkBbCizdj9RgaS+lVCwIDAQABMA0GCSqGSIb3DQEB
CwUAA4IBAQB4mchRZJvbcmIifarIimDO4nY+KO2F3/fE0Z21O27ppHqvk3dH6j6X
Gdy57dcmDrGYMOuFHRI5j+1Vlbn419xXqx2aG+cs/tojxdvaPyaRSC/IS7hhqz7B
oRagvxhPj46QRWyHmBA10OO+G9AWtlVlwezR+LbFiZ27oazTqNZKUNdlBMgmA/K2
T6lEw6/Zk+f3ipa0o9KSVukNOWGkhGJa324EQcgytizCyzSQeF+blffSsVDDVvcB
3z8x88iJSys4bmNqetVdiOnqysrCCr7DFMlSS2T1Ck8I6t2QkcBovoyrj6r20GtU
FH87CRYAmFQSgkEOElRTaAnCn6/CeBOl
-----END CERTIFICATE-----
SignatureQ1wPRBYiz2D5QfEj5/DXGly92+wz5D9px20DL65AMfMTwZiLNLShMBvwwbFe3DPsCMR2sw2cquQhRc24kMhb9snVGE9Dn5liksrHK3p5N6TRk+O7tgFipSd7B/Wr58B1OjyTpGgRI6H7Ypb1SLfe7gNUz3ojIrBVMXGWJ4AGgHi7xeH4AqQQZPVBiAUhBVDAGm19s+tLwy4Xv8di3pkuBn3CuR0wZqBuLUlSmoSEWicS3tl8y5mEAaXvGPPu1VxQzCxz9aKt3VDqnq7LJecxPv78vmT5v9a0LNK8L3OaC9OEdtGN1K24DNgwEdUNo9bCRzb2hhM6Asxv58eIHtcVQ5ekqG3boSOwVN1/9yAvupZq3OXruMtvq66TqHUuFFMtqt6/Cq4f1ONOxlPIovjpty+mPhmytCCkLUsYYT4z/e39JE/3icDCwEQADfS23jB4NzVhl/5PtwZzBM3HJ+oeAjmtzV1sRi1hUI2HPE8jj8voivCfWJGnEDekvQaQCbW+l8USCt8ylgIZGt/mKaxM1VAJ42A9f2QhN+q1z0S3tFYNp5qb4/EZAS9ffxuoKL/wZ8a6cXKTs/C/VvOQWzCpZFHnGymcj9lSuYipUuq24X/m3Sx9xcNErYmeQ7iiauzQ++hcJKlv2N8JOTt3OOINrh6QBaJ7arqGkmOE6a4lVPM=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0
DutyCheck 0.1.9
Release Details
UpdatedMay 29, 2026, 7:44 a.m.
Changelog

Fixed

  • Mutations no longer fail with an opaque REQUEST_FAILED after the CSRF token rotates. The shared API client (js/common/api.js) now transparently refreshes the request token from /csrftoken and retries a write once on 412 — the same recovery @nextcloud/axios performs for the rest of the Nextcloud frontend. This fixes "Add employee" (and every other create/update) failing on long-lived or multi-tab sessions, where the failure left no entry in nextcloud.log (CSRF rejections are handled in middleware and are never logged). Retrying is safe because a 412 is rejected before any database write occurs.
  • Clear, localized error messages (js/common/messaging.js): expired tokens/sessions now tell the user to reload, and internal codes (REQUEST_FAILED, INTERNAL_ERROR, …) are never shown raw. German translations added.
  • Editing or deactivating an employee whose linked Nextcloud account was deleted no longer fails. RosterService::updateEmployee only re-validates the linked account when it actually changes; an unchanged, now-missing link stays manageable so the record is never frozen. A new (or changed) link to a missing account is still rejected.

Changed

  • App Store listing copy refreshed for broader appeal (appinfo/info.xml: summary + long description, EN + DE).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBDCCAuwCAhNHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTUxNTAxWhcNMzYwODI2MTUxNTAxWjAUMRIwEAYD
VQQDDAlkdXR5Y2hlY2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn
WEE+B5fAWUDUcINdliOsuP7J3vd/roctHn3e0TBND7r6yrwLjxSQKYgNoWRAYJmC
jhDrZxv6kFyf09XtdABaEvKo4EZAUS3trqIlfBCbz3PLtVHiTB9NbuNhk4XssBAf
I2S3FXLj3Ygx88F/8I1T2n2XJ63uQBeYFjCf1uwx8wbaIv+mbfk3+uhkurCNTiav
3IsT8RM5rSkMApiShhPQOlgaM43d+TzxJG1dXwMTf3e8gZz5XH80fiKyP6gNfPLy
jbiNpG9WBCL/DsBWXL0pn+jUYO4lnyRrOS977Mqk1luOJGsPFWXaLSVOSvrdJDHd
R968uUoXtr8TcD9PxNE6fNd3Mhu28sGcn1V1QFtGTWonkYp8wDgnZPqJHw37Need
r442wrKbwmJqN6t+MSFklBLB/h0ExD1QBFNvRtpV+BVNseoK4spNszWvlXtfLFxx
3DwFPeg7dRqcHuD1BGLgG/LwD8dynwamKdNndbtF343vVVHKIfzcWpsua39MYO3W
SxwQBRN0lmlDGWYbypdNJzp+aSZzUDG/SxpqJDH7ylpBTaWtRiVJEiXY7/bZ+AXX
2CqYUad//oK5rvqkfODiPNBRVX7pniRpRb8Y7Y3lAJgE/4wpGzeYsfDVQCAjY76y
L/rg+w17xKDurZNOgawDQSzrkBbCizdj9RgaS+lVCwIDAQABMA0GCSqGSIb3DQEB
CwUAA4IBAQB4mchRZJvbcmIifarIimDO4nY+KO2F3/fE0Z21O27ppHqvk3dH6j6X
Gdy57dcmDrGYMOuFHRI5j+1Vlbn419xXqx2aG+cs/tojxdvaPyaRSC/IS7hhqz7B
oRagvxhPj46QRWyHmBA10OO+G9AWtlVlwezR+LbFiZ27oazTqNZKUNdlBMgmA/K2
T6lEw6/Zk+f3ipa0o9KSVukNOWGkhGJa324EQcgytizCyzSQeF+blffSsVDDVvcB
3z8x88iJSys4bmNqetVdiOnqysrCCr7DFMlSS2T1Ck8I6t2QkcBovoyrj6r20GtU
FH87CRYAmFQSgkEOElRTaAnCn6/CeBOl
-----END CERTIFICATE-----
SignatureOd6OfM2NKgnHuG3faFhhFiGXlAJpJZy1hCJUWl1rriIUlcpQDgZV4heD1U2APILsDX2QjkOspiJdZdqdZ6azbjUuNKt6Eza9rOJOoO6/RH7SC86d2y1IaZ/skXkF81o/RnnF8/EejM+YcDPmm7GgM09WJB7tz8yHAlUYmHj6I+BrBsXB701/eNUouo6Ii2su3fggJ9wzpvohFZ/X43nhA7tZXFJg5w2ojrC7Exo2ybagydf78yR/fkebdL/n3CxyEgg4kwBB9sEFpWsb+ODcIj1htRYE/2JAqsHgvgP+SzOOGKAkIeLdeswqIlSzMX/4UdQoCpLT/I+6tOwd1Qyb9qzSCXuO4tMt6wLJUkA3VMsDu/Rgsh8OboZurilDUFSKGq1cCwaqgUUeLUHUADDfcCphy3JJN35oeRQwlIjAUSibA3i68I87XxiJYsLYj0H1pJ2NvIPuHcDJW7+0hGheOew8CCW0jxhrNAjQTGO73w6Zil09H+ML3u5vOvWNhUKo64JwJUwo93kdioaSKFsK76HCleK8BjRnhYjicQYyxrK5WG6BenzMbiZ/AhI2xmIrB362RTPJj04Xf8k3IMs3Hg2l6I1FA6WJRJpcFK+zFengK56heplwJH2+aaUyTkiWi2jUBHDZYLFrc1T5Jo67EEH8slx4VQQ0Jv3CCHUElME=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0
DutyCheck 0.1.8
Release Details
UpdatedMay 25, 2026, 8:06 p.m.
Changelog

Added

  • Searchable IANA timezone picker on the locations page: js/common/timezone-picker.js with keyboard navigation, live filtering, and accessible listbox semantics; backed by TimezoneCatalog and a new read-only catalog API (CatalogApiController).
  • OCA\DutyCheck\Repair\UninstallDropTables wired in appinfo/info.xml so disabling the app drops all dutycheck tables, migration rows, and app config.

Changed

  • TimezoneCatalog: expanded IANA coverage and unit tests (TimezoneCatalogTest); roster/location flows use the shared picker instead of a plain text field.
  • Locations UI: timezone field uses the new picker component; styling in css/app.css for the combobox pattern (WCAG-friendly focus and contrast).

Bumped

  • Nextcloud max-version: 33 (latest stable major).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBDCCAuwCAhNHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTUxNTAxWhcNMzYwODI2MTUxNTAxWjAUMRIwEAYD
VQQDDAlkdXR5Y2hlY2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn
WEE+B5fAWUDUcINdliOsuP7J3vd/roctHn3e0TBND7r6yrwLjxSQKYgNoWRAYJmC
jhDrZxv6kFyf09XtdABaEvKo4EZAUS3trqIlfBCbz3PLtVHiTB9NbuNhk4XssBAf
I2S3FXLj3Ygx88F/8I1T2n2XJ63uQBeYFjCf1uwx8wbaIv+mbfk3+uhkurCNTiav
3IsT8RM5rSkMApiShhPQOlgaM43d+TzxJG1dXwMTf3e8gZz5XH80fiKyP6gNfPLy
jbiNpG9WBCL/DsBWXL0pn+jUYO4lnyRrOS977Mqk1luOJGsPFWXaLSVOSvrdJDHd
R968uUoXtr8TcD9PxNE6fNd3Mhu28sGcn1V1QFtGTWonkYp8wDgnZPqJHw37Need
r442wrKbwmJqN6t+MSFklBLB/h0ExD1QBFNvRtpV+BVNseoK4spNszWvlXtfLFxx
3DwFPeg7dRqcHuD1BGLgG/LwD8dynwamKdNndbtF343vVVHKIfzcWpsua39MYO3W
SxwQBRN0lmlDGWYbypdNJzp+aSZzUDG/SxpqJDH7ylpBTaWtRiVJEiXY7/bZ+AXX
2CqYUad//oK5rvqkfODiPNBRVX7pniRpRb8Y7Y3lAJgE/4wpGzeYsfDVQCAjY76y
L/rg+w17xKDurZNOgawDQSzrkBbCizdj9RgaS+lVCwIDAQABMA0GCSqGSIb3DQEB
CwUAA4IBAQB4mchRZJvbcmIifarIimDO4nY+KO2F3/fE0Z21O27ppHqvk3dH6j6X
Gdy57dcmDrGYMOuFHRI5j+1Vlbn419xXqx2aG+cs/tojxdvaPyaRSC/IS7hhqz7B
oRagvxhPj46QRWyHmBA10OO+G9AWtlVlwezR+LbFiZ27oazTqNZKUNdlBMgmA/K2
T6lEw6/Zk+f3ipa0o9KSVukNOWGkhGJa324EQcgytizCyzSQeF+blffSsVDDVvcB
3z8x88iJSys4bmNqetVdiOnqysrCCr7DFMlSS2T1Ck8I6t2QkcBovoyrj6r20GtU
FH87CRYAmFQSgkEOElRTaAnCn6/CeBOl
-----END CERTIFICATE-----
SignatureJkhkknrJb+VN8C5EL94UUUGVP4kDm1j4xHH1Q0rNkAop3Bsifm+kHrdFhh9o8DdoPQK24XUF1d9XwIUB11g9eUo6eHoU+rghg6gvvZPyBoCpiWXjxLxQb5gNoK8oTwQXT5HdE69yPIQLMhTtOySuHMP+hgnGOiWBzuQyCWgElCXWSBPJ293neBG1h+CjQXJR0Ib7fNTssCCqKeUtSbs7HvluAhrtbK/GUTeWVx3gtkm+4pDCjBJpK6OgLytW1rPjrSSRvNvAgIj+ZZM30laRbLH4S0l5qfNKFQPu9o0bQ9yUc8PF881qitxFOQxqeMSrzfKjrKSIraKXPJTbvQQg6UaxQszsDROaRW94W/K0Sy+nl53vJCBzzuQI1n9YwJwga0fwSWhdc/Q47rw8C0rTQOmph6Y09IKU20p3gwhkXt98xegZ3/+F//0ikeQIvN52fTd8UsScPqjIkfFh8HUn4mmZwJdF9pH63SCXdgzzHMUrDHuqyovdVBvdPvHI6zr3cuc/ha1O4NOyYNd4wljjxMwyFaBhRN+QUNAXovStP/9ahffo5gccLQudbzbzQQuFfqsFqCjBA1Sr7bV9pF7gmzHI29oQYCYXSKb+b5gSLsskeR6sN7C9jiM4ELEGA6rZSn89N76EQxr3JM59JXksMXuZnqQv9JrQgqzGQPl8Cwk=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0
DutyCheck 0.1.7
Release Details
UpdatedMay 21, 2026, 6:35 p.m.
Changelog

Fixed

  • App Store info.xml: use https:// for author homepage, website, and donation URL (matches ProjectCheck; store schema requires https://.+).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBDCCAuwCAhNHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTUxNTAxWhcNMzYwODI2MTUxNTAxWjAUMRIwEAYD
VQQDDAlkdXR5Y2hlY2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn
WEE+B5fAWUDUcINdliOsuP7J3vd/roctHn3e0TBND7r6yrwLjxSQKYgNoWRAYJmC
jhDrZxv6kFyf09XtdABaEvKo4EZAUS3trqIlfBCbz3PLtVHiTB9NbuNhk4XssBAf
I2S3FXLj3Ygx88F/8I1T2n2XJ63uQBeYFjCf1uwx8wbaIv+mbfk3+uhkurCNTiav
3IsT8RM5rSkMApiShhPQOlgaM43d+TzxJG1dXwMTf3e8gZz5XH80fiKyP6gNfPLy
jbiNpG9WBCL/DsBWXL0pn+jUYO4lnyRrOS977Mqk1luOJGsPFWXaLSVOSvrdJDHd
R968uUoXtr8TcD9PxNE6fNd3Mhu28sGcn1V1QFtGTWonkYp8wDgnZPqJHw37Need
r442wrKbwmJqN6t+MSFklBLB/h0ExD1QBFNvRtpV+BVNseoK4spNszWvlXtfLFxx
3DwFPeg7dRqcHuD1BGLgG/LwD8dynwamKdNndbtF343vVVHKIfzcWpsua39MYO3W
SxwQBRN0lmlDGWYbypdNJzp+aSZzUDG/SxpqJDH7ylpBTaWtRiVJEiXY7/bZ+AXX
2CqYUad//oK5rvqkfODiPNBRVX7pniRpRb8Y7Y3lAJgE/4wpGzeYsfDVQCAjY76y
L/rg+w17xKDurZNOgawDQSzrkBbCizdj9RgaS+lVCwIDAQABMA0GCSqGSIb3DQEB
CwUAA4IBAQB4mchRZJvbcmIifarIimDO4nY+KO2F3/fE0Z21O27ppHqvk3dH6j6X
Gdy57dcmDrGYMOuFHRI5j+1Vlbn419xXqx2aG+cs/tojxdvaPyaRSC/IS7hhqz7B
oRagvxhPj46QRWyHmBA10OO+G9AWtlVlwezR+LbFiZ27oazTqNZKUNdlBMgmA/K2
T6lEw6/Zk+f3ipa0o9KSVukNOWGkhGJa324EQcgytizCyzSQeF+blffSsVDDVvcB
3z8x88iJSys4bmNqetVdiOnqysrCCr7DFMlSS2T1Ck8I6t2QkcBovoyrj6r20GtU
FH87CRYAmFQSgkEOElRTaAnCn6/CeBOl
-----END CERTIFICATE-----
SignatureXo+WBT9sAMGzkChMgF/s5FMbZ8/MaoikA2ShzvLJP4qrvWQPlkz2VCHAbuAj3rNGdMmYL+oaPpSAqaiCC6Rc4Siq/uB2X9pucYJecy49zGF/5870lCZUI/0P8RpYqUnh7DMeqSaDNF1jvIo63tttYTeqWy+IwZ0kENobidjuNlJyhd3Pnhk0joWuDYBIzhbkY5numH0Bz8yxerzoBlbFz9gyt9RsIbCPbkfB+2WjhLqt4tWKZSrngf0sG2XkL3nQ4tjvCGm/DW2heNlnd8VhptJniYzbWHIqzaMswoAgSuojnkONCurK583Xp9MHTEBn12h4olgBspiD8JRjE4W3oW1Ms+j21A4aDAdEydSY0UXSLWDsvYL4VHa+zs+cGUGr5eywRR7Rp/PqUu1wCBWaEQYwQaItC6P1kcDOqktTFMJsEUbq1t17EjDTENOoStHdTtxgnmNwgrQsS/6qT0rR44Ioqbmn+fUk9cpzzpArxqHQCjGfOYt2f1sq00e96Em/jFKrkd6t5b6QBD4YyG2gON0mwqP3IzZdDdmBiXM9toiPOzKSUgO5YyPrjF4uJYGRlAKcaWHIUbeVeE8jFiDuU5WeYpeialaodpdPlhqrqK7ghdcqpXI8RHjkkkCEk8b7+m98qzxZC01oV19IMfNe9x5bRQGmvBxbcUguxb0zB34=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0