Skip to main content

BudgetCheck - Releases

← App details

Nextcloud 35

BudgetCheck 1.4.8
Release Details
UpdatedOct. 12, 2026, 7:56 a.m.
Changelog

Added

  • Simplified Chinese localization (issue #24): BudgetCheck is now fully translated into 简体中文 — workspaces, bookings, CSV import and export, recurring bookings, and settings ship a complete zh_CN catalog. Thanks to the community contribution that started this catalog; the remaining strings were completed and reviewed for terminology consistency with the BudgetCheck mobile companion app.
  • Plural strings are now translatable in every locale: the fifteen message pairs used for counts (transactions, recurring generations, import rows, …) previously always rendered in English. They are now real catalog entries with the correct number of plural forms per language.

Fixed

  • Literal percent signs no longer show as “%%”: a hardening pass had escaped percent signs for the PHP formatter but also hit JavaScript-rendered texts — labels such as “10 %” or the VAT rate would have displayed a doubled “%%”. Each string now carries the escaping its renderer actually needs.
  • Corrected untranslated and case-only-differing values across the existing catalogs.

Changed

  • The translation checker now validates plural message sets and percent escaping per renderer, so both defect classes above are caught before release.
  • Maintenance: dropped deprecated clip: rect() styles and cleaned the shared app-feedback regex (fleet-wide sync).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureTQMru9+Wp6/V0JioRdxKdHLr/cVdKaa4zmdHX0qlqzJVvaY6VNHk4cccPbYpc/ishO9+rRiu7pGV8MKCwvnrRg98QT5wdt0IBbwb8i3mwOKE6PewWc2XfixktcRjDpwNV53CfaZA//RwxsQnb4Sgj26lHQCT9LF6Rwj3L8TT3LkAyFuGnSIDjCYRLomwI8xzZ4/aEG2pZBLUEAiLF+tpBhpudE8aGuQxRsjX/RzkaEXt5DCp7pvm2nxsCsZhkUddbVV2bsXCihSS7G+sEh+0KClLRGoYea92WCtbawrouBzFK0eQFa2tXMcmAean2JBQMLr8KJeI88LlAPAlPEYwHVeIjLZ5N7lptkc25uCdD3qKN/PpmEYeN0IahLOiGMv0WDdR2BrTBThFlrkh1hCO0rUuIGL2o57z4teL8XtY0ytxuTEYSHIHvQujsdzAVxMtUCC5j8ztT66qcmZ8LO7l4/dxIy2au5MRvZfkCuLQZcCJN4tm0hgkdS4T7mnJzaeAcveq6HKYO3OaE8mbBNWQyEuUhfCGGkKVf38SPWlH/CyEMKmGIUJ9a8NAYvak+PQcE7VcfOkClz6OTwi+0OGMFPTyS5yI8++Z3cETVBso6W3niS2ysgS2KKPXVLZWzzcD2zGoWMUorLCUJksdD4EI6qvhec/K0eyTSWApb8sNRqo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.7
Release Details
UpdatedOct. 10, 2026, 3:27 p.m.
Changelog

Changed

  • shared app-feedback render (focus-ring + toast-dedup SSOT)
  • Atlas farm v3.5.15: strict-id route reqs + contrast suite + l10n generator fix + test-harness cascade

Unreleased

Added

  • CSV import: separate income and expense columns (issue #23): bank exports that split the amount into two columns — one value per row, the other left blank — now import without editing the file. Recognised headers include “Expenses”/“Income”, “Ausgaben”/“Einnahmen”, and “Debit”/“Credit” or “Soll”/“Haben” pairs when they contain amounts; a minus sign on the expense column is accepted, and a bare dash counts as empty. Ambiguous header names are decided by their data, so a single “Debit” column holding debit/credit keywords still works as a direction column. Extra columns such as a running balance are ignored.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
Signaturegl/QFzQnXTF0uXgNMdnMFQqUsSs0Z16Qr2MIWOEj1jr0rRKGXngngVS7PptEQVtpEi/vZgrNvofYOLXnZaioGvXt4b3KfxvYqcoDQjU9cs+qNMcxvPOHOB31YxB/kJZybDYAibcYlimx6gMdRTeFsegEkTMinFft3u7CDokgcxTxTOu//9ugxoDDslfZxga+T/+B0m6pHxlZ0dvzuujA1ifbIhJbNTGrYEhTd8NH2tNA7HBpYS2YSui8Hmu3tAjP549ZHdoYEJhDT5gvWQD1CDMbiexwO6Rfq+Qv2F9sOAHyQEOkum/ywjtNq3VQrd3Nr6JbEttuLhUpt2y0wB7O1tcnVg6BkzjfDy1ba7dRlK8ZklFxy5EAWWq7Bpq8UBBtakAxyZplVj+Oitbw6E3Mz1haSBYsgv+1Qs1bTWGtT3+eXP32+VLtXnooMMnyyXxpaxjsztOKBzD8znKTMUgAsvnmOPa0K4rI/OycJNwpsaabiU0YQ9a0E8WfvsIg5Qht487XnRTFDl/arNUjWI0loMQzaU7gVMBg8s66imRI+V79DlUmIghU4zgbm5xoCxLzUtb4WIe3xsu8WC2FFQCrmqQV3WDLrQ4FMfYHMwFJzJc4NT7ZfLpNcuVCK1M9bQQcxfv+48t42sovdH/f80BXwUkHJrHgfNo/AH99EUzqycg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.2
Release Details
UpdatedOct. 4, 2026, 7:10 p.m.
Changelog

Fixed

  • API hardening: stricter request validation and error paths.
  • Theme rendering now uses real OCS theming values; field-level error rendering synced from the shared component.
  • Localization parity and catalog corpus fixes.

Changed

  • Atlas v3.5.14 verification pass: expanded contract coverage; store screenshot URLs corrected.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureA2P/kVw88MT2KAYMD5EzCI4qkskO687r8o89N1xaMBJKnNAWtBt1klTusS/1nevjmVXCDMsFvPo20ZTQh4l/861uAIRkqsZkvG71nEAYO/nVhFLeN+GmhXty1KpROFwWVEYk/Ex/M9BQf5C1mHmSqf0Vr6/ZnstAESBBu7PoBiHL0+v6nabApjgEO/JZUvFkGgGFAXS3nPIKtwAsFnrFl7J+AOlc898No37O3QqXHEfa/9KJkLKpbqFdhqN88ZSIGZhhiQsuvOsZG/l5LY9y6Q00lcXKql89fJZkGi+RvM2rLXIrkQa9U3wvLWeoBrOG5cMEoUI01qMw73fDxGgFUNzn+dT0jnQb7WtAYudd1FJE0wZjQ6FNQx/CSWzEx3z28kgOdodi4bzPcwdiflx8k4CUAGGal9l7lVw8//9+bYjwXFQkZgnl3SbDlgRK9lwtp6dA1kHDAJf5wQvCaXHtyEuGltyUcZWP2rkF49HhhV+iv4FeC+0eA5Pmf/iZ7Fc4WCGWdbg3j39ecOlmf3uFwyQLnPRs+byQ1P1oiDxu39OMP7jvNMSita7xIa7+36qRU62GEwD+2rNiugKRc8oQI7OXqQcfvmXqL9GqWEt1/zqkM9YgrI3IOc8vBwuKFhb8PZEMbb8YxciqPB6uJK4CR4sYa9HczeV1+FhGr0pEnz8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.1
Release Details
UpdatedSept. 28, 2026, 2:34 p.m.
Changelog

Fixed

  • Attachment View/Download 404 with doubled /index.php/ (#20): on installs without pretty URLs, linkToRoute already returns /index.php/apps/budgetcheck/.... The gallery was calling OC.generateUrl again and producing /index.php/index.php/.... Delete was unaffected (relative API paths). Companion app uses the mobile download API and was not affected.
  • l10n parity: dropped orphan msgids with a literal \' (PHP-escape leak of “Copy last month's budget…”) from fr/nl/it/pl/pt_BR, reordered catalogs to match en.json, and hardened check-l10n-parity.php + sync-l10n-keys-from-en.php so this class of drift fails CI and is one command to repair.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturemERz63QfNXCX2l4kVJdDFobFQiXRNKFOiB/1A2CKc5unTUh9opAeH9UmBKVcDxmrI8J7LInY/+7lX9vWufET3LU/IOSYTZUKxWUk/KdP00gRPGkJxXJc9wWHP9c1VTsAKuGG3OnC6VoWsiZUG/YHgyqemPDj6JYpNl6y9SssGTI9+o44PjGInPWBR5DBzZGtVfR92ymMSNQFJtWFhEMBaRG/lnQFb1viORmHel/H0Ljd+Adq9nL6VB9/18/M0ot7qWN6oSG3kHtItPdLxon8ZbXsZwnOd5Uoj4PjQ9zJdllB2KovxGTZunw7IKkS2DJ2uausudF973f+fhv3k6TY0wQfh5rgIdl5VY8b0ViywC8LpBxk+w+ZrCzygyn4CYQ05s76jxWZiw04TrkJOVcVttJ0maYMva/9ITMvku5x/a25FYRKIdLFPZ6nK1z+VEfAWfpmm3BuziwNdtxNOqohRrQqCQLO+7Akp/Sia6EynjmQyaI8faqHRDEJ7H2yAzXPftyC2u/7ailP+PQf/bYyGVMTdjlK1zxDf5m2PZRwnbE5XpyI8npXKJ04q2gHK8+Zk/t98ypRteIUIHc+GkNAitXaqgpXF2Uz9d1BgXKxf+lFFY4k3RuWOyGurPJGkpvok0kK+gNBAcnKK2PjvJ5JQEKeYfkncbsYZ+0ZW4DILLI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.0
Release Details
UpdatedSept. 12, 2026, 8:24 p.m.
Changelog

Added

  • Delete workspace (#19): managers can permanently remove a workspace from Settings → Workspace (typed-name confirmation, impact preview, cascade of bookings/attachments/budgets/members/snapshots). Project workspaces warn that InvoiceCheck invoices remain but settlement links break.
  • Mobile companion API 7: DELETE /api/mobile/v1/workspaces/{id} with the same confirmName gate and rate limit (5/hour).

Security

  • Workspace delete is manager-only (private workspaces: individual manager only; no app-admin bypass). Exact workspace-name confirmation required.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureRZyzSvfPcIbXGp7KlK5Sa3Nih4lLR3zWGGEQzKtnT5UL2UD9i4roX5jCRMf+mXIjd9Hgi5DjeEy5DCB0FqVNNvwnBrtAMaJenYJ+pZ/70TeJAhqTdKIzkXyeiX41BNgqhCxcWAdV0JjLGQhDvZNumygKpJJVjtj2V07aBJT1wVjA577CIovyhMATUG3w+uFE9yeWEupzQFjsypx4rpcqbFO+aGaXdO0QJky5g/X9QmUJGNDxyJhDMWwzkq6kgXBDdl9UQIuneN+TeH0IRkFtyDFdCh75Ft++4w43R3WeAGzsCjpe1BQxLxgHGRe6SorzStCNs42hM0CHTTQeKX5Vw7wmIEJO8RksElf+HPuiv7JvhjAGDVl7DVVRDDDL72niw9SQwejCODmlXRyZrMkWa3tuqYqoD1KOpG5nXkOqLMyJbOzcXbUp3G4si/gZVG6erZjGK7OqUvikmrIbyu4Sg3smxV5CC6nw/SzLTivVq6FrF50luGW//pNG15UboXIVjQ1kRdlMcYSmV7uY0kFC1a68z2D7VAF/l4Zmfex2zquHYD2uiJQKj+aZQqktceMwMhfTDT8DSqmc5KIblDrnCSP2yRMtaniuzcQNESBveKDHPO5u7k3+k0cb+7LpIBxFwZGIYxeuIWcRaD+7hsGp9agmO1o6F4H0rAtLZJdYyJE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.3.0
Release Details
UpdatedSept. 7, 2026, 5:55 p.m.
Changelog

Added

  • Recurring posting modes (#18): each rule chooses how dues land on the ledger.
  • Book automatically (default for new rules): writes real transactions on Generate / when due.
  • Plan for bank import (legacy behaviour, kept for existing rules): writes planned reminders that a matching import removes.
  • Hourly RecurringDueJob: auto-books active book-mode rules when next_due_date is on or before today in the workspace timezone. Plan-mode rules stay manual.
  • Catch-up actions: per-rule “Book now / Add plan now” for overdue dues, plus workspace “Add everything due”.
  • Generate can promote an existing planned twin to a real booking when switching to book mode (idempotent per rule+date).

Changed

  • Recurring settings UX rewritten for clarity (two modes, due badges, simpler verbs). WCAG 2.1 AA focus/labels retained.
  • Contributors see Settings → Recurring for catch-up only (Book / Add plan / Add everything due); create/edit/delete stay managers-only. Viewers stay redirected.
  • Inactive rules no longer offer Book/Add plan (plain “Paused” hint); Due badges expose an accessible name.
  • Real ledger rows may keep recurring_rule_id for provenance; uniqueness is one live row per (rule, date).
  • Closed months are skipped during generate/auto-due so the cursor never stalls forever.
  • Mobile recurring suggestions read amount.minor from the hydrated envelope (fixes always-zero amounts).
  • Full BudgetCheck native-speaker quality pass (web + companion): register (Sie/vous/usted/u/Lei), Transactions nav binding, workspace-manager role terms, untranslated lock/offline mobile strings, glossary alignment (PL Księgowania; IT button chrome vs Lei body).

Fixed

  • Book + import no longer doubles: matching bank/manual bookings (no recurring_rule_id) soft-delete the live book-mode auto-book. Recurring generate itself never replaces sibling months (adjacent-month matcher is import-only).
  • Dev cron sidecar: nextcloud-cron service + backgroundjobs_mode=cron so RecurringDueJob runs without web traffic. List recurring also does a rate-limited opportunistic due sweep.
  • Mobile recurring UI: Start → “Add what is due” screen with Book now (wired to generate-due API).

Security

  • Auto-due uses the rule author (fallback: earliest workspace manager) under the same contributor ACL as manual Generate; FOR UPDATE on the rule prevents double-posts under concurrent job + UI.
  • Add full period (mode=full_period / future through) is managers-only at API and service layer; contributors retain due catch-up Generate (dueCatchUp + through ≤ today).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureRBhia8rvbpf4HytBK1LGXHoKUKf8F5/XUOc5pqgIlWyx2vhnxj3lACL4skjqP/jQ3HrI6jxFISuTbNy3ou+JZ0SqzsScdJM4I2nA83puVfYnBqmc3f8tZTH3KstviBoEzF+OZkSU8qZpkLH95wbnfVoPlX96PxHyTRg99+IqTmv+RpmRdvmy5yD3zW9Fsc8eaEA7IQGBJQ+FmxpXkOz1lQvfNMVAhTQVYXpqOUuz+5UbgqJCtTdvSWqYFJ9rQWf4sLVuKmz45Ih6xkUNULSl4Ifk0AxmAmokJKtaWPwdFf44OlxzE1+7EXJ075juDAimhIW9qA7gxXODyHgFiwhVOEyCPxmNRcyGDC0aFT/Lly3Qb23kZu9S2NfXpGWxOJ5usJK0zkpAQWMeWy3o6CjwrItCIpjaEc8cby21ymewQ9L1IhaTAegIAKFJkRcXa15rmPV27zYTq1aWKdjn47r/ukUhYDNiHjV1KSjEbhkmVdQYLyOlYRjkd3xu30oTLu/+HQnaapyvl1dQLDLFTC8wsQMvUERc2gmi+dxGmhqsaR1pLqjnZxDOMY/6Hyy4OQzseY9MuGPWlIBrz2juPJrZPwzgMXGkLTfzWqG8lhPJPZh/+2T9fvzDmOSbX2ZBcpyTDhH9iGq0zIEpvtpsRh97duFuZzRYPwiR7HZXM3BTwN0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0

Nextcloud 34

BudgetCheck 1.4.8
Release Details
UpdatedOct. 12, 2026, 7:56 a.m.
Changelog

Added

  • Simplified Chinese localization (issue #24): BudgetCheck is now fully translated into 简体中文 — workspaces, bookings, CSV import and export, recurring bookings, and settings ship a complete zh_CN catalog. Thanks to the community contribution that started this catalog; the remaining strings were completed and reviewed for terminology consistency with the BudgetCheck mobile companion app.
  • Plural strings are now translatable in every locale: the fifteen message pairs used for counts (transactions, recurring generations, import rows, …) previously always rendered in English. They are now real catalog entries with the correct number of plural forms per language.

Fixed

  • Literal percent signs no longer show as “%%”: a hardening pass had escaped percent signs for the PHP formatter but also hit JavaScript-rendered texts — labels such as “10 %” or the VAT rate would have displayed a doubled “%%”. Each string now carries the escaping its renderer actually needs.
  • Corrected untranslated and case-only-differing values across the existing catalogs.

Changed

  • The translation checker now validates plural message sets and percent escaping per renderer, so both defect classes above are caught before release.
  • Maintenance: dropped deprecated clip: rect() styles and cleaned the shared app-feedback regex (fleet-wide sync).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureTQMru9+Wp6/V0JioRdxKdHLr/cVdKaa4zmdHX0qlqzJVvaY6VNHk4cccPbYpc/ishO9+rRiu7pGV8MKCwvnrRg98QT5wdt0IBbwb8i3mwOKE6PewWc2XfixktcRjDpwNV53CfaZA//RwxsQnb4Sgj26lHQCT9LF6Rwj3L8TT3LkAyFuGnSIDjCYRLomwI8xzZ4/aEG2pZBLUEAiLF+tpBhpudE8aGuQxRsjX/RzkaEXt5DCp7pvm2nxsCsZhkUddbVV2bsXCihSS7G+sEh+0KClLRGoYea92WCtbawrouBzFK0eQFa2tXMcmAean2JBQMLr8KJeI88LlAPAlPEYwHVeIjLZ5N7lptkc25uCdD3qKN/PpmEYeN0IahLOiGMv0WDdR2BrTBThFlrkh1hCO0rUuIGL2o57z4teL8XtY0ytxuTEYSHIHvQujsdzAVxMtUCC5j8ztT66qcmZ8LO7l4/dxIy2au5MRvZfkCuLQZcCJN4tm0hgkdS4T7mnJzaeAcveq6HKYO3OaE8mbBNWQyEuUhfCGGkKVf38SPWlH/CyEMKmGIUJ9a8NAYvak+PQcE7VcfOkClz6OTwi+0OGMFPTyS5yI8++Z3cETVBso6W3niS2ysgS2KKPXVLZWzzcD2zGoWMUorLCUJksdD4EI6qvhec/K0eyTSWApb8sNRqo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.7
Release Details
UpdatedOct. 10, 2026, 3:27 p.m.
Changelog

Changed

  • shared app-feedback render (focus-ring + toast-dedup SSOT)
  • Atlas farm v3.5.15: strict-id route reqs + contrast suite + l10n generator fix + test-harness cascade

Unreleased

Added

  • CSV import: separate income and expense columns (issue #23): bank exports that split the amount into two columns — one value per row, the other left blank — now import without editing the file. Recognised headers include “Expenses”/“Income”, “Ausgaben”/“Einnahmen”, and “Debit”/“Credit” or “Soll”/“Haben” pairs when they contain amounts; a minus sign on the expense column is accepted, and a bare dash counts as empty. Ambiguous header names are decided by their data, so a single “Debit” column holding debit/credit keywords still works as a direction column. Extra columns such as a running balance are ignored.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
Signaturegl/QFzQnXTF0uXgNMdnMFQqUsSs0Z16Qr2MIWOEj1jr0rRKGXngngVS7PptEQVtpEi/vZgrNvofYOLXnZaioGvXt4b3KfxvYqcoDQjU9cs+qNMcxvPOHOB31YxB/kJZybDYAibcYlimx6gMdRTeFsegEkTMinFft3u7CDokgcxTxTOu//9ugxoDDslfZxga+T/+B0m6pHxlZ0dvzuujA1ifbIhJbNTGrYEhTd8NH2tNA7HBpYS2YSui8Hmu3tAjP549ZHdoYEJhDT5gvWQD1CDMbiexwO6Rfq+Qv2F9sOAHyQEOkum/ywjtNq3VQrd3Nr6JbEttuLhUpt2y0wB7O1tcnVg6BkzjfDy1ba7dRlK8ZklFxy5EAWWq7Bpq8UBBtakAxyZplVj+Oitbw6E3Mz1haSBYsgv+1Qs1bTWGtT3+eXP32+VLtXnooMMnyyXxpaxjsztOKBzD8znKTMUgAsvnmOPa0K4rI/OycJNwpsaabiU0YQ9a0E8WfvsIg5Qht487XnRTFDl/arNUjWI0loMQzaU7gVMBg8s66imRI+V79DlUmIghU4zgbm5xoCxLzUtb4WIe3xsu8WC2FFQCrmqQV3WDLrQ4FMfYHMwFJzJc4NT7ZfLpNcuVCK1M9bQQcxfv+48t42sovdH/f80BXwUkHJrHgfNo/AH99EUzqycg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.2
Release Details
UpdatedOct. 4, 2026, 7:10 p.m.
Changelog

Fixed

  • API hardening: stricter request validation and error paths.
  • Theme rendering now uses real OCS theming values; field-level error rendering synced from the shared component.
  • Localization parity and catalog corpus fixes.

Changed

  • Atlas v3.5.14 verification pass: expanded contract coverage; store screenshot URLs corrected.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureA2P/kVw88MT2KAYMD5EzCI4qkskO687r8o89N1xaMBJKnNAWtBt1klTusS/1nevjmVXCDMsFvPo20ZTQh4l/861uAIRkqsZkvG71nEAYO/nVhFLeN+GmhXty1KpROFwWVEYk/Ex/M9BQf5C1mHmSqf0Vr6/ZnstAESBBu7PoBiHL0+v6nabApjgEO/JZUvFkGgGFAXS3nPIKtwAsFnrFl7J+AOlc898No37O3QqXHEfa/9KJkLKpbqFdhqN88ZSIGZhhiQsuvOsZG/l5LY9y6Q00lcXKql89fJZkGi+RvM2rLXIrkQa9U3wvLWeoBrOG5cMEoUI01qMw73fDxGgFUNzn+dT0jnQb7WtAYudd1FJE0wZjQ6FNQx/CSWzEx3z28kgOdodi4bzPcwdiflx8k4CUAGGal9l7lVw8//9+bYjwXFQkZgnl3SbDlgRK9lwtp6dA1kHDAJf5wQvCaXHtyEuGltyUcZWP2rkF49HhhV+iv4FeC+0eA5Pmf/iZ7Fc4WCGWdbg3j39ecOlmf3uFwyQLnPRs+byQ1P1oiDxu39OMP7jvNMSita7xIa7+36qRU62GEwD+2rNiugKRc8oQI7OXqQcfvmXqL9GqWEt1/zqkM9YgrI3IOc8vBwuKFhb8PZEMbb8YxciqPB6uJK4CR4sYa9HczeV1+FhGr0pEnz8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.1
Release Details
UpdatedSept. 28, 2026, 2:34 p.m.
Changelog

Fixed

  • Attachment View/Download 404 with doubled /index.php/ (#20): on installs without pretty URLs, linkToRoute already returns /index.php/apps/budgetcheck/.... The gallery was calling OC.generateUrl again and producing /index.php/index.php/.... Delete was unaffected (relative API paths). Companion app uses the mobile download API and was not affected.
  • l10n parity: dropped orphan msgids with a literal \' (PHP-escape leak of “Copy last month's budget…”) from fr/nl/it/pl/pt_BR, reordered catalogs to match en.json, and hardened check-l10n-parity.php + sync-l10n-keys-from-en.php so this class of drift fails CI and is one command to repair.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturemERz63QfNXCX2l4kVJdDFobFQiXRNKFOiB/1A2CKc5unTUh9opAeH9UmBKVcDxmrI8J7LInY/+7lX9vWufET3LU/IOSYTZUKxWUk/KdP00gRPGkJxXJc9wWHP9c1VTsAKuGG3OnC6VoWsiZUG/YHgyqemPDj6JYpNl6y9SssGTI9+o44PjGInPWBR5DBzZGtVfR92ymMSNQFJtWFhEMBaRG/lnQFb1viORmHel/H0Ljd+Adq9nL6VB9/18/M0ot7qWN6oSG3kHtItPdLxon8ZbXsZwnOd5Uoj4PjQ9zJdllB2KovxGTZunw7IKkS2DJ2uausudF973f+fhv3k6TY0wQfh5rgIdl5VY8b0ViywC8LpBxk+w+ZrCzygyn4CYQ05s76jxWZiw04TrkJOVcVttJ0maYMva/9ITMvku5x/a25FYRKIdLFPZ6nK1z+VEfAWfpmm3BuziwNdtxNOqohRrQqCQLO+7Akp/Sia6EynjmQyaI8faqHRDEJ7H2yAzXPftyC2u/7ailP+PQf/bYyGVMTdjlK1zxDf5m2PZRwnbE5XpyI8npXKJ04q2gHK8+Zk/t98ypRteIUIHc+GkNAitXaqgpXF2Uz9d1BgXKxf+lFFY4k3RuWOyGurPJGkpvok0kK+gNBAcnKK2PjvJ5JQEKeYfkncbsYZ+0ZW4DILLI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.0
Release Details
UpdatedSept. 12, 2026, 8:24 p.m.
Changelog

Added

  • Delete workspace (#19): managers can permanently remove a workspace from Settings → Workspace (typed-name confirmation, impact preview, cascade of bookings/attachments/budgets/members/snapshots). Project workspaces warn that InvoiceCheck invoices remain but settlement links break.
  • Mobile companion API 7: DELETE /api/mobile/v1/workspaces/{id} with the same confirmName gate and rate limit (5/hour).

Security

  • Workspace delete is manager-only (private workspaces: individual manager only; no app-admin bypass). Exact workspace-name confirmation required.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureRZyzSvfPcIbXGp7KlK5Sa3Nih4lLR3zWGGEQzKtnT5UL2UD9i4roX5jCRMf+mXIjd9Hgi5DjeEy5DCB0FqVNNvwnBrtAMaJenYJ+pZ/70TeJAhqTdKIzkXyeiX41BNgqhCxcWAdV0JjLGQhDvZNumygKpJJVjtj2V07aBJT1wVjA577CIovyhMATUG3w+uFE9yeWEupzQFjsypx4rpcqbFO+aGaXdO0QJky5g/X9QmUJGNDxyJhDMWwzkq6kgXBDdl9UQIuneN+TeH0IRkFtyDFdCh75Ft++4w43R3WeAGzsCjpe1BQxLxgHGRe6SorzStCNs42hM0CHTTQeKX5Vw7wmIEJO8RksElf+HPuiv7JvhjAGDVl7DVVRDDDL72niw9SQwejCODmlXRyZrMkWa3tuqYqoD1KOpG5nXkOqLMyJbOzcXbUp3G4si/gZVG6erZjGK7OqUvikmrIbyu4Sg3smxV5CC6nw/SzLTivVq6FrF50luGW//pNG15UboXIVjQ1kRdlMcYSmV7uY0kFC1a68z2D7VAF/l4Zmfex2zquHYD2uiJQKj+aZQqktceMwMhfTDT8DSqmc5KIblDrnCSP2yRMtaniuzcQNESBveKDHPO5u7k3+k0cb+7LpIBxFwZGIYxeuIWcRaD+7hsGp9agmO1o6F4H0rAtLZJdYyJE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.3.0
Release Details
UpdatedSept. 7, 2026, 5:55 p.m.
Changelog

Added

  • Recurring posting modes (#18): each rule chooses how dues land on the ledger.
  • Book automatically (default for new rules): writes real transactions on Generate / when due.
  • Plan for bank import (legacy behaviour, kept for existing rules): writes planned reminders that a matching import removes.
  • Hourly RecurringDueJob: auto-books active book-mode rules when next_due_date is on or before today in the workspace timezone. Plan-mode rules stay manual.
  • Catch-up actions: per-rule “Book now / Add plan now” for overdue dues, plus workspace “Add everything due”.
  • Generate can promote an existing planned twin to a real booking when switching to book mode (idempotent per rule+date).

Changed

  • Recurring settings UX rewritten for clarity (two modes, due badges, simpler verbs). WCAG 2.1 AA focus/labels retained.
  • Contributors see Settings → Recurring for catch-up only (Book / Add plan / Add everything due); create/edit/delete stay managers-only. Viewers stay redirected.
  • Inactive rules no longer offer Book/Add plan (plain “Paused” hint); Due badges expose an accessible name.
  • Real ledger rows may keep recurring_rule_id for provenance; uniqueness is one live row per (rule, date).
  • Closed months are skipped during generate/auto-due so the cursor never stalls forever.
  • Mobile recurring suggestions read amount.minor from the hydrated envelope (fixes always-zero amounts).
  • Full BudgetCheck native-speaker quality pass (web + companion): register (Sie/vous/usted/u/Lei), Transactions nav binding, workspace-manager role terms, untranslated lock/offline mobile strings, glossary alignment (PL Księgowania; IT button chrome vs Lei body).

Fixed

  • Book + import no longer doubles: matching bank/manual bookings (no recurring_rule_id) soft-delete the live book-mode auto-book. Recurring generate itself never replaces sibling months (adjacent-month matcher is import-only).
  • Dev cron sidecar: nextcloud-cron service + backgroundjobs_mode=cron so RecurringDueJob runs without web traffic. List recurring also does a rate-limited opportunistic due sweep.
  • Mobile recurring UI: Start → “Add what is due” screen with Book now (wired to generate-due API).

Security

  • Auto-due uses the rule author (fallback: earliest workspace manager) under the same contributor ACL as manual Generate; FOR UPDATE on the rule prevents double-posts under concurrent job + UI.
  • Add full period (mode=full_period / future through) is managers-only at API and service layer; contributors retain due catch-up Generate (dueCatchUp + through ≤ today).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureRBhia8rvbpf4HytBK1LGXHoKUKf8F5/XUOc5pqgIlWyx2vhnxj3lACL4skjqP/jQ3HrI6jxFISuTbNy3ou+JZ0SqzsScdJM4I2nA83puVfYnBqmc3f8tZTH3KstviBoEzF+OZkSU8qZpkLH95wbnfVoPlX96PxHyTRg99+IqTmv+RpmRdvmy5yD3zW9Fsc8eaEA7IQGBJQ+FmxpXkOz1lQvfNMVAhTQVYXpqOUuz+5UbgqJCtTdvSWqYFJ9rQWf4sLVuKmz45Ih6xkUNULSl4Ifk0AxmAmokJKtaWPwdFf44OlxzE1+7EXJ075juDAimhIW9qA7gxXODyHgFiwhVOEyCPxmNRcyGDC0aFT/Lly3Qb23kZu9S2NfXpGWxOJ5usJK0zkpAQWMeWy3o6CjwrItCIpjaEc8cby21ymewQ9L1IhaTAegIAKFJkRcXa15rmPV27zYTq1aWKdjn47r/ukUhYDNiHjV1KSjEbhkmVdQYLyOlYRjkd3xu30oTLu/+HQnaapyvl1dQLDLFTC8wsQMvUERc2gmi+dxGmhqsaR1pLqjnZxDOMY/6Hyy4OQzseY9MuGPWlIBrz2juPJrZPwzgMXGkLTfzWqG8lhPJPZh/+2T9fvzDmOSbX2ZBcpyTDhH9iGq0zIEpvtpsRh97duFuZzRYPwiR7HZXM3BTwN0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.14
Release Details
UpdatedAug. 20, 2026, 10:07 a.m.
Changelog

Fixed

  • Rate limits for LDAP/AD UUID user ids (#17): counters are stored in per-user preferences (rate_limit:{action}) instead of embedding the userId in an oc_appconfig key (VARCHAR(64)). Favoriting workspaces and other rate-limited actions work for UUID-style UIDs; exclusive locking also respects the 64-char oc_file_locks key limit.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturejtnZcqBtamWv8CXoqTlYfKy91ah7eSzPZ3jtBy0xNbjmZLvkIn+LYBY7YErVce87IIyCDtiH+1FG2Zi9p1cF7jb209QhGoYNom/25pCsGYY4SC5f5JKOwm2SXByDWkCJxvhHAwccArwf8axvFEhgqDFyAuHwrwhq2oKy+eq779mshbK61JoYe2B/igitwFpn6gAVWHkJUtqM2SJHp9vOBzy8rNZkcUbAMKYQJL5l+mD6Kx8/keI90JyUxds7cyOdkQzYrOdchAQxouVycAPIQxiScCItOcUE3X21iVX75eefl/pE2TbjplUs8W2cujVPRVXbD+lFzlzF5Du4o8Ix4QZSxedtHJ/mz2DWpeBlZ2LepdOxTRUhv4EWSu43bA/klSIvA84N5OuPB3adSFj4hmLpeEnizzju6TZDPtBuX935eInpYPZwha978pgebWwNdJC0Z9nVoXCTnOX0TerDGdo+B/SS6m317/WqYAt44swf6nVthFkLnHVopWp1v9uPqCgfd/9fGNh210bWusiZlIp/SjCYV5LsEWJpCTqY3yFHs5UpR2Nuzld3reqwTwLAH2UqmaxhK0UtjDCx2CkxM1p9q+Ng8qjZ3pbo0OXiausGQhAQvGAsYbB8enndrM7aFViAw73e9qEicCdrCU6S3qwHfk7F8FNUrXWcdZb2TFs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.13
Release Details
UpdatedAug. 19, 2026, 12:53 p.m.
Changelog

Changed

  • l10n glossary alignment: corrected wrong translations and standardised button labels across all shipped locales to match the cross-app glossary.
  • Help, Support & Us / Get the App: WCAG 2.1 AA hardening and translated footer copy for all website footer locales.
  • CI: collapsed GitHub Actions to a single PHP syntax-only smoke job; full test suites stay local.
  • Nextcloud: max-version remains 34 (current stable 34.0.3).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureKF8mXEc9MgF48E56sXCmKhkyiqNM5koXFya1Zw/+q6j2US8tOGSOpqzPL+gw9tmfRqqoSkDa4690h9x+HpwS4ARxNVx5A9Cks9WmD1R+mu/7+IT95w4LpRzu3X59keQjmzhQNmVWY+JsTZgqWpb+HpbUGPl0JBlWv4x89QazF5idcpsxtLjH0jLwm2SC8z43J7MxNQkXJLg6Fpglu08PTiQvyP5zE9TZMvPXByNiDKYQLRwazbPmcVVyj8lICHRR2yNirGjM218MkKDgQRh0uAk0tFWIPucPbh5dmeo7Fyszhef/7O86JMSvz7Cpm0kTcGQc/cihsM1j3fAoP8xbmBGoBesfJK8UKs1JJ2bCWs3T4r2/COCmpR3XP+bdkS1tmnJyOb1fJg6aWVJ+HHew7I+P7P1WkPTyPLehmrtWs9Tkb5sLqs05bSsnITod9MX7i9CjZLCFHE+C9+4bctpN7Ke8bX6eWwXTTxaSlwMnRrMBJDF509raxvTAV9Rqgz1ngGAMOK6Bv6iuDd9oivbWyV2ALoWLJR1dHWbZ3eFD2BKI61/qwkw7qI1DXzixYQU3JGh5YHYgxTkJVnlwMifQ4ZE7OjO3Di867M8Hf9doxWl4q+vsrF03VZ8Iks7bqZt2uVjtfrrneAaHGmR+IXNA78qmV6tM/rq3wlyuAJ4SKN4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.12
Release Details
UpdatedAug. 13, 2026, 6:17 p.m.
Changelog

Added

  • Brazilian Portuguese (pt_BR): full UI catalog (l10n/pt_BR.json / pt_BR.js).

Changed

  • l10n tooling: parity / regenerate / sync scripts recognise pt_BR.
  • Nextcloud: max-version remains 34 (current stable 34.0.3).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureaMkiTQWHmITycarjcBAt0G2h8s0RPUm/U2tf96ihACsVnTokZC/ItViHinstNNuZJtgz21ZFsJpKpKbLG+3gkcp0j3nfzQo5fEFMYiYi6cS8Yx7bdLNJcHnSs9bk16keklP3QgOCDlF1eZsd/Jswc+n8IHgbQr5eMs6/ZFdHGYakjsjj9lmWqgNRmwTi0fTCz/F4uNuxSi9GsO/qbmUO2gsb/6QZ5/RU/4SlMoSBJW3ded2HAB9WLN/3S0O/U4XJMCJJtZyOmWomxPxOIYphJ0BYa2gNNTnTyK+HwnXN95bAHBFS9R8Me/craNL3C4tnE0WqecrBJQZif2sB9tRdrt4QSj3eHFRdBdUOPHgFTgvpi+TjQYySmr/02bI1uZkBUHk6FD9cXI+HxhMcJDknSDzy/QJMlUgGovPj7sUsO9D/UxrR2g5VRWvA/Y2isuKUrDr9+CXLy1amyykTkSWZEDzBCZzv2C5gXf5ZiRNf+BNJ2zfYMpuF2VR059M3SkujQX1t4Dqs+193LZVmFfk97FecY5rBiWExLjzWxS59r9LrzKyY10zwi06TvcAcp+JLnH+tNqewOQbhe9wciwVfPJtrUvZSsvvDTtl9f7pSKR55zALlGw9bGlVz6nSIG4C3H/qsSqZC8Yb+mYtwcw4h9I5sgcTG82YpZ66avpkYil4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.11
Release Details
UpdatedAug. 11, 2026, 3:06 p.m.
Changelog

Changed

  • Sole-manager private workspaces: converting standard → private no longer requires a second manager. Demoting/removing managers uses the normal last-manager rule (≥1). Groups are still forbidden on private workspaces.
  • Confirmation and help copy warn that if the sole manager account is removed, the private workspace cannot be opened in BudgetCheck (host/DB recovery only).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturegjXXGvbwEbbTdq7kgLjYqKg0JRbdaJw9jKeE71uaMMThX2VsWWsP+OndHFRb7pHWdnGwhyRYIPr4B04+dDvHpvu2WH6xWFTjXjY32QZaHNG5AZMWQQbfECgKPZQrTa+p363VlQVsnPrLvDA6svHzMxZbaSELBJugxvuBgHIWyS5lpPJIie01bPxsnp450m90hW6DDaF1FcBG69GLpBOiJ5uYh7Q4WQSSSZ/fuMlSy7vyefvMpfNcWGwUf/miZ1eZ0FCjy4o5vP89tE4UEp2ZdVTC++qeCBzOKa17casmXfH/YVEkS2bRACogRttUdwncd7UEiOpo1WHnaiDFXn4Z1ssCytxghVqQ2LHeVVlRu0U+BAtHzHB9WLeqYc7rRHzQjIqDj5tiZeOYr0s9GZjBQD+VHTiIUkCAxf3ZrN57YIsveYDrBwPt6z4lDL/43vCw5BGRS73uff/bf6S4PoR3vDAsFRRc63pu5uFBoz29Z6FqXePmchyHVA5IQ/4V4icxjpmlwNIPIIbm5K2gPgmsjRqGApaGBVFIpxTfeoAvOtrdTu7l8GSYD3oe1mNh/dCIeJZvnDiABtiIJBPm9ZYOisXPDWFRx1Nj6A0z+2FpKXUODMcthm+0bE/eiyOcnqHVHE7DVxxHclX/rxFHq+TYJoeUdOZURQAyHtvxck5e+qU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.10
Release Details
UpdatedAug. 11, 2026, 12:44 p.m.
Changelog

Added

  • Private workspaces (ACL confidential mode): managers can mark a workspace private so Nextcloud system admins and BudgetCheck app admins who are not members cannot see it in lists or open workspace-scoped APIs. Host/DB disclosure is shown before enabling private (not E2EE).
  • Create rules: any user who can open the app may create a private workspace; standard workspace create remains app-admin-only.
  • Companion API 6: mobile clients can create with privacyMode and update privacy via PUT /api/mobile/v1/workspaces/{id} under the same dual-manager / no-groups guards.
  • Web and companion UX for privacy mode (settings fieldset, create modal, members group lock, Private badge).

Changed

  • Converting a standard workspace to private requires ≥2 individual managers and no Nextcloud group memberships; private workspaces allow individuals only.
  • Member demote/remove and privacy toggles serialize with workspace row locks to avoid last-manager races.
  • Favorites / last-used and admin digest surfaces clip or opaque-count private workspaces (no name/id leak to non-members).

Security

  • Private workspaces skip admin role bypass and group-role inheritance; non-member admins get the same denial class as unknown workspace IDs.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureWhCpil3i9Z0He3TlZK+FGVFid4GI5zR0Vdls7I1Vbq0E2nnE8n2co7EWDV638oB3KtxhuZwPH1iCmah2/QiXFNOalLi4RgYt4/qiCorZHhiqT89awIU4C8gZXh4PqrXrrYgWPwEdp+IBCMMT0NcRCsgju1Cv6FTOPa/z7VwT4xqOdidxBtxPJYL7aO0TvFASCZ4HJdxv4mEf32pcW8TgTeGF+/g3qBW82KYyPCacUrV29JdLkqnj+6HuB1Oo3LHekYviPJzz05+14otwhdi1shjLefBpUfvEIQ2130FYHalkfGdnm0MEI2lXLnaZxGKMn8m/FsnLqvAh+p42zSigtljelqBnDzrZKlPDf9mPl2O/VU8J+sFoShSM7IdBcgFDaQ7dL7VMXnImkfvuAg7M1OjM0g6DdUaVDW0Jxne2t05yS2Hxi31K5Mg9p5FsfjoB1LacATvytDou1i+ouMGDD7ZZ0PWFKGSGsVty3I/thH4YV3IbY338ZPLZR4aPlbOLC6i7jTm8E4eEphMpTzyYjuFN+7HP1kZl6mco4bWcd+r4cmdGwr861+VrT+13SM8rm4UkBtDbGWEj235LRmrfFNWJ4gViIqVv5BWNHrrvav5cwymAa0nMhDwjy7a4+FWoUZkO2lmJyfroBKIrMUVhFLrjqemRcTu8FXZr1bxIzLg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.7
Release Details
UpdatedAug. 2, 2026, 12:14 p.m.
Changelog

Added

  • InvoicingCheck compose strip on project workspaces: soft deep links to create an invoice and open receivables filtered by workspaceId when InvoicingCheck is enabled (settlement stays in BudgetCheck).

Changed

  • Uninstall: app removal still drops tables, config, and upgrade-backup snapshots; receipt attachment binaries in appdata are no longer deleted by the uninstall repair step.
  • l10n: Locale catalog refresh across supported languages.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturegP4ofTR/qlal+6K9My5xoUmt0FhGFmXag7i+yq4S9WIGAEHR7fvqBft7dGs9aWGnP/T6C3NZH4Zae9oeGNvai7NrdliV+46/mSiWToveHQEHXZST30TXC+YPuyqw0VsBB1tK7AUw1Xefrn8pdM3xN+c/q2f1GnYixAzeV/5+CStS+AdVZhm91V1CdpKHvlSJDCQCyhjWR3WtNOfFifVTQZaqhXdYpJkvW+YEnxiElKHdWUNwdlMHzaetX0sKmsCzlH/6/TvOTe/bhRYoREUhly2F5HVVNU4qM02gqe+br3MtseB+Fwxz8nHhbcgr+H+HbQdRNdpGL+veq7wFeejSKGpcty5sYRf8cUKOzNuezfxVe0QJG/v7ZC2cUmOf8YVxQYAAgumU3mOuZesfKwa7J9pXAM1FgFin1Nub1IMFRCkvdSq8a9kRS48cIlFRijHHAz0uUOWVR7nRGo0lmpASmNZCMNm12cwnZ9cA5i0KaBKtyj+UaF0ujG+AX9PbDjgDkbwRakcv498ouLub78ruRFfloQOBsWhyCQZvmUs4qM58HQQXf+D0kIdHCJd7BuNS5xRSEXtWboR/dA2cHkOtHjRVHxAGHq/n4FTN714eK72WXXIGn6lWN1in/UnOv3tA9TJDxBghDDuQ7A/iXaQeo8I3Avc3OnIpxD9HW7cQFYk=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.3
Release Details
UpdatedJuly 31, 2026, 12:19 p.m.
Changelog

Added

  • Mobile companion API v5: workspace-bound attachment download/preview endpoint (GET /api/mobile/v1/workspaces/{workspaceId}/attachments/{attachmentId}/download) streaming receipt bytes with nosniff, no-store, sanitized Content-Disposition, strict CSP for inline previews, and per-user rate limiting.
  • Mobile companion API v4: monthly/yearly/period glance summaries (scope=month|year|all with new household span aggregation) and app-admin workspace creation mirroring the web permission model.
  • Home category overview chips now carry a direction field and include income categories with activity, so the companion can split spending and income views.

Security / integrity

  • Attachment delivery for the companion is bound to the requested workspace (resolveForDeliveryInWorkspace): a crafted attachment id from another workspace, or from a deleted transaction, is rejected with an opaque access-denied error (IDOR closed).
  • Year/scope summary parameters are strictly validated (four-digit year window, whitelisted scopes) with 422 validation errors.

Fixed

  • Mobile transaction list shape normalized; home category overview no longer drops income rows with activity.

Tests

  • New behavior/contract suites for attachment download (workspace mismatch, deleted transaction, rate limit, header hygiene) and glance summaries; mobile-companion mutation harness extended (attachment workspace-bind and download mutations all killed).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturebPl++SnvVgKR2ZNLiI0Uygkc7wvl6iWaHfDHRxnUR/TobeB922BmSFEPmN1Qv0p9fR5bVaUF4SeiAJHtrMYw+eObLFqJYnaT4roPs9t24V27iHpxTh9Xv7xuluRN4O3raiBOYZHqVWCKAR5Rh/LJ9ShYt0iq9jebrCMcR5SdsvoV7levLs5yneA5laWT9mH2KVzfZF0EpuuPjhuCHYBI9RqxE0Ls4C+aFE7b6prvQUIdC0ZtjsQrJecbh3emj1oqID6IyK54XGFow2myMpVXk/LUorVIg2LOZwysiWMPrM/GURu9J4pZwJlS/HH+He1UEEGjl1b3P0LeIDSlTSTbul8Z+Ry4aHdes807kfapAnCN1v8nkO6mAXDo/7s6uY1HpTGu6rPh6sW3oJwFpbwLDtIXC6MyE9pSQiyazY4F5VqCJPwIKhSdBTCZ1cesb7xKJwVTw3w/mzsVZUnhqJ+d6joQqRosrMzsTx4UanFZoMJQ7MWlPcdZuTTZ0PKRQmUAR9WOyyXB3mezKp0emzMrDoCSzTAZ0RXVnPqUtFMaMVk4P7GGNqN17eSwGIc3byfdlKCFWB6oWPTUYARvgo6EmrSmftiuuGLIoebYpUe2sUobIfnqQJC/0UfXDahk4nWsC7nugqPznyCYcq8/nHnAcCrJTJ127MSj0TOOPoiPtH0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.2
Release Details
UpdatedJuly 30, 2026, 9:22 p.m.
Changelog

Security / integrity

  • Mobile mutation channel now requires a cryptographically valid CSRF token (IRequest::passesCSRFCheck()); forged non-empty requesttoken strings are rejected. Basic/Bearer app-password clients are unaffected.
  • New exclusive workspace row lock (SELECT … FOR UPDATE) serializes monthly close/reopen against ledger writers: snapshot summary and hash are computed under the lock, and budget-target and attachment writes re-check closed state under the same lock (TOCTOU closed).
  • Budget upsert collapses historical duplicate (workspace, month, category) rows under the write lock (NULL category_id is not uniquely indexed on all engines).
  • Attachment overwrite (receipt crop bake) snapshots prior bytes and restores the stored file when the DB metadata update fails — disk never stays ahead of durable metadata.
  • Adding or removing attachments on a transaction of a closed month is rejected.

Fixed

  • Layout overflow hardening: cards, warnings list, and empty states wrap long titles instead of widening the app shell (min-width: 0 / max-width: 100% grid constraints).

Tests

  • New snapshot-close serialization contract test; expanded update/delete CAS, mobile-channel, design-system CSS, and frontend-hardening suites; closeout and mobile-companion mutation harnesses cover the new gates.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureChoGVud+Ib2oIeGvpp7sKvkCNnQ4EPRRWBogTTNeiwlL6T+XUFhtDOOU9b/kIVdS8YQ9n3aakhtYjnduHhtfE911hmilt+H38vrqBXGssRTq3kw6HiKzCP1YYh7V7Qs071GP3Wzj7+RzALhwtUEJ4AvIy0YqiDZ5Xnvhy1PbYq9jUMTm1BCW3CC0XirqFk0VxMaN6L/EeSkuN7T8m2vSSL779eUmzjC3hvCz/iEsDhqFP0dUgU6I8vKjWgceEEYZAxsSjj8kUjKp1RD6lhhKrKogOe5Nt6KEMBDqpYREUk6k06CDs7c/npSb4MJq0/Qe6jblININ1qBJABBhTemxlQKjmOH9plpearuFX5Qw0CBMmZkHPCf+x8Zq+3dVnXpLCaWL6zeHbbChDm/EqOIgPDH8mWxrnaD9c2oJ8X2G06dTlv8NOql7aCViRxWH2ufwrgQmxqUycpIgDSyh1P0jzhFnSd0GD5gOjIhMyaejoWOBKCk9yaqSaW0a8Aw6Esuyxqnk+ttfVjZAOscWM/0Juxv7oMKjv41tWvXyaaDOLCVGbfkNxD8jDG0awmYB5bkj0GGwMnIY7jbOvOesX/NPSoB9cWzGjSyx6hz1GARtygnhD6AxT79ZcFsq6b5pHPg75wRO7IPYkLiwhPfWFiqKTnAQ03QdUb5soNG/DSS9C08=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.1
Release Details
UpdatedJuly 29, 2026, 6:36 p.m.
Changelog

Added

  • In-app Support & Us admin surface with Partner CTAs.
  • Public billing facades for InvoiceCheck (BillingReadFacade / BillingWriteFacade, including paid-state handshake).
  • Mobile companion API surface (MobileApiController, capabilities, idempotent mutations).
  • Playwright shell a11y smoke and epic-gate / closeout / billing mutation harnesses.

Security / integrity

  • Transaction create/update/delete optimistic locking (version required; CAS on update/delete).
  • CSRF-required mutation coverage; opaque AccessDenied IDOR gates.

Fixed

  • Budgets navigation restored; warning recovery actions aligned with Dashboard.
  • Money envelopes include decimals (zero-decimal currencies); header month follows selected month.
  • Transaction dialog horizontal scrollbar; GET favorites remain read-only.
  • Uninstall cleanup limited to upgrade-backup snapshots.

Changed

  • Nextcloud compatibility 32–34; version sources aligned to 1.1.1.
  • Stabilized money formatting; dropped versioned asset filename suffixes.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureXbCeU+/vuAclh5wvS0JC5CH4LMVAOIyAwV4sspNFz28RW2FR87rromn3Mrz1deVDb0WVW+VbK3fH+3LhfknNjpQcsn8T4KCQKL5ZuQ+s+ILwRiDZvXk8yxxCbppfmscaV+Zh4G1501nUrgRceLIPNQowpY+/TlYtfl4jXVMlZTX9cp4PJo/orJpOaV8c4HhSdlpZNAeNSfnbr4WipTqJKUs2p1G2Ixc+mhiDyEO0q2TAJOyYlGiC+xXdCYb0guB20MsP30hYUZuhcEQ84TMnnnpfQtR3V2XD4K9jJbmrK/fMdnad7XVCQRpwx8sLKv3+PXfcIgIvRoLD6Kae1Liqry6NB/RFMPQNiwyEJj9Vbf/P03QZGQqVYIZdNgRqCDlNFEvJXOsuHrauvvlOmqRYP95N99LYAsBAwKvSRM1S5wJfLSjpFQlgb7//guTEfAWnIxEnSaX8ZQmlPy7Sqi4/Z96jWm3/jSD2MTJExXXGerHW1ap8i1VoOeb8FkmiNM2anEl/LBU1re1mV08zSfA3GaEmnl3/y8pj/BBiKKgoIGOWVCAlEgzVJI5hcuYUagAAqYN5guddRbdUq0Zg53ITHZXeZ6U/cYeSTpz0itk71irqZ1dkGJMGH4JjfpDdeMFH76HgN2ebeqAB9fMcWxfJ+//KFV9gF7HfutB1OVZWe7M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.29
Release Details
UpdatedJuly 21, 2026, 9:38 a.m.
Changelog

Fixed

  • Monatsübersicht (Kategorieverbrauch): Der „Include one-off (special) transactions“-Schalter wird jetzt für die geplanten-vs.-tatsächlichen Kategorien korrekt angewendet, damit die Anzeige verständlich und konsistent ist.
  • Audit-Härtung: Monatsabschluss-Snapshots (Close/Reopen) bleiben weiterhin kanonisch und unabhängig von der persönlichen Anzeige-Einstellung für „special“; dadurch bleibt der Berechnungs-Hash deterministisch.
  • Robustheit: Wechseln der Anzeige-Einstellung lädt die Monatsdaten konsistent neu und ignoriert veraltete Antworten (vermeidet UI-Race-Conditions).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
Signaturel0osK/Bj5kcr5p/8tYUSbJpiRiBig+9CGJOMjQlMmh+MKqr1S/bPlSjd622Spwb+5tAblZ7u1kaADfimHiN2r8+jC27dFXsR6NDhToFPCq0oRJjrtKCWdNBK8BLnyl6zOXffq4k2+BT3Yv0oBBeEfvK/WV8W/Z/ycvLQdkzBeISt1mjKd3zDJmELhexIZbI3QEka0kG1X9oH9ilb73onO7lifi3b+YIifDU+KD0f3NKoB/C/zy/ZQuoSmNEAoZk5S5dU8KRgp38KSMNFDKv/pOt9tS3rIP7p57EIKqiEEZkBRykayQ58sl+5jzI5i8AGDae8rwTQFks01VFCYy5Ifp+fGevJZ9h0V+sRNu7ZQr32+Y6tL3Xiy1KdyC6jHQ9UOlysei5G4Y7C9E343MeuBwgPw70TzS/k/bQ6eJf0JvU6lXAb+zU51IVVTv0R9rFGltgpTxRieXnQ483AtLfEaT1viKyzyxA+z/AHpsiiKULFS7ckP3/qiTViPCU9yUiGa4Ygu1ODk3YfUUNBIutQC5plsGX+qai02dCKg2t7+NSibe0/D0FQ6azgn3Qjt2jk3HxAna98CEM54W+GsMXiIhepWaM9YWH48zk0VJQo2PPLgIteXszq+srI0KqqmRB5bvZh6MgRQzsXRE0nhkfRZJOkXMbR7C6aM8MFxpUiZ6M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.28
Release Details
UpdatedJuly 15, 2026, 10:26 a.m.
Changelog

Changed

  • Receipt gallery toolbar: grouped controls with tooltips, clearer hover/focus states, busy guards while saving, and a corrected rotate-clockwise icon.
  • Gallery translations: attachment gallery strings are now translated across all supported locales (including regional variants).

Fixed

  • Upgrade backup: snapshot folder creation failures (permissions, quota) now surface as UpgradeBackupException instead of escaping the backup handler.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureCEknFDwanggvbAJ/Fz8uGVeqYbUtxYQQDdyrWyOL5Zs9QbkFkSC6T7UICLyZAIXETUi04gP/wmZt0IE57vCAPqEROF9J4wXoclEu4J+9mjgPd1EXVz+8AhtVyqoqdfNk3iwOkTum+YKcN9mnZ0iH+LuEa1tVoTPZdyW6+ZKb3nf6h/YNut9oZzJ5JtNICKluG/4TmCQdNJLU84ItrfaVb+u6+UPkBb9gFfBkpqhkEBiqo8vHjLdZ99Hkp0HhFd0HtCnvNuV7KHPj0tjfY5a/XHZxiNN+OACFrCDhhB8S6XH0ehUk4lKwsO3h+/gb5hoNKALZqOZAseubbf6Cbzb6iU6eQ1/TLXLdQV2boY7Pu/7aX9AwWm/6AJb0504fYpbfREhW0vZZ3tyx+VuNq8H+brT5Saeftvr5Jsl5QmF/8srIpgPURQSBebs6pV/uQGMYoMXEIVt51Tk/EljQDDzZZ1IVW/QSw2HiSvfE+AB8Ge6uCsdDTP7mb/kdbhncpiWluG6pSk1WCBwmWGnmuwcNZGt+TMtLgp7Q+xRJw1HGIaBH7t5fvostGi9FVVTD9ZYVU6Ka2udAcmFWmN2Hh42MPrmBCig458wH0qJgiii/o7K/YBvDr+FVxxo2pXieDpzP46DG1Msz4KSjaA41Lhu/P8HJc5UjxrRrNnMtF7Tqw48=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.21
Release Details
UpdatedJuly 11, 2026, 7:39 p.m.
Changelog

Fixed

  • Planned entries in summaries: dashboard, monthly, yearly, and close snapshots now exclude is_planned placeholder rows from income/expense/budget actual totals (they remain visible on the ledger until matched).
  • Recurring generate: batch generation runs in a DB transaction, skips duplicate dates idempotently, blocks closed months, and deactivates rules that have passed their end date.
  • Budget planned sync: month sync is transactional; zero-target categories no longer throw a misleading 403 when no budget row exists.

Changed

  • Recurring rules table shows end date; modal adds active/inactive toggle and stronger end-date warnings (live region + save confirm).
  • Yearly month cards show text badges for over-budget and closed states; recurring action buttons have unique accessible names.
  • Modal focus lands on the first form field; dashboard warnings include severity text for screen readers.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureQoo/mwZxj6Unhvj3lnfhebu7g2p3HJDcos5kM0OXkTGvw67F42c3UWevVN3JzCzX8BHvLRjOUWqy/4sQVZoTxNvtSt2bzC3b+oqTXqmWaWzZQcypoA43+JCKUcnIQlhj1vJVQNIVtps4zsQs/DszKUdTJVL7z2AsAIWsDAQm1xCHgkAd9TmHeRQn1ZLocQurn1RZj4Fau4JfUAPG+DiPu+QsDsMS1CAVCQtxPPGekVW7JNmFIdvdJ2uZDvRbg90j5C12i9LEj3dHpIYKq5uvCzfMq2k3qf1m4XZAJmOlFnJtHKOlIZzHFnsh1FjCjezfGmIh8uhMIocbPtbacbhLqoPG/kM5IARJwiKxxb0YNfquIx7kxw9kRXeX+TVpo75g3FhdzY4SABZ8X9kmJdugQ0r1BWIYdahKBOuIe/lzIJPdNWz92qEf48GIb/Ly/Ts5fjElwKMj3/J2kbQ5a5zfFwvIRo+GzbfUD6tGgPen6UFQjHI6Bem97mHQKNF/0QJTCnMVZjxXxgzaVeYEr+2MUJWGa/wOKaJSx+9yXe2+kC40XReOX1fYNH0KxtafxWNeAl0i+1MBNuJ1oA7c2kuK2uAudXrpiHxLdCfqP0YjdIHEU6BsE9e/8eilzA/R2RSpBtXaeW6wekCxkx8BcSU2CKJDR3CZy5kuKfnZFBd9fP0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.18
Release Details
UpdatedJune 18, 2026, 5:48 p.m.
Changelog

Added

  • Shared transaction editor: dashboard and ledger pages use a common inline editor for creating and editing bookings (transaction-editor.js).
  • Dashboard quick actions: household dashboards show month-scoped shortcuts (new transaction, open ledger) with a compact recent-ledger preview.
  • Transaction title fallback: blank titles default to the selected category name; unit tests cover resolution rules (TransactionTitleTest).

Changed

  • Workspace settings for all members: non-managers can open settings to view workspace details and personal planning-total preferences; managers retain full configuration access.
  • Transactions default window: the ledger opens on the current month instead of all time.
  • Full translations (da, de, en, es, fr, it, nb, nl, pl, sv) updated for new UI strings.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureSKcpYI6Eoom+8ISjGt9olvRkXi5uY+QOvPyiZdsD5+8o6RdJ0XvD+/j8B1C5R+3UA1dvb+7jp0X2I71rA+hdZfYWNad1qZ6lAalok63N23hLvqRKJIeZhV6dTrBLY9l57sDTckB+B+ajh4+bi48OzG8PiGG7edPRtWz0SRqzY1QP0p3IAWJee8hg+5LQfW3C3jlG2EUgFiTfQ9eOkJmlAvBCQzEvW2toaU1iAvpkyG/NjNfWvJDwHp72SQ49TvqKQ45+8h3K9d6ffgi2MQ1vVVoFseAOQ+PJxxwtk0DeR3DXLlcFuMx4xbWJsGYIM+JB/sIY3iSm4H61BQEpyV/nymfBh7eHN35/gh6zw11WlA5v/nuuFIEdkFHT59wADDBpB7T7NuuSscZl9NQ8ImiTarrKaYZ21O/iyvStevf03hN2yRwlbtjB5bvykH6MBD/K+tC/jZSkMehdcjiKuDMDnaeH8LVoK2EX2cW0AOPPX5RYv5MOd8no2d10YmSVWUHXBXMQo9T14fV1y59FR6y9sSH4kQstHoo7fKS+OovZxqwWolTWG5EnXKvpaLkiGx1FZsa6IwoEK1foDzBa981WCm3+m1fmIdXxovUERQWypvQEaITDrtCRZ+J/x8A5FVD+31zVwuMmhKdR2Jl/Okya1S5vFtN7wdy605iwwHttx9M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.17
Release Details
UpdatedJune 18, 2026, 1:10 p.m.
Changelog

Added

  • Planning-total preferences: special transactions can be excluded from everyday planning totals by default, with per-user, server-persisted overrides and a manager-set workspace default (SummaryViewPreferencesService).
  • Savings-transfer and planned-entry aggregation: summaries now match planned entries against actual transactions and aggregate savings transfers (PlannedTransactionMatchService).
  • Dashboard transaction notes: transaction notes are shown on the dashboard.

Changed

  • Special transactions are excluded from everyday planning totals by default; full translations (da, de, en, es, fr, it, nb, nl, pl, sv) updated accordingly.

Fixed

  • Unbounded household transaction lists: household transaction lists are now properly bounded.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureizvhSAXVAauNrTd1+XRSpET6wvlQN+V/CwKb88U7Scaao2Bt9p+/4aBovQ+PFVoQpVPSOVWIh3iNQp9xN7jcEjcsJG3i27yJbUpLhZC6DwHTyylC7aoZ1LTOckdKxN7AZcHJuvkX+QuAZ+Z1qU7WBeFbEPW/JAy0zQ/IwCydAOpxo0IQviAIDEMG9HVpsDTHdzoyK3k2TZRXW2gPcJBh1wNiilvIVYHrWcPBpBkJyOUGU/6xjwgsDy7R+U3cPohcR2aqRY8rULm6QAek1hJK011QE83phikMlb537ykpgDRfaJCayV+4LIAwtN88ByCHZ6Ie0reJaAKqKB5KgMAiz6tLfn36gRBScL2L6jixzBY+HSizIXmPwLoo00K3F0TsGhdEhJjnkLSugZKywvKO+pt8D8zn6WEweJn4Zus9ROutUzcWnxouavCmkzIc92FCva3j0HwiZYz4ZOllZTjBAIk3cv1VQ3ZpGnd5HNY+IpcgRzZIY5yp+j6MDWrFXxJZhXpqK+XYxR34LNRKcxqHNlqzgWGyGvD5x5jmWF0bQK7fiU0SL7J3MaAHnU3xogrrnajTVynDzOUhU5tVupdt9u6+yfWMHoMpLFCOyr6Tt2wLQw0+Cmd4UcSOow5cEKVBKZhXckiHdd8l01jl5d4tcKuQrfAm4CljZkJxGYhNyTc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.16
Release Details
UpdatedJune 16, 2026, 8:29 p.m.
Changelog

Added

  • Import preferences API: server-synced CSV import defaults (ImportPreferencesService) with unit tests.
  • Transaction import hardening: UTF-8 and legacy encoding fallback, fingerprint-based duplicate skip, expanded reference column aliases, and higher rate limits for split imports.

Changed

  • CSV import UI: remove bank-type column from direction mapping; improved import page layout and validation feedback.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureNf9PlBV/1o8mLcdOG5YFSu6WMNOphaZXMRWnlzS2crVtJnR5hLLu3t5fd1lHaMMFsmPLxOY+wBWfqF1DMfrVWqZiP9dehXka8j516Q6CprOO7NIqkYCzzuTJ8FbfjqGZax9Q2w23fZkoQ5xwIPwEVH+TbzOvQdwbjDo5UB2eRyNu0v9VsUkUq5j/WSQ0GI+wEeQ64viKjM+SqXsjtF3Hsr+fc/IUYZ5U5sECD/WMdG9joDaD21uEqsE1hmjeQhnzewBu88IVEtxrbONbiLR+DtcVRbq3qvckgI70V47B6GAfwAPbwhgX72LBypRWeqhHbMTI0OiLsqIUjA5XJjSUXx0jZkAuNacWA8aeoFKPq06Kocwk0NO4XlG79JZV1pZvw05ndkUDc12Sf5KaivoD6MelSngw+oTOlPB+Pr1o3QrXmDo9hJKvXTYj8da1J6a0dFmedN1+BSG5iXmyR3WsohFZ+9tM/jMW6Lm85ad2cWMBF4saYdsKXlpiBr2URtZ/4MERFGIFjdcM6uiM6MJ5O2+thEwAcB7BRoAq/EAHr9EZBhznB7Xs43WiPm++pPZltzCtfh3BA4eLKW5IeQ4Rt5orvz9yqdRarh8bxJC79oIZazdPzGObVoicFMzULPuTLbG3nvI2b7h4vxvER/ZC9BmsgimqPG8rz0by1A+DfJA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.15
Release Details
UpdatedJune 16, 2026, 11:32 a.m.
Changelog

Fixed

  • App access permissions (#2): users and groups on the directory allow-list can open BudgetCheck without a pre-existing workspace membership. Workspace data remains gated by per-workspace role checks.
  • Group workspace membership counting: only honour group rows with assignable roles (viewer, contributor) when resolving effective access.

Added

  • CSV transaction import: guided import page with preview validation and atomic commit (TransactionImportService, /import, API preview/commit endpoints).
  • Unit tests for AccessControlService::canUseApp() allow-list behaviour (AccessControlAppAccessTest).
  • Integration test for AppAccessMiddleware deny/allow flows against live app config (AppAccessGateIntegrationTest).

Changed

  • Removed unused DENIAL_NO_WORKSPACE denial path; directory restriction is the sole app-entry gate.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureHZouyTZ5hZqsPrzxtw1wrLWQGIf+JewhQ82Ie2DcoTq/9Y6N1wrJ2NdS1Qi3LxrgwQYS4C/O+Rxbpf4d62cOJEIZ68/madywndUblrwSW4KXRURCzc3yODL/ol9NUFyrBFRkLvZ5L29iVVLkeny9g3XNKpaA+iXWFiiDNrHm48pbWtoYe76r0CO1S+oEt3m35U/YfhgkDbaBPSU3oak3cMZyRqBtnbs2jlGTu68ElE0Af77OzoKlx2e6/18J0dBDHX3yFJvkJnGXKzAoi1O3aVPaz22aXfvq0wTIf9uWo8v2ZA90PiOFR4nFpEBmx7g8bcmpEkFhwhPeeTYlYPsmkSy+9hncFX15GJff2hQVff5rjs006M4JY93yV/Kk7glu043avNEfcnKDXXN5dtejEMpuC8V8oZREnHyqbXslQ228DHwv6ui+XmWgYp6+gkUA4dnGVi/lEzpPMLpcXrVBV3qcoTukMR0z1R6O7VyErNVzNlxTezs/5pIMJ4lP9nWPwV3CNIHnO7TIkBm11s393rOQO+3IT467quMhSCTj6dcxkKWp/tY1CTYH1BWpD+/aQ7Ck0Z4kmczhZuPw5vndG77RFB1tHLOQfQ3W26DysmeeiISeYPPYSIlaotxkjQhyeuVVfi2ejm/zNokwsMUsqT5lH4u87KO2G632khnvkX8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.14
Release Details
UpdatedJune 12, 2026, 3:01 p.m.
Changelog

Fixed

  • Data loss after Nextcloud upgrade: UninstallDropTables preserves tables and settings on disable; full cleanup runs only on app removal.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturePjqj9ukzex/oDxEZ+z5so7SXgsV5XiuivULYarakCc1QdgB6uun6YCgj90RFP05w4drljrSlIHvqfyWUyqAtDo0fRtWwclgI5RROg9CmEaCqUITOrEtasJVmQwIXdnG1GBGeykF9C8x3W+/vJZaVOlPrzpMmk2x7xjlq62LR+ez4j1kpjO15KA/hqAkj7yCGC/q6h7/xkEImpI1N8EDG/bRjHb2o5btSLpBetMdxKbodkMOHlLZoVI635RBf7JznCMN0dlojigvESsBsTYaoIw9a0eNrA4SlfIV8bjAVpLG1jjMp7Z0reVYJ4bzK+HY0gh2UOzfNVjg50bovOunmh+REpMRuIWwQnLgiqr53xJ4kr8E/dKcAZWz/rvX8QhSM+hXqqRvUm6Nv37P4H3EbSkNxW8D3H5bzgKQQLc150ht6hlBpRSSNz1mtYf/RRePnfD9hkhxVDkVAMRTqi9C96mfc2W/xtwxpdzx4m1CI4DONCeG4e0PnmJBqMM3xj70pxBapy5dcxKmGp1SkbnKWmCzNTDCAH8MF4WsMg232t47UDSipU+H6wE64+Kqy6RquC/7Jpq0RFun5jrnp69pSiJ+bNeh7ngJG8RrDkgBYmx92AbTgcOFPnFoxYGl3evog8n7lAfjbE9WE2asQOhYlLbhOSsAfTEmZTicciKrdM8g=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0

Nextcloud 33

BudgetCheck 1.4.8
Release Details
UpdatedOct. 12, 2026, 7:56 a.m.
Changelog

Added

  • Simplified Chinese localization (issue #24): BudgetCheck is now fully translated into 简体中文 — workspaces, bookings, CSV import and export, recurring bookings, and settings ship a complete zh_CN catalog. Thanks to the community contribution that started this catalog; the remaining strings were completed and reviewed for terminology consistency with the BudgetCheck mobile companion app.
  • Plural strings are now translatable in every locale: the fifteen message pairs used for counts (transactions, recurring generations, import rows, …) previously always rendered in English. They are now real catalog entries with the correct number of plural forms per language.

Fixed

  • Literal percent signs no longer show as “%%”: a hardening pass had escaped percent signs for the PHP formatter but also hit JavaScript-rendered texts — labels such as “10 %” or the VAT rate would have displayed a doubled “%%”. Each string now carries the escaping its renderer actually needs.
  • Corrected untranslated and case-only-differing values across the existing catalogs.

Changed

  • The translation checker now validates plural message sets and percent escaping per renderer, so both defect classes above are caught before release.
  • Maintenance: dropped deprecated clip: rect() styles and cleaned the shared app-feedback regex (fleet-wide sync).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureTQMru9+Wp6/V0JioRdxKdHLr/cVdKaa4zmdHX0qlqzJVvaY6VNHk4cccPbYpc/ishO9+rRiu7pGV8MKCwvnrRg98QT5wdt0IBbwb8i3mwOKE6PewWc2XfixktcRjDpwNV53CfaZA//RwxsQnb4Sgj26lHQCT9LF6Rwj3L8TT3LkAyFuGnSIDjCYRLomwI8xzZ4/aEG2pZBLUEAiLF+tpBhpudE8aGuQxRsjX/RzkaEXt5DCp7pvm2nxsCsZhkUddbVV2bsXCihSS7G+sEh+0KClLRGoYea92WCtbawrouBzFK0eQFa2tXMcmAean2JBQMLr8KJeI88LlAPAlPEYwHVeIjLZ5N7lptkc25uCdD3qKN/PpmEYeN0IahLOiGMv0WDdR2BrTBThFlrkh1hCO0rUuIGL2o57z4teL8XtY0ytxuTEYSHIHvQujsdzAVxMtUCC5j8ztT66qcmZ8LO7l4/dxIy2au5MRvZfkCuLQZcCJN4tm0hgkdS4T7mnJzaeAcveq6HKYO3OaE8mbBNWQyEuUhfCGGkKVf38SPWlH/CyEMKmGIUJ9a8NAYvak+PQcE7VcfOkClz6OTwi+0OGMFPTyS5yI8++Z3cETVBso6W3niS2ysgS2KKPXVLZWzzcD2zGoWMUorLCUJksdD4EI6qvhec/K0eyTSWApb8sNRqo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.7
Release Details
UpdatedOct. 10, 2026, 3:27 p.m.
Changelog

Changed

  • shared app-feedback render (focus-ring + toast-dedup SSOT)
  • Atlas farm v3.5.15: strict-id route reqs + contrast suite + l10n generator fix + test-harness cascade

Unreleased

Added

  • CSV import: separate income and expense columns (issue #23): bank exports that split the amount into two columns — one value per row, the other left blank — now import without editing the file. Recognised headers include “Expenses”/“Income”, “Ausgaben”/“Einnahmen”, and “Debit”/“Credit” or “Soll”/“Haben” pairs when they contain amounts; a minus sign on the expense column is accepted, and a bare dash counts as empty. Ambiguous header names are decided by their data, so a single “Debit” column holding debit/credit keywords still works as a direction column. Extra columns such as a running balance are ignored.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
Signaturegl/QFzQnXTF0uXgNMdnMFQqUsSs0Z16Qr2MIWOEj1jr0rRKGXngngVS7PptEQVtpEi/vZgrNvofYOLXnZaioGvXt4b3KfxvYqcoDQjU9cs+qNMcxvPOHOB31YxB/kJZybDYAibcYlimx6gMdRTeFsegEkTMinFft3u7CDokgcxTxTOu//9ugxoDDslfZxga+T/+B0m6pHxlZ0dvzuujA1ifbIhJbNTGrYEhTd8NH2tNA7HBpYS2YSui8Hmu3tAjP549ZHdoYEJhDT5gvWQD1CDMbiexwO6Rfq+Qv2F9sOAHyQEOkum/ywjtNq3VQrd3Nr6JbEttuLhUpt2y0wB7O1tcnVg6BkzjfDy1ba7dRlK8ZklFxy5EAWWq7Bpq8UBBtakAxyZplVj+Oitbw6E3Mz1haSBYsgv+1Qs1bTWGtT3+eXP32+VLtXnooMMnyyXxpaxjsztOKBzD8znKTMUgAsvnmOPa0K4rI/OycJNwpsaabiU0YQ9a0E8WfvsIg5Qht487XnRTFDl/arNUjWI0loMQzaU7gVMBg8s66imRI+V79DlUmIghU4zgbm5xoCxLzUtb4WIe3xsu8WC2FFQCrmqQV3WDLrQ4FMfYHMwFJzJc4NT7ZfLpNcuVCK1M9bQQcxfv+48t42sovdH/f80BXwUkHJrHgfNo/AH99EUzqycg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.2
Release Details
UpdatedOct. 4, 2026, 7:10 p.m.
Changelog

Fixed

  • API hardening: stricter request validation and error paths.
  • Theme rendering now uses real OCS theming values; field-level error rendering synced from the shared component.
  • Localization parity and catalog corpus fixes.

Changed

  • Atlas v3.5.14 verification pass: expanded contract coverage; store screenshot URLs corrected.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureA2P/kVw88MT2KAYMD5EzCI4qkskO687r8o89N1xaMBJKnNAWtBt1klTusS/1nevjmVXCDMsFvPo20ZTQh4l/861uAIRkqsZkvG71nEAYO/nVhFLeN+GmhXty1KpROFwWVEYk/Ex/M9BQf5C1mHmSqf0Vr6/ZnstAESBBu7PoBiHL0+v6nabApjgEO/JZUvFkGgGFAXS3nPIKtwAsFnrFl7J+AOlc898No37O3QqXHEfa/9KJkLKpbqFdhqN88ZSIGZhhiQsuvOsZG/l5LY9y6Q00lcXKql89fJZkGi+RvM2rLXIrkQa9U3wvLWeoBrOG5cMEoUI01qMw73fDxGgFUNzn+dT0jnQb7WtAYudd1FJE0wZjQ6FNQx/CSWzEx3z28kgOdodi4bzPcwdiflx8k4CUAGGal9l7lVw8//9+bYjwXFQkZgnl3SbDlgRK9lwtp6dA1kHDAJf5wQvCaXHtyEuGltyUcZWP2rkF49HhhV+iv4FeC+0eA5Pmf/iZ7Fc4WCGWdbg3j39ecOlmf3uFwyQLnPRs+byQ1P1oiDxu39OMP7jvNMSita7xIa7+36qRU62GEwD+2rNiugKRc8oQI7OXqQcfvmXqL9GqWEt1/zqkM9YgrI3IOc8vBwuKFhb8PZEMbb8YxciqPB6uJK4CR4sYa9HczeV1+FhGr0pEnz8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.1
Release Details
UpdatedSept. 28, 2026, 2:34 p.m.
Changelog

Fixed

  • Attachment View/Download 404 with doubled /index.php/ (#20): on installs without pretty URLs, linkToRoute already returns /index.php/apps/budgetcheck/.... The gallery was calling OC.generateUrl again and producing /index.php/index.php/.... Delete was unaffected (relative API paths). Companion app uses the mobile download API and was not affected.
  • l10n parity: dropped orphan msgids with a literal \' (PHP-escape leak of “Copy last month's budget…”) from fr/nl/it/pl/pt_BR, reordered catalogs to match en.json, and hardened check-l10n-parity.php + sync-l10n-keys-from-en.php so this class of drift fails CI and is one command to repair.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturemERz63QfNXCX2l4kVJdDFobFQiXRNKFOiB/1A2CKc5unTUh9opAeH9UmBKVcDxmrI8J7LInY/+7lX9vWufET3LU/IOSYTZUKxWUk/KdP00gRPGkJxXJc9wWHP9c1VTsAKuGG3OnC6VoWsiZUG/YHgyqemPDj6JYpNl6y9SssGTI9+o44PjGInPWBR5DBzZGtVfR92ymMSNQFJtWFhEMBaRG/lnQFb1viORmHel/H0Ljd+Adq9nL6VB9/18/M0ot7qWN6oSG3kHtItPdLxon8ZbXsZwnOd5Uoj4PjQ9zJdllB2KovxGTZunw7IKkS2DJ2uausudF973f+fhv3k6TY0wQfh5rgIdl5VY8b0ViywC8LpBxk+w+ZrCzygyn4CYQ05s76jxWZiw04TrkJOVcVttJ0maYMva/9ITMvku5x/a25FYRKIdLFPZ6nK1z+VEfAWfpmm3BuziwNdtxNOqohRrQqCQLO+7Akp/Sia6EynjmQyaI8faqHRDEJ7H2yAzXPftyC2u/7ailP+PQf/bYyGVMTdjlK1zxDf5m2PZRwnbE5XpyI8npXKJ04q2gHK8+Zk/t98ypRteIUIHc+GkNAitXaqgpXF2Uz9d1BgXKxf+lFFY4k3RuWOyGurPJGkpvok0kK+gNBAcnKK2PjvJ5JQEKeYfkncbsYZ+0ZW4DILLI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.0
Release Details
UpdatedSept. 12, 2026, 8:24 p.m.
Changelog

Added

  • Delete workspace (#19): managers can permanently remove a workspace from Settings → Workspace (typed-name confirmation, impact preview, cascade of bookings/attachments/budgets/members/snapshots). Project workspaces warn that InvoiceCheck invoices remain but settlement links break.
  • Mobile companion API 7: DELETE /api/mobile/v1/workspaces/{id} with the same confirmName gate and rate limit (5/hour).

Security

  • Workspace delete is manager-only (private workspaces: individual manager only; no app-admin bypass). Exact workspace-name confirmation required.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureRZyzSvfPcIbXGp7KlK5Sa3Nih4lLR3zWGGEQzKtnT5UL2UD9i4roX5jCRMf+mXIjd9Hgi5DjeEy5DCB0FqVNNvwnBrtAMaJenYJ+pZ/70TeJAhqTdKIzkXyeiX41BNgqhCxcWAdV0JjLGQhDvZNumygKpJJVjtj2V07aBJT1wVjA577CIovyhMATUG3w+uFE9yeWEupzQFjsypx4rpcqbFO+aGaXdO0QJky5g/X9QmUJGNDxyJhDMWwzkq6kgXBDdl9UQIuneN+TeH0IRkFtyDFdCh75Ft++4w43R3WeAGzsCjpe1BQxLxgHGRe6SorzStCNs42hM0CHTTQeKX5Vw7wmIEJO8RksElf+HPuiv7JvhjAGDVl7DVVRDDDL72niw9SQwejCODmlXRyZrMkWa3tuqYqoD1KOpG5nXkOqLMyJbOzcXbUp3G4si/gZVG6erZjGK7OqUvikmrIbyu4Sg3smxV5CC6nw/SzLTivVq6FrF50luGW//pNG15UboXIVjQ1kRdlMcYSmV7uY0kFC1a68z2D7VAF/l4Zmfex2zquHYD2uiJQKj+aZQqktceMwMhfTDT8DSqmc5KIblDrnCSP2yRMtaniuzcQNESBveKDHPO5u7k3+k0cb+7LpIBxFwZGIYxeuIWcRaD+7hsGp9agmO1o6F4H0rAtLZJdYyJE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.3.0
Release Details
UpdatedSept. 7, 2026, 5:55 p.m.
Changelog

Added

  • Recurring posting modes (#18): each rule chooses how dues land on the ledger.
  • Book automatically (default for new rules): writes real transactions on Generate / when due.
  • Plan for bank import (legacy behaviour, kept for existing rules): writes planned reminders that a matching import removes.
  • Hourly RecurringDueJob: auto-books active book-mode rules when next_due_date is on or before today in the workspace timezone. Plan-mode rules stay manual.
  • Catch-up actions: per-rule “Book now / Add plan now” for overdue dues, plus workspace “Add everything due”.
  • Generate can promote an existing planned twin to a real booking when switching to book mode (idempotent per rule+date).

Changed

  • Recurring settings UX rewritten for clarity (two modes, due badges, simpler verbs). WCAG 2.1 AA focus/labels retained.
  • Contributors see Settings → Recurring for catch-up only (Book / Add plan / Add everything due); create/edit/delete stay managers-only. Viewers stay redirected.
  • Inactive rules no longer offer Book/Add plan (plain “Paused” hint); Due badges expose an accessible name.
  • Real ledger rows may keep recurring_rule_id for provenance; uniqueness is one live row per (rule, date).
  • Closed months are skipped during generate/auto-due so the cursor never stalls forever.
  • Mobile recurring suggestions read amount.minor from the hydrated envelope (fixes always-zero amounts).
  • Full BudgetCheck native-speaker quality pass (web + companion): register (Sie/vous/usted/u/Lei), Transactions nav binding, workspace-manager role terms, untranslated lock/offline mobile strings, glossary alignment (PL Księgowania; IT button chrome vs Lei body).

Fixed

  • Book + import no longer doubles: matching bank/manual bookings (no recurring_rule_id) soft-delete the live book-mode auto-book. Recurring generate itself never replaces sibling months (adjacent-month matcher is import-only).
  • Dev cron sidecar: nextcloud-cron service + backgroundjobs_mode=cron so RecurringDueJob runs without web traffic. List recurring also does a rate-limited opportunistic due sweep.
  • Mobile recurring UI: Start → “Add what is due” screen with Book now (wired to generate-due API).

Security

  • Auto-due uses the rule author (fallback: earliest workspace manager) under the same contributor ACL as manual Generate; FOR UPDATE on the rule prevents double-posts under concurrent job + UI.
  • Add full period (mode=full_period / future through) is managers-only at API and service layer; contributors retain due catch-up Generate (dueCatchUp + through ≤ today).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureRBhia8rvbpf4HytBK1LGXHoKUKf8F5/XUOc5pqgIlWyx2vhnxj3lACL4skjqP/jQ3HrI6jxFISuTbNy3ou+JZ0SqzsScdJM4I2nA83puVfYnBqmc3f8tZTH3KstviBoEzF+OZkSU8qZpkLH95wbnfVoPlX96PxHyTRg99+IqTmv+RpmRdvmy5yD3zW9Fsc8eaEA7IQGBJQ+FmxpXkOz1lQvfNMVAhTQVYXpqOUuz+5UbgqJCtTdvSWqYFJ9rQWf4sLVuKmz45Ih6xkUNULSl4Ifk0AxmAmokJKtaWPwdFf44OlxzE1+7EXJ075juDAimhIW9qA7gxXODyHgFiwhVOEyCPxmNRcyGDC0aFT/Lly3Qb23kZu9S2NfXpGWxOJ5usJK0zkpAQWMeWy3o6CjwrItCIpjaEc8cby21ymewQ9L1IhaTAegIAKFJkRcXa15rmPV27zYTq1aWKdjn47r/ukUhYDNiHjV1KSjEbhkmVdQYLyOlYRjkd3xu30oTLu/+HQnaapyvl1dQLDLFTC8wsQMvUERc2gmi+dxGmhqsaR1pLqjnZxDOMY/6Hyy4OQzseY9MuGPWlIBrz2juPJrZPwzgMXGkLTfzWqG8lhPJPZh/+2T9fvzDmOSbX2ZBcpyTDhH9iGq0zIEpvtpsRh97duFuZzRYPwiR7HZXM3BTwN0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.14
Release Details
UpdatedAug. 20, 2026, 10:07 a.m.
Changelog

Fixed

  • Rate limits for LDAP/AD UUID user ids (#17): counters are stored in per-user preferences (rate_limit:{action}) instead of embedding the userId in an oc_appconfig key (VARCHAR(64)). Favoriting workspaces and other rate-limited actions work for UUID-style UIDs; exclusive locking also respects the 64-char oc_file_locks key limit.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturejtnZcqBtamWv8CXoqTlYfKy91ah7eSzPZ3jtBy0xNbjmZLvkIn+LYBY7YErVce87IIyCDtiH+1FG2Zi9p1cF7jb209QhGoYNom/25pCsGYY4SC5f5JKOwm2SXByDWkCJxvhHAwccArwf8axvFEhgqDFyAuHwrwhq2oKy+eq779mshbK61JoYe2B/igitwFpn6gAVWHkJUtqM2SJHp9vOBzy8rNZkcUbAMKYQJL5l+mD6Kx8/keI90JyUxds7cyOdkQzYrOdchAQxouVycAPIQxiScCItOcUE3X21iVX75eefl/pE2TbjplUs8W2cujVPRVXbD+lFzlzF5Du4o8Ix4QZSxedtHJ/mz2DWpeBlZ2LepdOxTRUhv4EWSu43bA/klSIvA84N5OuPB3adSFj4hmLpeEnizzju6TZDPtBuX935eInpYPZwha978pgebWwNdJC0Z9nVoXCTnOX0TerDGdo+B/SS6m317/WqYAt44swf6nVthFkLnHVopWp1v9uPqCgfd/9fGNh210bWusiZlIp/SjCYV5LsEWJpCTqY3yFHs5UpR2Nuzld3reqwTwLAH2UqmaxhK0UtjDCx2CkxM1p9q+Ng8qjZ3pbo0OXiausGQhAQvGAsYbB8enndrM7aFViAw73e9qEicCdrCU6S3qwHfk7F8FNUrXWcdZb2TFs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.13
Release Details
UpdatedAug. 19, 2026, 12:53 p.m.
Changelog

Changed

  • l10n glossary alignment: corrected wrong translations and standardised button labels across all shipped locales to match the cross-app glossary.
  • Help, Support & Us / Get the App: WCAG 2.1 AA hardening and translated footer copy for all website footer locales.
  • CI: collapsed GitHub Actions to a single PHP syntax-only smoke job; full test suites stay local.
  • Nextcloud: max-version remains 34 (current stable 34.0.3).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureKF8mXEc9MgF48E56sXCmKhkyiqNM5koXFya1Zw/+q6j2US8tOGSOpqzPL+gw9tmfRqqoSkDa4690h9x+HpwS4ARxNVx5A9Cks9WmD1R+mu/7+IT95w4LpRzu3X59keQjmzhQNmVWY+JsTZgqWpb+HpbUGPl0JBlWv4x89QazF5idcpsxtLjH0jLwm2SC8z43J7MxNQkXJLg6Fpglu08PTiQvyP5zE9TZMvPXByNiDKYQLRwazbPmcVVyj8lICHRR2yNirGjM218MkKDgQRh0uAk0tFWIPucPbh5dmeo7Fyszhef/7O86JMSvz7Cpm0kTcGQc/cihsM1j3fAoP8xbmBGoBesfJK8UKs1JJ2bCWs3T4r2/COCmpR3XP+bdkS1tmnJyOb1fJg6aWVJ+HHew7I+P7P1WkPTyPLehmrtWs9Tkb5sLqs05bSsnITod9MX7i9CjZLCFHE+C9+4bctpN7Ke8bX6eWwXTTxaSlwMnRrMBJDF509raxvTAV9Rqgz1ngGAMOK6Bv6iuDd9oivbWyV2ALoWLJR1dHWbZ3eFD2BKI61/qwkw7qI1DXzixYQU3JGh5YHYgxTkJVnlwMifQ4ZE7OjO3Di867M8Hf9doxWl4q+vsrF03VZ8Iks7bqZt2uVjtfrrneAaHGmR+IXNA78qmV6tM/rq3wlyuAJ4SKN4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.12
Release Details
UpdatedAug. 13, 2026, 6:17 p.m.
Changelog

Added

  • Brazilian Portuguese (pt_BR): full UI catalog (l10n/pt_BR.json / pt_BR.js).

Changed

  • l10n tooling: parity / regenerate / sync scripts recognise pt_BR.
  • Nextcloud: max-version remains 34 (current stable 34.0.3).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureaMkiTQWHmITycarjcBAt0G2h8s0RPUm/U2tf96ihACsVnTokZC/ItViHinstNNuZJtgz21ZFsJpKpKbLG+3gkcp0j3nfzQo5fEFMYiYi6cS8Yx7bdLNJcHnSs9bk16keklP3QgOCDlF1eZsd/Jswc+n8IHgbQr5eMs6/ZFdHGYakjsjj9lmWqgNRmwTi0fTCz/F4uNuxSi9GsO/qbmUO2gsb/6QZ5/RU/4SlMoSBJW3ded2HAB9WLN/3S0O/U4XJMCJJtZyOmWomxPxOIYphJ0BYa2gNNTnTyK+HwnXN95bAHBFS9R8Me/craNL3C4tnE0WqecrBJQZif2sB9tRdrt4QSj3eHFRdBdUOPHgFTgvpi+TjQYySmr/02bI1uZkBUHk6FD9cXI+HxhMcJDknSDzy/QJMlUgGovPj7sUsO9D/UxrR2g5VRWvA/Y2isuKUrDr9+CXLy1amyykTkSWZEDzBCZzv2C5gXf5ZiRNf+BNJ2zfYMpuF2VR059M3SkujQX1t4Dqs+193LZVmFfk97FecY5rBiWExLjzWxS59r9LrzKyY10zwi06TvcAcp+JLnH+tNqewOQbhe9wciwVfPJtrUvZSsvvDTtl9f7pSKR55zALlGw9bGlVz6nSIG4C3H/qsSqZC8Yb+mYtwcw4h9I5sgcTG82YpZ66avpkYil4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.11
Release Details
UpdatedAug. 11, 2026, 3:06 p.m.
Changelog

Changed

  • Sole-manager private workspaces: converting standard → private no longer requires a second manager. Demoting/removing managers uses the normal last-manager rule (≥1). Groups are still forbidden on private workspaces.
  • Confirmation and help copy warn that if the sole manager account is removed, the private workspace cannot be opened in BudgetCheck (host/DB recovery only).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturegjXXGvbwEbbTdq7kgLjYqKg0JRbdaJw9jKeE71uaMMThX2VsWWsP+OndHFRb7pHWdnGwhyRYIPr4B04+dDvHpvu2WH6xWFTjXjY32QZaHNG5AZMWQQbfECgKPZQrTa+p363VlQVsnPrLvDA6svHzMxZbaSELBJugxvuBgHIWyS5lpPJIie01bPxsnp450m90hW6DDaF1FcBG69GLpBOiJ5uYh7Q4WQSSSZ/fuMlSy7vyefvMpfNcWGwUf/miZ1eZ0FCjy4o5vP89tE4UEp2ZdVTC++qeCBzOKa17casmXfH/YVEkS2bRACogRttUdwncd7UEiOpo1WHnaiDFXn4Z1ssCytxghVqQ2LHeVVlRu0U+BAtHzHB9WLeqYc7rRHzQjIqDj5tiZeOYr0s9GZjBQD+VHTiIUkCAxf3ZrN57YIsveYDrBwPt6z4lDL/43vCw5BGRS73uff/bf6S4PoR3vDAsFRRc63pu5uFBoz29Z6FqXePmchyHVA5IQ/4V4icxjpmlwNIPIIbm5K2gPgmsjRqGApaGBVFIpxTfeoAvOtrdTu7l8GSYD3oe1mNh/dCIeJZvnDiABtiIJBPm9ZYOisXPDWFRx1Nj6A0z+2FpKXUODMcthm+0bE/eiyOcnqHVHE7DVxxHclX/rxFHq+TYJoeUdOZURQAyHtvxck5e+qU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.10
Release Details
UpdatedAug. 11, 2026, 12:44 p.m.
Changelog

Added

  • Private workspaces (ACL confidential mode): managers can mark a workspace private so Nextcloud system admins and BudgetCheck app admins who are not members cannot see it in lists or open workspace-scoped APIs. Host/DB disclosure is shown before enabling private (not E2EE).
  • Create rules: any user who can open the app may create a private workspace; standard workspace create remains app-admin-only.
  • Companion API 6: mobile clients can create with privacyMode and update privacy via PUT /api/mobile/v1/workspaces/{id} under the same dual-manager / no-groups guards.
  • Web and companion UX for privacy mode (settings fieldset, create modal, members group lock, Private badge).

Changed

  • Converting a standard workspace to private requires ≥2 individual managers and no Nextcloud group memberships; private workspaces allow individuals only.
  • Member demote/remove and privacy toggles serialize with workspace row locks to avoid last-manager races.
  • Favorites / last-used and admin digest surfaces clip or opaque-count private workspaces (no name/id leak to non-members).

Security

  • Private workspaces skip admin role bypass and group-role inheritance; non-member admins get the same denial class as unknown workspace IDs.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureWhCpil3i9Z0He3TlZK+FGVFid4GI5zR0Vdls7I1Vbq0E2nnE8n2co7EWDV638oB3KtxhuZwPH1iCmah2/QiXFNOalLi4RgYt4/qiCorZHhiqT89awIU4C8gZXh4PqrXrrYgWPwEdp+IBCMMT0NcRCsgju1Cv6FTOPa/z7VwT4xqOdidxBtxPJYL7aO0TvFASCZ4HJdxv4mEf32pcW8TgTeGF+/g3qBW82KYyPCacUrV29JdLkqnj+6HuB1Oo3LHekYviPJzz05+14otwhdi1shjLefBpUfvEIQ2130FYHalkfGdnm0MEI2lXLnaZxGKMn8m/FsnLqvAh+p42zSigtljelqBnDzrZKlPDf9mPl2O/VU8J+sFoShSM7IdBcgFDaQ7dL7VMXnImkfvuAg7M1OjM0g6DdUaVDW0Jxne2t05yS2Hxi31K5Mg9p5FsfjoB1LacATvytDou1i+ouMGDD7ZZ0PWFKGSGsVty3I/thH4YV3IbY338ZPLZR4aPlbOLC6i7jTm8E4eEphMpTzyYjuFN+7HP1kZl6mco4bWcd+r4cmdGwr861+VrT+13SM8rm4UkBtDbGWEj235LRmrfFNWJ4gViIqVv5BWNHrrvav5cwymAa0nMhDwjy7a4+FWoUZkO2lmJyfroBKIrMUVhFLrjqemRcTu8FXZr1bxIzLg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.7
Release Details
UpdatedAug. 2, 2026, 12:14 p.m.
Changelog

Added

  • InvoicingCheck compose strip on project workspaces: soft deep links to create an invoice and open receivables filtered by workspaceId when InvoicingCheck is enabled (settlement stays in BudgetCheck).

Changed

  • Uninstall: app removal still drops tables, config, and upgrade-backup snapshots; receipt attachment binaries in appdata are no longer deleted by the uninstall repair step.
  • l10n: Locale catalog refresh across supported languages.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturegP4ofTR/qlal+6K9My5xoUmt0FhGFmXag7i+yq4S9WIGAEHR7fvqBft7dGs9aWGnP/T6C3NZH4Zae9oeGNvai7NrdliV+46/mSiWToveHQEHXZST30TXC+YPuyqw0VsBB1tK7AUw1Xefrn8pdM3xN+c/q2f1GnYixAzeV/5+CStS+AdVZhm91V1CdpKHvlSJDCQCyhjWR3WtNOfFifVTQZaqhXdYpJkvW+YEnxiElKHdWUNwdlMHzaetX0sKmsCzlH/6/TvOTe/bhRYoREUhly2F5HVVNU4qM02gqe+br3MtseB+Fwxz8nHhbcgr+H+HbQdRNdpGL+veq7wFeejSKGpcty5sYRf8cUKOzNuezfxVe0QJG/v7ZC2cUmOf8YVxQYAAgumU3mOuZesfKwa7J9pXAM1FgFin1Nub1IMFRCkvdSq8a9kRS48cIlFRijHHAz0uUOWVR7nRGo0lmpASmNZCMNm12cwnZ9cA5i0KaBKtyj+UaF0ujG+AX9PbDjgDkbwRakcv498ouLub78ruRFfloQOBsWhyCQZvmUs4qM58HQQXf+D0kIdHCJd7BuNS5xRSEXtWboR/dA2cHkOtHjRVHxAGHq/n4FTN714eK72WXXIGn6lWN1in/UnOv3tA9TJDxBghDDuQ7A/iXaQeo8I3Avc3OnIpxD9HW7cQFYk=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.3
Release Details
UpdatedJuly 31, 2026, 12:19 p.m.
Changelog

Added

  • Mobile companion API v5: workspace-bound attachment download/preview endpoint (GET /api/mobile/v1/workspaces/{workspaceId}/attachments/{attachmentId}/download) streaming receipt bytes with nosniff, no-store, sanitized Content-Disposition, strict CSP for inline previews, and per-user rate limiting.
  • Mobile companion API v4: monthly/yearly/period glance summaries (scope=month|year|all with new household span aggregation) and app-admin workspace creation mirroring the web permission model.
  • Home category overview chips now carry a direction field and include income categories with activity, so the companion can split spending and income views.

Security / integrity

  • Attachment delivery for the companion is bound to the requested workspace (resolveForDeliveryInWorkspace): a crafted attachment id from another workspace, or from a deleted transaction, is rejected with an opaque access-denied error (IDOR closed).
  • Year/scope summary parameters are strictly validated (four-digit year window, whitelisted scopes) with 422 validation errors.

Fixed

  • Mobile transaction list shape normalized; home category overview no longer drops income rows with activity.

Tests

  • New behavior/contract suites for attachment download (workspace mismatch, deleted transaction, rate limit, header hygiene) and glance summaries; mobile-companion mutation harness extended (attachment workspace-bind and download mutations all killed).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturebPl++SnvVgKR2ZNLiI0Uygkc7wvl6iWaHfDHRxnUR/TobeB922BmSFEPmN1Qv0p9fR5bVaUF4SeiAJHtrMYw+eObLFqJYnaT4roPs9t24V27iHpxTh9Xv7xuluRN4O3raiBOYZHqVWCKAR5Rh/LJ9ShYt0iq9jebrCMcR5SdsvoV7levLs5yneA5laWT9mH2KVzfZF0EpuuPjhuCHYBI9RqxE0Ls4C+aFE7b6prvQUIdC0ZtjsQrJecbh3emj1oqID6IyK54XGFow2myMpVXk/LUorVIg2LOZwysiWMPrM/GURu9J4pZwJlS/HH+He1UEEGjl1b3P0LeIDSlTSTbul8Z+Ry4aHdes807kfapAnCN1v8nkO6mAXDo/7s6uY1HpTGu6rPh6sW3oJwFpbwLDtIXC6MyE9pSQiyazY4F5VqCJPwIKhSdBTCZ1cesb7xKJwVTw3w/mzsVZUnhqJ+d6joQqRosrMzsTx4UanFZoMJQ7MWlPcdZuTTZ0PKRQmUAR9WOyyXB3mezKp0emzMrDoCSzTAZ0RXVnPqUtFMaMVk4P7GGNqN17eSwGIc3byfdlKCFWB6oWPTUYARvgo6EmrSmftiuuGLIoebYpUe2sUobIfnqQJC/0UfXDahk4nWsC7nugqPznyCYcq8/nHnAcCrJTJ127MSj0TOOPoiPtH0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.2
Release Details
UpdatedJuly 30, 2026, 9:22 p.m.
Changelog

Security / integrity

  • Mobile mutation channel now requires a cryptographically valid CSRF token (IRequest::passesCSRFCheck()); forged non-empty requesttoken strings are rejected. Basic/Bearer app-password clients are unaffected.
  • New exclusive workspace row lock (SELECT … FOR UPDATE) serializes monthly close/reopen against ledger writers: snapshot summary and hash are computed under the lock, and budget-target and attachment writes re-check closed state under the same lock (TOCTOU closed).
  • Budget upsert collapses historical duplicate (workspace, month, category) rows under the write lock (NULL category_id is not uniquely indexed on all engines).
  • Attachment overwrite (receipt crop bake) snapshots prior bytes and restores the stored file when the DB metadata update fails — disk never stays ahead of durable metadata.
  • Adding or removing attachments on a transaction of a closed month is rejected.

Fixed

  • Layout overflow hardening: cards, warnings list, and empty states wrap long titles instead of widening the app shell (min-width: 0 / max-width: 100% grid constraints).

Tests

  • New snapshot-close serialization contract test; expanded update/delete CAS, mobile-channel, design-system CSS, and frontend-hardening suites; closeout and mobile-companion mutation harnesses cover the new gates.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureChoGVud+Ib2oIeGvpp7sKvkCNnQ4EPRRWBogTTNeiwlL6T+XUFhtDOOU9b/kIVdS8YQ9n3aakhtYjnduHhtfE911hmilt+H38vrqBXGssRTq3kw6HiKzCP1YYh7V7Qs071GP3Wzj7+RzALhwtUEJ4AvIy0YqiDZ5Xnvhy1PbYq9jUMTm1BCW3CC0XirqFk0VxMaN6L/EeSkuN7T8m2vSSL779eUmzjC3hvCz/iEsDhqFP0dUgU6I8vKjWgceEEYZAxsSjj8kUjKp1RD6lhhKrKogOe5Nt6KEMBDqpYREUk6k06CDs7c/npSb4MJq0/Qe6jblININ1qBJABBhTemxlQKjmOH9plpearuFX5Qw0CBMmZkHPCf+x8Zq+3dVnXpLCaWL6zeHbbChDm/EqOIgPDH8mWxrnaD9c2oJ8X2G06dTlv8NOql7aCViRxWH2ufwrgQmxqUycpIgDSyh1P0jzhFnSd0GD5gOjIhMyaejoWOBKCk9yaqSaW0a8Aw6Esuyxqnk+ttfVjZAOscWM/0Juxv7oMKjv41tWvXyaaDOLCVGbfkNxD8jDG0awmYB5bkj0GGwMnIY7jbOvOesX/NPSoB9cWzGjSyx6hz1GARtygnhD6AxT79ZcFsq6b5pHPg75wRO7IPYkLiwhPfWFiqKTnAQ03QdUb5soNG/DSS9C08=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.1
Release Details
UpdatedJuly 29, 2026, 6:36 p.m.
Changelog

Added

  • In-app Support & Us admin surface with Partner CTAs.
  • Public billing facades for InvoiceCheck (BillingReadFacade / BillingWriteFacade, including paid-state handshake).
  • Mobile companion API surface (MobileApiController, capabilities, idempotent mutations).
  • Playwright shell a11y smoke and epic-gate / closeout / billing mutation harnesses.

Security / integrity

  • Transaction create/update/delete optimistic locking (version required; CAS on update/delete).
  • CSRF-required mutation coverage; opaque AccessDenied IDOR gates.

Fixed

  • Budgets navigation restored; warning recovery actions aligned with Dashboard.
  • Money envelopes include decimals (zero-decimal currencies); header month follows selected month.
  • Transaction dialog horizontal scrollbar; GET favorites remain read-only.
  • Uninstall cleanup limited to upgrade-backup snapshots.

Changed

  • Nextcloud compatibility 32–34; version sources aligned to 1.1.1.
  • Stabilized money formatting; dropped versioned asset filename suffixes.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureXbCeU+/vuAclh5wvS0JC5CH4LMVAOIyAwV4sspNFz28RW2FR87rromn3Mrz1deVDb0WVW+VbK3fH+3LhfknNjpQcsn8T4KCQKL5ZuQ+s+ILwRiDZvXk8yxxCbppfmscaV+Zh4G1501nUrgRceLIPNQowpY+/TlYtfl4jXVMlZTX9cp4PJo/orJpOaV8c4HhSdlpZNAeNSfnbr4WipTqJKUs2p1G2Ixc+mhiDyEO0q2TAJOyYlGiC+xXdCYb0guB20MsP30hYUZuhcEQ84TMnnnpfQtR3V2XD4K9jJbmrK/fMdnad7XVCQRpwx8sLKv3+PXfcIgIvRoLD6Kae1Liqry6NB/RFMPQNiwyEJj9Vbf/P03QZGQqVYIZdNgRqCDlNFEvJXOsuHrauvvlOmqRYP95N99LYAsBAwKvSRM1S5wJfLSjpFQlgb7//guTEfAWnIxEnSaX8ZQmlPy7Sqi4/Z96jWm3/jSD2MTJExXXGerHW1ap8i1VoOeb8FkmiNM2anEl/LBU1re1mV08zSfA3GaEmnl3/y8pj/BBiKKgoIGOWVCAlEgzVJI5hcuYUagAAqYN5guddRbdUq0Zg53ITHZXeZ6U/cYeSTpz0itk71irqZ1dkGJMGH4JjfpDdeMFH76HgN2ebeqAB9fMcWxfJ+//KFV9gF7HfutB1OVZWe7M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.29
Release Details
UpdatedJuly 21, 2026, 9:38 a.m.
Changelog

Fixed

  • Monatsübersicht (Kategorieverbrauch): Der „Include one-off (special) transactions“-Schalter wird jetzt für die geplanten-vs.-tatsächlichen Kategorien korrekt angewendet, damit die Anzeige verständlich und konsistent ist.
  • Audit-Härtung: Monatsabschluss-Snapshots (Close/Reopen) bleiben weiterhin kanonisch und unabhängig von der persönlichen Anzeige-Einstellung für „special“; dadurch bleibt der Berechnungs-Hash deterministisch.
  • Robustheit: Wechseln der Anzeige-Einstellung lädt die Monatsdaten konsistent neu und ignoriert veraltete Antworten (vermeidet UI-Race-Conditions).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
Signaturel0osK/Bj5kcr5p/8tYUSbJpiRiBig+9CGJOMjQlMmh+MKqr1S/bPlSjd622Spwb+5tAblZ7u1kaADfimHiN2r8+jC27dFXsR6NDhToFPCq0oRJjrtKCWdNBK8BLnyl6zOXffq4k2+BT3Yv0oBBeEfvK/WV8W/Z/ycvLQdkzBeISt1mjKd3zDJmELhexIZbI3QEka0kG1X9oH9ilb73onO7lifi3b+YIifDU+KD0f3NKoB/C/zy/ZQuoSmNEAoZk5S5dU8KRgp38KSMNFDKv/pOt9tS3rIP7p57EIKqiEEZkBRykayQ58sl+5jzI5i8AGDae8rwTQFks01VFCYy5Ifp+fGevJZ9h0V+sRNu7ZQr32+Y6tL3Xiy1KdyC6jHQ9UOlysei5G4Y7C9E343MeuBwgPw70TzS/k/bQ6eJf0JvU6lXAb+zU51IVVTv0R9rFGltgpTxRieXnQ483AtLfEaT1viKyzyxA+z/AHpsiiKULFS7ckP3/qiTViPCU9yUiGa4Ygu1ODk3YfUUNBIutQC5plsGX+qai02dCKg2t7+NSibe0/D0FQ6azgn3Qjt2jk3HxAna98CEM54W+GsMXiIhepWaM9YWH48zk0VJQo2PPLgIteXszq+srI0KqqmRB5bvZh6MgRQzsXRE0nhkfRZJOkXMbR7C6aM8MFxpUiZ6M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.28
Release Details
UpdatedJuly 15, 2026, 10:26 a.m.
Changelog

Changed

  • Receipt gallery toolbar: grouped controls with tooltips, clearer hover/focus states, busy guards while saving, and a corrected rotate-clockwise icon.
  • Gallery translations: attachment gallery strings are now translated across all supported locales (including regional variants).

Fixed

  • Upgrade backup: snapshot folder creation failures (permissions, quota) now surface as UpgradeBackupException instead of escaping the backup handler.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureCEknFDwanggvbAJ/Fz8uGVeqYbUtxYQQDdyrWyOL5Zs9QbkFkSC6T7UICLyZAIXETUi04gP/wmZt0IE57vCAPqEROF9J4wXoclEu4J+9mjgPd1EXVz+8AhtVyqoqdfNk3iwOkTum+YKcN9mnZ0iH+LuEa1tVoTPZdyW6+ZKb3nf6h/YNut9oZzJ5JtNICKluG/4TmCQdNJLU84ItrfaVb+u6+UPkBb9gFfBkpqhkEBiqo8vHjLdZ99Hkp0HhFd0HtCnvNuV7KHPj0tjfY5a/XHZxiNN+OACFrCDhhB8S6XH0ehUk4lKwsO3h+/gb5hoNKALZqOZAseubbf6Cbzb6iU6eQ1/TLXLdQV2boY7Pu/7aX9AwWm/6AJb0504fYpbfREhW0vZZ3tyx+VuNq8H+brT5Saeftvr5Jsl5QmF/8srIpgPURQSBebs6pV/uQGMYoMXEIVt51Tk/EljQDDzZZ1IVW/QSw2HiSvfE+AB8Ge6uCsdDTP7mb/kdbhncpiWluG6pSk1WCBwmWGnmuwcNZGt+TMtLgp7Q+xRJw1HGIaBH7t5fvostGi9FVVTD9ZYVU6Ka2udAcmFWmN2Hh42MPrmBCig458wH0qJgiii/o7K/YBvDr+FVxxo2pXieDpzP46DG1Msz4KSjaA41Lhu/P8HJc5UjxrRrNnMtF7Tqw48=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.21
Release Details
UpdatedJuly 11, 2026, 7:39 p.m.
Changelog

Fixed

  • Planned entries in summaries: dashboard, monthly, yearly, and close snapshots now exclude is_planned placeholder rows from income/expense/budget actual totals (they remain visible on the ledger until matched).
  • Recurring generate: batch generation runs in a DB transaction, skips duplicate dates idempotently, blocks closed months, and deactivates rules that have passed their end date.
  • Budget planned sync: month sync is transactional; zero-target categories no longer throw a misleading 403 when no budget row exists.

Changed

  • Recurring rules table shows end date; modal adds active/inactive toggle and stronger end-date warnings (live region + save confirm).
  • Yearly month cards show text badges for over-budget and closed states; recurring action buttons have unique accessible names.
  • Modal focus lands on the first form field; dashboard warnings include severity text for screen readers.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureQoo/mwZxj6Unhvj3lnfhebu7g2p3HJDcos5kM0OXkTGvw67F42c3UWevVN3JzCzX8BHvLRjOUWqy/4sQVZoTxNvtSt2bzC3b+oqTXqmWaWzZQcypoA43+JCKUcnIQlhj1vJVQNIVtps4zsQs/DszKUdTJVL7z2AsAIWsDAQm1xCHgkAd9TmHeRQn1ZLocQurn1RZj4Fau4JfUAPG+DiPu+QsDsMS1CAVCQtxPPGekVW7JNmFIdvdJ2uZDvRbg90j5C12i9LEj3dHpIYKq5uvCzfMq2k3qf1m4XZAJmOlFnJtHKOlIZzHFnsh1FjCjezfGmIh8uhMIocbPtbacbhLqoPG/kM5IARJwiKxxb0YNfquIx7kxw9kRXeX+TVpo75g3FhdzY4SABZ8X9kmJdugQ0r1BWIYdahKBOuIe/lzIJPdNWz92qEf48GIb/Ly/Ts5fjElwKMj3/J2kbQ5a5zfFwvIRo+GzbfUD6tGgPen6UFQjHI6Bem97mHQKNF/0QJTCnMVZjxXxgzaVeYEr+2MUJWGa/wOKaJSx+9yXe2+kC40XReOX1fYNH0KxtafxWNeAl0i+1MBNuJ1oA7c2kuK2uAudXrpiHxLdCfqP0YjdIHEU6BsE9e/8eilzA/R2RSpBtXaeW6wekCxkx8BcSU2CKJDR3CZy5kuKfnZFBd9fP0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.18
Release Details
UpdatedJune 18, 2026, 5:48 p.m.
Changelog

Added

  • Shared transaction editor: dashboard and ledger pages use a common inline editor for creating and editing bookings (transaction-editor.js).
  • Dashboard quick actions: household dashboards show month-scoped shortcuts (new transaction, open ledger) with a compact recent-ledger preview.
  • Transaction title fallback: blank titles default to the selected category name; unit tests cover resolution rules (TransactionTitleTest).

Changed

  • Workspace settings for all members: non-managers can open settings to view workspace details and personal planning-total preferences; managers retain full configuration access.
  • Transactions default window: the ledger opens on the current month instead of all time.
  • Full translations (da, de, en, es, fr, it, nb, nl, pl, sv) updated for new UI strings.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureSKcpYI6Eoom+8ISjGt9olvRkXi5uY+QOvPyiZdsD5+8o6RdJ0XvD+/j8B1C5R+3UA1dvb+7jp0X2I71rA+hdZfYWNad1qZ6lAalok63N23hLvqRKJIeZhV6dTrBLY9l57sDTckB+B+ajh4+bi48OzG8PiGG7edPRtWz0SRqzY1QP0p3IAWJee8hg+5LQfW3C3jlG2EUgFiTfQ9eOkJmlAvBCQzEvW2toaU1iAvpkyG/NjNfWvJDwHp72SQ49TvqKQ45+8h3K9d6ffgi2MQ1vVVoFseAOQ+PJxxwtk0DeR3DXLlcFuMx4xbWJsGYIM+JB/sIY3iSm4H61BQEpyV/nymfBh7eHN35/gh6zw11WlA5v/nuuFIEdkFHT59wADDBpB7T7NuuSscZl9NQ8ImiTarrKaYZ21O/iyvStevf03hN2yRwlbtjB5bvykH6MBD/K+tC/jZSkMehdcjiKuDMDnaeH8LVoK2EX2cW0AOPPX5RYv5MOd8no2d10YmSVWUHXBXMQo9T14fV1y59FR6y9sSH4kQstHoo7fKS+OovZxqwWolTWG5EnXKvpaLkiGx1FZsa6IwoEK1foDzBa981WCm3+m1fmIdXxovUERQWypvQEaITDrtCRZ+J/x8A5FVD+31zVwuMmhKdR2Jl/Okya1S5vFtN7wdy605iwwHttx9M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.17
Release Details
UpdatedJune 18, 2026, 1:10 p.m.
Changelog

Added

  • Planning-total preferences: special transactions can be excluded from everyday planning totals by default, with per-user, server-persisted overrides and a manager-set workspace default (SummaryViewPreferencesService).
  • Savings-transfer and planned-entry aggregation: summaries now match planned entries against actual transactions and aggregate savings transfers (PlannedTransactionMatchService).
  • Dashboard transaction notes: transaction notes are shown on the dashboard.

Changed

  • Special transactions are excluded from everyday planning totals by default; full translations (da, de, en, es, fr, it, nb, nl, pl, sv) updated accordingly.

Fixed

  • Unbounded household transaction lists: household transaction lists are now properly bounded.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureizvhSAXVAauNrTd1+XRSpET6wvlQN+V/CwKb88U7Scaao2Bt9p+/4aBovQ+PFVoQpVPSOVWIh3iNQp9xN7jcEjcsJG3i27yJbUpLhZC6DwHTyylC7aoZ1LTOckdKxN7AZcHJuvkX+QuAZ+Z1qU7WBeFbEPW/JAy0zQ/IwCydAOpxo0IQviAIDEMG9HVpsDTHdzoyK3k2TZRXW2gPcJBh1wNiilvIVYHrWcPBpBkJyOUGU/6xjwgsDy7R+U3cPohcR2aqRY8rULm6QAek1hJK011QE83phikMlb537ykpgDRfaJCayV+4LIAwtN88ByCHZ6Ie0reJaAKqKB5KgMAiz6tLfn36gRBScL2L6jixzBY+HSizIXmPwLoo00K3F0TsGhdEhJjnkLSugZKywvKO+pt8D8zn6WEweJn4Zus9ROutUzcWnxouavCmkzIc92FCva3j0HwiZYz4ZOllZTjBAIk3cv1VQ3ZpGnd5HNY+IpcgRzZIY5yp+j6MDWrFXxJZhXpqK+XYxR34LNRKcxqHNlqzgWGyGvD5x5jmWF0bQK7fiU0SL7J3MaAHnU3xogrrnajTVynDzOUhU5tVupdt9u6+yfWMHoMpLFCOyr6Tt2wLQw0+Cmd4UcSOow5cEKVBKZhXckiHdd8l01jl5d4tcKuQrfAm4CljZkJxGYhNyTc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.16
Release Details
UpdatedJune 16, 2026, 8:29 p.m.
Changelog

Added

  • Import preferences API: server-synced CSV import defaults (ImportPreferencesService) with unit tests.
  • Transaction import hardening: UTF-8 and legacy encoding fallback, fingerprint-based duplicate skip, expanded reference column aliases, and higher rate limits for split imports.

Changed

  • CSV import UI: remove bank-type column from direction mapping; improved import page layout and validation feedback.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureNf9PlBV/1o8mLcdOG5YFSu6WMNOphaZXMRWnlzS2crVtJnR5hLLu3t5fd1lHaMMFsmPLxOY+wBWfqF1DMfrVWqZiP9dehXka8j516Q6CprOO7NIqkYCzzuTJ8FbfjqGZax9Q2w23fZkoQ5xwIPwEVH+TbzOvQdwbjDo5UB2eRyNu0v9VsUkUq5j/WSQ0GI+wEeQ64viKjM+SqXsjtF3Hsr+fc/IUYZ5U5sECD/WMdG9joDaD21uEqsE1hmjeQhnzewBu88IVEtxrbONbiLR+DtcVRbq3qvckgI70V47B6GAfwAPbwhgX72LBypRWeqhHbMTI0OiLsqIUjA5XJjSUXx0jZkAuNacWA8aeoFKPq06Kocwk0NO4XlG79JZV1pZvw05ndkUDc12Sf5KaivoD6MelSngw+oTOlPB+Pr1o3QrXmDo9hJKvXTYj8da1J6a0dFmedN1+BSG5iXmyR3WsohFZ+9tM/jMW6Lm85ad2cWMBF4saYdsKXlpiBr2URtZ/4MERFGIFjdcM6uiM6MJ5O2+thEwAcB7BRoAq/EAHr9EZBhznB7Xs43WiPm++pPZltzCtfh3BA4eLKW5IeQ4Rt5orvz9yqdRarh8bxJC79oIZazdPzGObVoicFMzULPuTLbG3nvI2b7h4vxvER/ZC9BmsgimqPG8rz0by1A+DfJA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.15
Release Details
UpdatedJune 16, 2026, 11:32 a.m.
Changelog

Fixed

  • App access permissions (#2): users and groups on the directory allow-list can open BudgetCheck without a pre-existing workspace membership. Workspace data remains gated by per-workspace role checks.
  • Group workspace membership counting: only honour group rows with assignable roles (viewer, contributor) when resolving effective access.

Added

  • CSV transaction import: guided import page with preview validation and atomic commit (TransactionImportService, /import, API preview/commit endpoints).
  • Unit tests for AccessControlService::canUseApp() allow-list behaviour (AccessControlAppAccessTest).
  • Integration test for AppAccessMiddleware deny/allow flows against live app config (AppAccessGateIntegrationTest).

Changed

  • Removed unused DENIAL_NO_WORKSPACE denial path; directory restriction is the sole app-entry gate.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureHZouyTZ5hZqsPrzxtw1wrLWQGIf+JewhQ82Ie2DcoTq/9Y6N1wrJ2NdS1Qi3LxrgwQYS4C/O+Rxbpf4d62cOJEIZ68/madywndUblrwSW4KXRURCzc3yODL/ol9NUFyrBFRkLvZ5L29iVVLkeny9g3XNKpaA+iXWFiiDNrHm48pbWtoYe76r0CO1S+oEt3m35U/YfhgkDbaBPSU3oak3cMZyRqBtnbs2jlGTu68ElE0Af77OzoKlx2e6/18J0dBDHX3yFJvkJnGXKzAoi1O3aVPaz22aXfvq0wTIf9uWo8v2ZA90PiOFR4nFpEBmx7g8bcmpEkFhwhPeeTYlYPsmkSy+9hncFX15GJff2hQVff5rjs006M4JY93yV/Kk7glu043avNEfcnKDXXN5dtejEMpuC8V8oZREnHyqbXslQ228DHwv6ui+XmWgYp6+gkUA4dnGVi/lEzpPMLpcXrVBV3qcoTukMR0z1R6O7VyErNVzNlxTezs/5pIMJ4lP9nWPwV3CNIHnO7TIkBm11s393rOQO+3IT467quMhSCTj6dcxkKWp/tY1CTYH1BWpD+/aQ7Ck0Z4kmczhZuPw5vndG77RFB1tHLOQfQ3W26DysmeeiISeYPPYSIlaotxkjQhyeuVVfi2ejm/zNokwsMUsqT5lH4u87KO2G632khnvkX8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.14
Release Details
UpdatedJune 12, 2026, 3:01 p.m.
Changelog

Fixed

  • Data loss after Nextcloud upgrade: UninstallDropTables preserves tables and settings on disable; full cleanup runs only on app removal.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturePjqj9ukzex/oDxEZ+z5so7SXgsV5XiuivULYarakCc1QdgB6uun6YCgj90RFP05w4drljrSlIHvqfyWUyqAtDo0fRtWwclgI5RROg9CmEaCqUITOrEtasJVmQwIXdnG1GBGeykF9C8x3W+/vJZaVOlPrzpMmk2x7xjlq62LR+ez4j1kpjO15KA/hqAkj7yCGC/q6h7/xkEImpI1N8EDG/bRjHb2o5btSLpBetMdxKbodkMOHlLZoVI635RBf7JznCMN0dlojigvESsBsTYaoIw9a0eNrA4SlfIV8bjAVpLG1jjMp7Z0reVYJ4bzK+HY0gh2UOzfNVjg50bovOunmh+REpMRuIWwQnLgiqr53xJ4kr8E/dKcAZWz/rvX8QhSM+hXqqRvUm6Nv37P4H3EbSkNxW8D3H5bzgKQQLc150ht6hlBpRSSNz1mtYf/RRePnfD9hkhxVDkVAMRTqi9C96mfc2W/xtwxpdzx4m1CI4DONCeG4e0PnmJBqMM3xj70pxBapy5dcxKmGp1SkbnKWmCzNTDCAH8MF4WsMg232t47UDSipU+H6wE64+Kqy6RquC/7Jpq0RFun5jrnp69pSiJ+bNeh7ngJG8RrDkgBYmx92AbTgcOFPnFoxYGl3evog8n7lAfjbE9WE2asQOhYlLbhOSsAfTEmZTicciKrdM8g=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.13
Release Details
UpdatedJune 4, 2026, 9:14 a.m.
Changelog

Fixed

  • EnsureBudgetCheckSchema: use the core Connection from the server container for MigrationService, so install/post-migration repair runs reliably on upgrade.

Added

  • Integration tests for repair steps (UpgradeRepairIntegrationTest) and PHPUnit bootstrap support when tests run against a Nextcloud tree (NEXTCLOUD_ROOT / monorepo lib/base.php).

Changed

  • Confirm Nextcloud 33 as max-version in appinfo/info.xml (aligned with latest stable server).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureMu0NdymSSRQ+70tNThrVIk60RnCFcWERf1gT4pdyMBFINTfsft3FKiavlB6Pjc74f00rf8fIlXtN54pKCSVv7nHTloAccEqyiFfIQA9UqlstwDBw57XZY1w2hOhB+hHYe1Lh8BAZd/TAFUHEg90OXrBo27Qb9mOrmaHbCVF2IMle4faEQJRJDx5Gnjx2FkjOf5l63AKo4FFzoTQZ3072fyPKy4szhY9Ajs8m9+Dv82qwdKncw/xD6Yk6PPR6MjCJad7/T7c6jrydQb2MaoILpMjFIYJAw3VX6Suryb2gkoX+DIhUJ6nPrUB/ssZdvFJ6YXmU+sSwfHq02jY+vf7MuF2kAFJIJequn2blYN8juGvzexKE3ZKj2NWisCMqzac1KJU/ISbB4v2D+FP9IUEiWzgjz6hh8Ci/bNLUnU9SkkkdJUAW2adJjERDggVDrcZ/wlKb8boKRwE7kvvYy6784N1tFzyU7T3c6g4AWE7aDYA9dFtrE0jsej66UmVdWDCyslA8bJzvpRPfBak2z9K0UPIjs3A9kHdcD4gBEk8fmHFNRgdX8IRTxuLprHE/tfO8lsP3m9i+tuxgcb87dmc9EPpxx6gNXRxdL3oFiAQsgmJ9AckEddtpSIlbmc5hfYTJnC3edJc7UcKLfZnZGE+wG9Z8X1t/c7GzqBhYO6k/TuA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.5.0
BudgetCheck 1.0.10
Release Details
UpdatedMay 25, 2026, 8:10 p.m.
Changelog

Added

  • Searchable timezone and currency pickers on workspace and app settings: js/common/catalog-pickers.js with keyboard navigation, live filtering, and accessible combobox/listbox semantics; shared partials templates/common/bc-timezone-picker.php and bc-currency-picker.php.
  • CurrencyCatalog: single source for supported ISO codes (including RUB, UAH, KZT); TimezoneCatalog: full IANA list exposed via catalog API.
  • OCA\BudgetCheck\Repair\UninstallDropTables and EnsureBudgetCheckSchema wired in appinfo/info.xml for complete uninstall cleanup and idempotent schema repair on upgrade.
  • Migration Version1009: schema/repair hardening for production installs; BudgetCheckTableCatalog centralizes table names.
  • Tests: CurrencyCatalogTest, TimezoneCatalogTest, EnsureBudgetCheckSchemaTest, UninstallDropTablesTest, WorkspaceServiceUpdatePayloadTest.

Changed

  • Workspace settings: server-side validation for timezone/currency; currency lock after the first transaction.
  • App settings / settings UI: migrated to catalog pickers instead of plain text fields; styling in css/app.css.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
Signaturege7LOoLm6PTYEDq/m3I0FLAVfA71Og+Tkz7Qod1TqwvzLaVPHpqJ5MV8LII54oLlwFP1ogFasrwfQUnjQf2gJvApWEE6WDcxTvrVPgDEOGLw9Je1V3A6FtPZMFgwXHYn8Ruo1wkmHcOFpV/mvd3tZThZymo6tQNBARGlCeZg2QZuzbe3XSLva/8N5xwEzY0prHKAN0wbF1xWdB8CSpeuGDSkOxvvGbyKpxfeWR3frUE/o375FaeVzeWDi42occvnPLfvFlhSuvqvZ/gZfhv4CAtxVTxk/fFCvKoC+2zMDUOpiSqdQllpIogOeReSfvpsCoS90SLPXMZMqn00O9XkGjajEsH/hnXCgldMJW7w50EW16t80sbpHn73dDhvyztff4f3nEd86BZiR8/ZZgFCzxh13z/tcJfVnSH43oavli1xvDTlQ8wnFxRNXH0Oi0zXeCJGuAIHRZWnRnprZ/ET1VwDGb4m+SO0vgbS6REGh5Lz1JzxqY3eMLfmbRkkDKx5MZujMwSqfkorno58zyRGL2L4cXLeZF48eJHof60yL3vp10ell+JBJnZf8feWHmZsQTyjziRiIRkUGAfFqHqNVnZTyOwE5eq45lP8NCXw6AAXNRMqBoBCIqRZk78syuDEQI2G66qg5CeeQGfnl0+QrwqFJTiLutBU5VYibDj9HIw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0
BudgetCheck 1.0.9
Release Details
UpdatedMay 22, 2026, 6:35 p.m.
Changelog
  • Fix App Store info.xml validation: screenshots before donation/dependencies, settings before navigations, drop unsupported keywords, cap at 10 screenshots (schema limit).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureDn5a3JvhXhYY5r502pyiNdnQIutmv8UTOtEIHY/OYiZpQFHJg2Gd5L7OHVAACh9haxzG8K80pzfFn7mch1BxwQXKCV3s0lwGxsbfQ6OBd+Xkend/iJiwZVkroT0ZdOQJOK0AmN94v6LtJJ8tGyqN35UmmUtiJb1TePTXkXkshroRp1wd+RQx8WqYwBhUxMk/r8QMfEIOGaOoMMC1N5GV5gS+lJXfdccOaKgGRHubZJuqmwvXZyOQYzANgtoAXKyV1AkQIEPkMJrzEuhG2Ne240OR+PWVuudub0ioJPvF9w1aVtf8qX3j2p2N3VBeBlNKNMwIyp3bomU0zbSIG47veGNigmnBMiiKRPLVUuS9AZYMMn5PgShpsHKgk2FWGnFJCjbn/vLjNU2dTalE3F2KWw4Xy8R7bSGo9P7zIRhdh8ixkA1t1KEZMZvb20cR2TRaZrp02x4RXTBe5kb+Sd8C8+qJbLiUynXO4WH4tS/b8hQIp/cHP6LR1JGYXpyFjpiI0R3ZOJI9i2t+Sx/a9RebMCBheRd1KN0lNv0PyrNcKDZz3hxGw621l+Xz8dAZEWO8LUvh4Az9zpSsuTIrUf0Ai1BpShu/aBxcz22NVhAmkDmdM0r8RvE99uyRzZFll8TtDVIy2FJUk4EzieJoQZRx0UfK7GdBGp3bLldTarHgP8Y=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0

Nextcloud 32

BudgetCheck 1.4.8
Release Details
UpdatedOct. 12, 2026, 7:56 a.m.
Changelog

Added

  • Simplified Chinese localization (issue #24): BudgetCheck is now fully translated into 简体中文 — workspaces, bookings, CSV import and export, recurring bookings, and settings ship a complete zh_CN catalog. Thanks to the community contribution that started this catalog; the remaining strings were completed and reviewed for terminology consistency with the BudgetCheck mobile companion app.
  • Plural strings are now translatable in every locale: the fifteen message pairs used for counts (transactions, recurring generations, import rows, …) previously always rendered in English. They are now real catalog entries with the correct number of plural forms per language.

Fixed

  • Literal percent signs no longer show as “%%”: a hardening pass had escaped percent signs for the PHP formatter but also hit JavaScript-rendered texts — labels such as “10 %” or the VAT rate would have displayed a doubled “%%”. Each string now carries the escaping its renderer actually needs.
  • Corrected untranslated and case-only-differing values across the existing catalogs.

Changed

  • The translation checker now validates plural message sets and percent escaping per renderer, so both defect classes above are caught before release.
  • Maintenance: dropped deprecated clip: rect() styles and cleaned the shared app-feedback regex (fleet-wide sync).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureTQMru9+Wp6/V0JioRdxKdHLr/cVdKaa4zmdHX0qlqzJVvaY6VNHk4cccPbYpc/ishO9+rRiu7pGV8MKCwvnrRg98QT5wdt0IBbwb8i3mwOKE6PewWc2XfixktcRjDpwNV53CfaZA//RwxsQnb4Sgj26lHQCT9LF6Rwj3L8TT3LkAyFuGnSIDjCYRLomwI8xzZ4/aEG2pZBLUEAiLF+tpBhpudE8aGuQxRsjX/RzkaEXt5DCp7pvm2nxsCsZhkUddbVV2bsXCihSS7G+sEh+0KClLRGoYea92WCtbawrouBzFK0eQFa2tXMcmAean2JBQMLr8KJeI88LlAPAlPEYwHVeIjLZ5N7lptkc25uCdD3qKN/PpmEYeN0IahLOiGMv0WDdR2BrTBThFlrkh1hCO0rUuIGL2o57z4teL8XtY0ytxuTEYSHIHvQujsdzAVxMtUCC5j8ztT66qcmZ8LO7l4/dxIy2au5MRvZfkCuLQZcCJN4tm0hgkdS4T7mnJzaeAcveq6HKYO3OaE8mbBNWQyEuUhfCGGkKVf38SPWlH/CyEMKmGIUJ9a8NAYvak+PQcE7VcfOkClz6OTwi+0OGMFPTyS5yI8++Z3cETVBso6W3niS2ysgS2KKPXVLZWzzcD2zGoWMUorLCUJksdD4EI6qvhec/K0eyTSWApb8sNRqo=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.7
Release Details
UpdatedOct. 10, 2026, 3:27 p.m.
Changelog

Changed

  • shared app-feedback render (focus-ring + toast-dedup SSOT)
  • Atlas farm v3.5.15: strict-id route reqs + contrast suite + l10n generator fix + test-harness cascade

Unreleased

Added

  • CSV import: separate income and expense columns (issue #23): bank exports that split the amount into two columns — one value per row, the other left blank — now import without editing the file. Recognised headers include “Expenses”/“Income”, “Ausgaben”/“Einnahmen”, and “Debit”/“Credit” or “Soll”/“Haben” pairs when they contain amounts; a minus sign on the expense column is accepted, and a bare dash counts as empty. Ambiguous header names are decided by their data, so a single “Debit” column holding debit/credit keywords still works as a direction column. Extra columns such as a running balance are ignored.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
Signaturegl/QFzQnXTF0uXgNMdnMFQqUsSs0Z16Qr2MIWOEj1jr0rRKGXngngVS7PptEQVtpEi/vZgrNvofYOLXnZaioGvXt4b3KfxvYqcoDQjU9cs+qNMcxvPOHOB31YxB/kJZybDYAibcYlimx6gMdRTeFsegEkTMinFft3u7CDokgcxTxTOu//9ugxoDDslfZxga+T/+B0m6pHxlZ0dvzuujA1ifbIhJbNTGrYEhTd8NH2tNA7HBpYS2YSui8Hmu3tAjP549ZHdoYEJhDT5gvWQD1CDMbiexwO6Rfq+Qv2F9sOAHyQEOkum/ywjtNq3VQrd3Nr6JbEttuLhUpt2y0wB7O1tcnVg6BkzjfDy1ba7dRlK8ZklFxy5EAWWq7Bpq8UBBtakAxyZplVj+Oitbw6E3Mz1haSBYsgv+1Qs1bTWGtT3+eXP32+VLtXnooMMnyyXxpaxjsztOKBzD8znKTMUgAsvnmOPa0K4rI/OycJNwpsaabiU0YQ9a0E8WfvsIg5Qht487XnRTFDl/arNUjWI0loMQzaU7gVMBg8s66imRI+V79DlUmIghU4zgbm5xoCxLzUtb4WIe3xsu8WC2FFQCrmqQV3WDLrQ4FMfYHMwFJzJc4NT7ZfLpNcuVCK1M9bQQcxfv+48t42sovdH/f80BXwUkHJrHgfNo/AH99EUzqycg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.2
Release Details
UpdatedOct. 4, 2026, 7:10 p.m.
Changelog

Fixed

  • API hardening: stricter request validation and error paths.
  • Theme rendering now uses real OCS theming values; field-level error rendering synced from the shared component.
  • Localization parity and catalog corpus fixes.

Changed

  • Atlas v3.5.14 verification pass: expanded contract coverage; store screenshot URLs corrected.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureA2P/kVw88MT2KAYMD5EzCI4qkskO687r8o89N1xaMBJKnNAWtBt1klTusS/1nevjmVXCDMsFvPo20ZTQh4l/861uAIRkqsZkvG71nEAYO/nVhFLeN+GmhXty1KpROFwWVEYk/Ex/M9BQf5C1mHmSqf0Vr6/ZnstAESBBu7PoBiHL0+v6nabApjgEO/JZUvFkGgGFAXS3nPIKtwAsFnrFl7J+AOlc898No37O3QqXHEfa/9KJkLKpbqFdhqN88ZSIGZhhiQsuvOsZG/l5LY9y6Q00lcXKql89fJZkGi+RvM2rLXIrkQa9U3wvLWeoBrOG5cMEoUI01qMw73fDxGgFUNzn+dT0jnQb7WtAYudd1FJE0wZjQ6FNQx/CSWzEx3z28kgOdodi4bzPcwdiflx8k4CUAGGal9l7lVw8//9+bYjwXFQkZgnl3SbDlgRK9lwtp6dA1kHDAJf5wQvCaXHtyEuGltyUcZWP2rkF49HhhV+iv4FeC+0eA5Pmf/iZ7Fc4WCGWdbg3j39ecOlmf3uFwyQLnPRs+byQ1P1oiDxu39OMP7jvNMSita7xIa7+36qRU62GEwD+2rNiugKRc8oQI7OXqQcfvmXqL9GqWEt1/zqkM9YgrI3IOc8vBwuKFhb8PZEMbb8YxciqPB6uJK4CR4sYa9HczeV1+FhGr0pEnz8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.1
Release Details
UpdatedSept. 28, 2026, 2:34 p.m.
Changelog

Fixed

  • Attachment View/Download 404 with doubled /index.php/ (#20): on installs without pretty URLs, linkToRoute already returns /index.php/apps/budgetcheck/.... The gallery was calling OC.generateUrl again and producing /index.php/index.php/.... Delete was unaffected (relative API paths). Companion app uses the mobile download API and was not affected.
  • l10n parity: dropped orphan msgids with a literal \' (PHP-escape leak of “Copy last month's budget…”) from fr/nl/it/pl/pt_BR, reordered catalogs to match en.json, and hardened check-l10n-parity.php + sync-l10n-keys-from-en.php so this class of drift fails CI and is one command to repair.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturemERz63QfNXCX2l4kVJdDFobFQiXRNKFOiB/1A2CKc5unTUh9opAeH9UmBKVcDxmrI8J7LInY/+7lX9vWufET3LU/IOSYTZUKxWUk/KdP00gRPGkJxXJc9wWHP9c1VTsAKuGG3OnC6VoWsiZUG/YHgyqemPDj6JYpNl6y9SssGTI9+o44PjGInPWBR5DBzZGtVfR92ymMSNQFJtWFhEMBaRG/lnQFb1viORmHel/H0Ljd+Adq9nL6VB9/18/M0ot7qWN6oSG3kHtItPdLxon8ZbXsZwnOd5Uoj4PjQ9zJdllB2KovxGTZunw7IKkS2DJ2uausudF973f+fhv3k6TY0wQfh5rgIdl5VY8b0ViywC8LpBxk+w+ZrCzygyn4CYQ05s76jxWZiw04TrkJOVcVttJ0maYMva/9ITMvku5x/a25FYRKIdLFPZ6nK1z+VEfAWfpmm3BuziwNdtxNOqohRrQqCQLO+7Akp/Sia6EynjmQyaI8faqHRDEJ7H2yAzXPftyC2u/7ailP+PQf/bYyGVMTdjlK1zxDf5m2PZRwnbE5XpyI8npXKJ04q2gHK8+Zk/t98ypRteIUIHc+GkNAitXaqgpXF2Uz9d1BgXKxf+lFFY4k3RuWOyGurPJGkpvok0kK+gNBAcnKK2PjvJ5JQEKeYfkncbsYZ+0ZW4DILLI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.4.0
Release Details
UpdatedSept. 12, 2026, 8:24 p.m.
Changelog

Added

  • Delete workspace (#19): managers can permanently remove a workspace from Settings → Workspace (typed-name confirmation, impact preview, cascade of bookings/attachments/budgets/members/snapshots). Project workspaces warn that InvoiceCheck invoices remain but settlement links break.
  • Mobile companion API 7: DELETE /api/mobile/v1/workspaces/{id} with the same confirmName gate and rate limit (5/hour).

Security

  • Workspace delete is manager-only (private workspaces: individual manager only; no app-admin bypass). Exact workspace-name confirmation required.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureRZyzSvfPcIbXGp7KlK5Sa3Nih4lLR3zWGGEQzKtnT5UL2UD9i4roX5jCRMf+mXIjd9Hgi5DjeEy5DCB0FqVNNvwnBrtAMaJenYJ+pZ/70TeJAhqTdKIzkXyeiX41BNgqhCxcWAdV0JjLGQhDvZNumygKpJJVjtj2V07aBJT1wVjA577CIovyhMATUG3w+uFE9yeWEupzQFjsypx4rpcqbFO+aGaXdO0QJky5g/X9QmUJGNDxyJhDMWwzkq6kgXBDdl9UQIuneN+TeH0IRkFtyDFdCh75Ft++4w43R3WeAGzsCjpe1BQxLxgHGRe6SorzStCNs42hM0CHTTQeKX5Vw7wmIEJO8RksElf+HPuiv7JvhjAGDVl7DVVRDDDL72niw9SQwejCODmlXRyZrMkWa3tuqYqoD1KOpG5nXkOqLMyJbOzcXbUp3G4si/gZVG6erZjGK7OqUvikmrIbyu4Sg3smxV5CC6nw/SzLTivVq6FrF50luGW//pNG15UboXIVjQ1kRdlMcYSmV7uY0kFC1a68z2D7VAF/l4Zmfex2zquHYD2uiJQKj+aZQqktceMwMhfTDT8DSqmc5KIblDrnCSP2yRMtaniuzcQNESBveKDHPO5u7k3+k0cb+7LpIBxFwZGIYxeuIWcRaD+7hsGp9agmO1o6F4H0rAtLZJdYyJE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.3.0
Release Details
UpdatedSept. 7, 2026, 5:55 p.m.
Changelog

Added

  • Recurring posting modes (#18): each rule chooses how dues land on the ledger.
  • Book automatically (default for new rules): writes real transactions on Generate / when due.
  • Plan for bank import (legacy behaviour, kept for existing rules): writes planned reminders that a matching import removes.
  • Hourly RecurringDueJob: auto-books active book-mode rules when next_due_date is on or before today in the workspace timezone. Plan-mode rules stay manual.
  • Catch-up actions: per-rule “Book now / Add plan now” for overdue dues, plus workspace “Add everything due”.
  • Generate can promote an existing planned twin to a real booking when switching to book mode (idempotent per rule+date).

Changed

  • Recurring settings UX rewritten for clarity (two modes, due badges, simpler verbs). WCAG 2.1 AA focus/labels retained.
  • Contributors see Settings → Recurring for catch-up only (Book / Add plan / Add everything due); create/edit/delete stay managers-only. Viewers stay redirected.
  • Inactive rules no longer offer Book/Add plan (plain “Paused” hint); Due badges expose an accessible name.
  • Real ledger rows may keep recurring_rule_id for provenance; uniqueness is one live row per (rule, date).
  • Closed months are skipped during generate/auto-due so the cursor never stalls forever.
  • Mobile recurring suggestions read amount.minor from the hydrated envelope (fixes always-zero amounts).
  • Full BudgetCheck native-speaker quality pass (web + companion): register (Sie/vous/usted/u/Lei), Transactions nav binding, workspace-manager role terms, untranslated lock/offline mobile strings, glossary alignment (PL Księgowania; IT button chrome vs Lei body).

Fixed

  • Book + import no longer doubles: matching bank/manual bookings (no recurring_rule_id) soft-delete the live book-mode auto-book. Recurring generate itself never replaces sibling months (adjacent-month matcher is import-only).
  • Dev cron sidecar: nextcloud-cron service + backgroundjobs_mode=cron so RecurringDueJob runs without web traffic. List recurring also does a rate-limited opportunistic due sweep.
  • Mobile recurring UI: Start → “Add what is due” screen with Book now (wired to generate-due API).

Security

  • Auto-due uses the rule author (fallback: earliest workspace manager) under the same contributor ACL as manual Generate; FOR UPDATE on the rule prevents double-posts under concurrent job + UI.
  • Add full period (mode=full_period / future through) is managers-only at API and service layer; contributors retain due catch-up Generate (dueCatchUp + through ≤ today).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureRBhia8rvbpf4HytBK1LGXHoKUKf8F5/XUOc5pqgIlWyx2vhnxj3lACL4skjqP/jQ3HrI6jxFISuTbNy3ou+JZ0SqzsScdJM4I2nA83puVfYnBqmc3f8tZTH3KstviBoEzF+OZkSU8qZpkLH95wbnfVoPlX96PxHyTRg99+IqTmv+RpmRdvmy5yD3zW9Fsc8eaEA7IQGBJQ+FmxpXkOz1lQvfNMVAhTQVYXpqOUuz+5UbgqJCtTdvSWqYFJ9rQWf4sLVuKmz45Ih6xkUNULSl4Ifk0AxmAmokJKtaWPwdFf44OlxzE1+7EXJ075juDAimhIW9qA7gxXODyHgFiwhVOEyCPxmNRcyGDC0aFT/Lly3Qb23kZu9S2NfXpGWxOJ5usJK0zkpAQWMeWy3o6CjwrItCIpjaEc8cby21ymewQ9L1IhaTAegIAKFJkRcXa15rmPV27zYTq1aWKdjn47r/ukUhYDNiHjV1KSjEbhkmVdQYLyOlYRjkd3xu30oTLu/+HQnaapyvl1dQLDLFTC8wsQMvUERc2gmi+dxGmhqsaR1pLqjnZxDOMY/6Hyy4OQzseY9MuGPWlIBrz2juPJrZPwzgMXGkLTfzWqG8lhPJPZh/+2T9fvzDmOSbX2ZBcpyTDhH9iGq0zIEpvtpsRh97duFuZzRYPwiR7HZXM3BTwN0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<36.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.14
Release Details
UpdatedAug. 20, 2026, 10:07 a.m.
Changelog

Fixed

  • Rate limits for LDAP/AD UUID user ids (#17): counters are stored in per-user preferences (rate_limit:{action}) instead of embedding the userId in an oc_appconfig key (VARCHAR(64)). Favoriting workspaces and other rate-limited actions work for UUID-style UIDs; exclusive locking also respects the 64-char oc_file_locks key limit.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturejtnZcqBtamWv8CXoqTlYfKy91ah7eSzPZ3jtBy0xNbjmZLvkIn+LYBY7YErVce87IIyCDtiH+1FG2Zi9p1cF7jb209QhGoYNom/25pCsGYY4SC5f5JKOwm2SXByDWkCJxvhHAwccArwf8axvFEhgqDFyAuHwrwhq2oKy+eq779mshbK61JoYe2B/igitwFpn6gAVWHkJUtqM2SJHp9vOBzy8rNZkcUbAMKYQJL5l+mD6Kx8/keI90JyUxds7cyOdkQzYrOdchAQxouVycAPIQxiScCItOcUE3X21iVX75eefl/pE2TbjplUs8W2cujVPRVXbD+lFzlzF5Du4o8Ix4QZSxedtHJ/mz2DWpeBlZ2LepdOxTRUhv4EWSu43bA/klSIvA84N5OuPB3adSFj4hmLpeEnizzju6TZDPtBuX935eInpYPZwha978pgebWwNdJC0Z9nVoXCTnOX0TerDGdo+B/SS6m317/WqYAt44swf6nVthFkLnHVopWp1v9uPqCgfd/9fGNh210bWusiZlIp/SjCYV5LsEWJpCTqY3yFHs5UpR2Nuzld3reqwTwLAH2UqmaxhK0UtjDCx2CkxM1p9q+Ng8qjZ3pbo0OXiausGQhAQvGAsYbB8enndrM7aFViAw73e9qEicCdrCU6S3qwHfk7F8FNUrXWcdZb2TFs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.13
Release Details
UpdatedAug. 19, 2026, 12:53 p.m.
Changelog

Changed

  • l10n glossary alignment: corrected wrong translations and standardised button labels across all shipped locales to match the cross-app glossary.
  • Help, Support & Us / Get the App: WCAG 2.1 AA hardening and translated footer copy for all website footer locales.
  • CI: collapsed GitHub Actions to a single PHP syntax-only smoke job; full test suites stay local.
  • Nextcloud: max-version remains 34 (current stable 34.0.3).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureKF8mXEc9MgF48E56sXCmKhkyiqNM5koXFya1Zw/+q6j2US8tOGSOpqzPL+gw9tmfRqqoSkDa4690h9x+HpwS4ARxNVx5A9Cks9WmD1R+mu/7+IT95w4LpRzu3X59keQjmzhQNmVWY+JsTZgqWpb+HpbUGPl0JBlWv4x89QazF5idcpsxtLjH0jLwm2SC8z43J7MxNQkXJLg6Fpglu08PTiQvyP5zE9TZMvPXByNiDKYQLRwazbPmcVVyj8lICHRR2yNirGjM218MkKDgQRh0uAk0tFWIPucPbh5dmeo7Fyszhef/7O86JMSvz7Cpm0kTcGQc/cihsM1j3fAoP8xbmBGoBesfJK8UKs1JJ2bCWs3T4r2/COCmpR3XP+bdkS1tmnJyOb1fJg6aWVJ+HHew7I+P7P1WkPTyPLehmrtWs9Tkb5sLqs05bSsnITod9MX7i9CjZLCFHE+C9+4bctpN7Ke8bX6eWwXTTxaSlwMnRrMBJDF509raxvTAV9Rqgz1ngGAMOK6Bv6iuDd9oivbWyV2ALoWLJR1dHWbZ3eFD2BKI61/qwkw7qI1DXzixYQU3JGh5YHYgxTkJVnlwMifQ4ZE7OjO3Di867M8Hf9doxWl4q+vsrF03VZ8Iks7bqZt2uVjtfrrneAaHGmR+IXNA78qmV6tM/rq3wlyuAJ4SKN4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.12
Release Details
UpdatedAug. 13, 2026, 6:17 p.m.
Changelog

Added

  • Brazilian Portuguese (pt_BR): full UI catalog (l10n/pt_BR.json / pt_BR.js).

Changed

  • l10n tooling: parity / regenerate / sync scripts recognise pt_BR.
  • Nextcloud: max-version remains 34 (current stable 34.0.3).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureaMkiTQWHmITycarjcBAt0G2h8s0RPUm/U2tf96ihACsVnTokZC/ItViHinstNNuZJtgz21ZFsJpKpKbLG+3gkcp0j3nfzQo5fEFMYiYi6cS8Yx7bdLNJcHnSs9bk16keklP3QgOCDlF1eZsd/Jswc+n8IHgbQr5eMs6/ZFdHGYakjsjj9lmWqgNRmwTi0fTCz/F4uNuxSi9GsO/qbmUO2gsb/6QZ5/RU/4SlMoSBJW3ded2HAB9WLN/3S0O/U4XJMCJJtZyOmWomxPxOIYphJ0BYa2gNNTnTyK+HwnXN95bAHBFS9R8Me/craNL3C4tnE0WqecrBJQZif2sB9tRdrt4QSj3eHFRdBdUOPHgFTgvpi+TjQYySmr/02bI1uZkBUHk6FD9cXI+HxhMcJDknSDzy/QJMlUgGovPj7sUsO9D/UxrR2g5VRWvA/Y2isuKUrDr9+CXLy1amyykTkSWZEDzBCZzv2C5gXf5ZiRNf+BNJ2zfYMpuF2VR059M3SkujQX1t4Dqs+193LZVmFfk97FecY5rBiWExLjzWxS59r9LrzKyY10zwi06TvcAcp+JLnH+tNqewOQbhe9wciwVfPJtrUvZSsvvDTtl9f7pSKR55zALlGw9bGlVz6nSIG4C3H/qsSqZC8Yb+mYtwcw4h9I5sgcTG82YpZ66avpkYil4=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.11
Release Details
UpdatedAug. 11, 2026, 3:06 p.m.
Changelog

Changed

  • Sole-manager private workspaces: converting standard → private no longer requires a second manager. Demoting/removing managers uses the normal last-manager rule (≥1). Groups are still forbidden on private workspaces.
  • Confirmation and help copy warn that if the sole manager account is removed, the private workspace cannot be opened in BudgetCheck (host/DB recovery only).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturegjXXGvbwEbbTdq7kgLjYqKg0JRbdaJw9jKeE71uaMMThX2VsWWsP+OndHFRb7pHWdnGwhyRYIPr4B04+dDvHpvu2WH6xWFTjXjY32QZaHNG5AZMWQQbfECgKPZQrTa+p363VlQVsnPrLvDA6svHzMxZbaSELBJugxvuBgHIWyS5lpPJIie01bPxsnp450m90hW6DDaF1FcBG69GLpBOiJ5uYh7Q4WQSSSZ/fuMlSy7vyefvMpfNcWGwUf/miZ1eZ0FCjy4o5vP89tE4UEp2ZdVTC++qeCBzOKa17casmXfH/YVEkS2bRACogRttUdwncd7UEiOpo1WHnaiDFXn4Z1ssCytxghVqQ2LHeVVlRu0U+BAtHzHB9WLeqYc7rRHzQjIqDj5tiZeOYr0s9GZjBQD+VHTiIUkCAxf3ZrN57YIsveYDrBwPt6z4lDL/43vCw5BGRS73uff/bf6S4PoR3vDAsFRRc63pu5uFBoz29Z6FqXePmchyHVA5IQ/4V4icxjpmlwNIPIIbm5K2gPgmsjRqGApaGBVFIpxTfeoAvOtrdTu7l8GSYD3oe1mNh/dCIeJZvnDiABtiIJBPm9ZYOisXPDWFRx1Nj6A0z+2FpKXUODMcthm+0bE/eiyOcnqHVHE7DVxxHclX/rxFHq+TYJoeUdOZURQAyHtvxck5e+qU=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.10
Release Details
UpdatedAug. 11, 2026, 12:44 p.m.
Changelog

Added

  • Private workspaces (ACL confidential mode): managers can mark a workspace private so Nextcloud system admins and BudgetCheck app admins who are not members cannot see it in lists or open workspace-scoped APIs. Host/DB disclosure is shown before enabling private (not E2EE).
  • Create rules: any user who can open the app may create a private workspace; standard workspace create remains app-admin-only.
  • Companion API 6: mobile clients can create with privacyMode and update privacy via PUT /api/mobile/v1/workspaces/{id} under the same dual-manager / no-groups guards.
  • Web and companion UX for privacy mode (settings fieldset, create modal, members group lock, Private badge).

Changed

  • Converting a standard workspace to private requires ≥2 individual managers and no Nextcloud group memberships; private workspaces allow individuals only.
  • Member demote/remove and privacy toggles serialize with workspace row locks to avoid last-manager races.
  • Favorites / last-used and admin digest surfaces clip or opaque-count private workspaces (no name/id leak to non-members).

Security

  • Private workspaces skip admin role bypass and group-role inheritance; non-member admins get the same denial class as unknown workspace IDs.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureWhCpil3i9Z0He3TlZK+FGVFid4GI5zR0Vdls7I1Vbq0E2nnE8n2co7EWDV638oB3KtxhuZwPH1iCmah2/QiXFNOalLi4RgYt4/qiCorZHhiqT89awIU4C8gZXh4PqrXrrYgWPwEdp+IBCMMT0NcRCsgju1Cv6FTOPa/z7VwT4xqOdidxBtxPJYL7aO0TvFASCZ4HJdxv4mEf32pcW8TgTeGF+/g3qBW82KYyPCacUrV29JdLkqnj+6HuB1Oo3LHekYviPJzz05+14otwhdi1shjLefBpUfvEIQ2130FYHalkfGdnm0MEI2lXLnaZxGKMn8m/FsnLqvAh+p42zSigtljelqBnDzrZKlPDf9mPl2O/VU8J+sFoShSM7IdBcgFDaQ7dL7VMXnImkfvuAg7M1OjM0g6DdUaVDW0Jxne2t05yS2Hxi31K5Mg9p5FsfjoB1LacATvytDou1i+ouMGDD7ZZ0PWFKGSGsVty3I/thH4YV3IbY338ZPLZR4aPlbOLC6i7jTm8E4eEphMpTzyYjuFN+7HP1kZl6mco4bWcd+r4cmdGwr861+VrT+13SM8rm4UkBtDbGWEj235LRmrfFNWJ4gViIqVv5BWNHrrvav5cwymAa0nMhDwjy7a4+FWoUZkO2lmJyfroBKIrMUVhFLrjqemRcTu8FXZr1bxIzLg=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.7
Release Details
UpdatedAug. 2, 2026, 12:14 p.m.
Changelog

Added

  • InvoicingCheck compose strip on project workspaces: soft deep links to create an invoice and open receivables filtered by workspaceId when InvoicingCheck is enabled (settlement stays in BudgetCheck).

Changed

  • Uninstall: app removal still drops tables, config, and upgrade-backup snapshots; receipt attachment binaries in appdata are no longer deleted by the uninstall repair step.
  • l10n: Locale catalog refresh across supported languages.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturegP4ofTR/qlal+6K9My5xoUmt0FhGFmXag7i+yq4S9WIGAEHR7fvqBft7dGs9aWGnP/T6C3NZH4Zae9oeGNvai7NrdliV+46/mSiWToveHQEHXZST30TXC+YPuyqw0VsBB1tK7AUw1Xefrn8pdM3xN+c/q2f1GnYixAzeV/5+CStS+AdVZhm91V1CdpKHvlSJDCQCyhjWR3WtNOfFifVTQZaqhXdYpJkvW+YEnxiElKHdWUNwdlMHzaetX0sKmsCzlH/6/TvOTe/bhRYoREUhly2F5HVVNU4qM02gqe+br3MtseB+Fwxz8nHhbcgr+H+HbQdRNdpGL+veq7wFeejSKGpcty5sYRf8cUKOzNuezfxVe0QJG/v7ZC2cUmOf8YVxQYAAgumU3mOuZesfKwa7J9pXAM1FgFin1Nub1IMFRCkvdSq8a9kRS48cIlFRijHHAz0uUOWVR7nRGo0lmpASmNZCMNm12cwnZ9cA5i0KaBKtyj+UaF0ujG+AX9PbDjgDkbwRakcv498ouLub78ruRFfloQOBsWhyCQZvmUs4qM58HQQXf+D0kIdHCJd7BuNS5xRSEXtWboR/dA2cHkOtHjRVHxAGHq/n4FTN714eK72WXXIGn6lWN1in/UnOv3tA9TJDxBghDDuQ7A/iXaQeo8I3Avc3OnIpxD9HW7cQFYk=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.3
Release Details
UpdatedJuly 31, 2026, 12:19 p.m.
Changelog

Added

  • Mobile companion API v5: workspace-bound attachment download/preview endpoint (GET /api/mobile/v1/workspaces/{workspaceId}/attachments/{attachmentId}/download) streaming receipt bytes with nosniff, no-store, sanitized Content-Disposition, strict CSP for inline previews, and per-user rate limiting.
  • Mobile companion API v4: monthly/yearly/period glance summaries (scope=month|year|all with new household span aggregation) and app-admin workspace creation mirroring the web permission model.
  • Home category overview chips now carry a direction field and include income categories with activity, so the companion can split spending and income views.

Security / integrity

  • Attachment delivery for the companion is bound to the requested workspace (resolveForDeliveryInWorkspace): a crafted attachment id from another workspace, or from a deleted transaction, is rejected with an opaque access-denied error (IDOR closed).
  • Year/scope summary parameters are strictly validated (four-digit year window, whitelisted scopes) with 422 validation errors.

Fixed

  • Mobile transaction list shape normalized; home category overview no longer drops income rows with activity.

Tests

  • New behavior/contract suites for attachment download (workspace mismatch, deleted transaction, rate limit, header hygiene) and glance summaries; mobile-companion mutation harness extended (attachment workspace-bind and download mutations all killed).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturebPl++SnvVgKR2ZNLiI0Uygkc7wvl6iWaHfDHRxnUR/TobeB922BmSFEPmN1Qv0p9fR5bVaUF4SeiAJHtrMYw+eObLFqJYnaT4roPs9t24V27iHpxTh9Xv7xuluRN4O3raiBOYZHqVWCKAR5Rh/LJ9ShYt0iq9jebrCMcR5SdsvoV7levLs5yneA5laWT9mH2KVzfZF0EpuuPjhuCHYBI9RqxE0Ls4C+aFE7b6prvQUIdC0ZtjsQrJecbh3emj1oqID6IyK54XGFow2myMpVXk/LUorVIg2LOZwysiWMPrM/GURu9J4pZwJlS/HH+He1UEEGjl1b3P0LeIDSlTSTbul8Z+Ry4aHdes807kfapAnCN1v8nkO6mAXDo/7s6uY1HpTGu6rPh6sW3oJwFpbwLDtIXC6MyE9pSQiyazY4F5VqCJPwIKhSdBTCZ1cesb7xKJwVTw3w/mzsVZUnhqJ+d6joQqRosrMzsTx4UanFZoMJQ7MWlPcdZuTTZ0PKRQmUAR9WOyyXB3mezKp0emzMrDoCSzTAZ0RXVnPqUtFMaMVk4P7GGNqN17eSwGIc3byfdlKCFWB6oWPTUYARvgo6EmrSmftiuuGLIoebYpUe2sUobIfnqQJC/0UfXDahk4nWsC7nugqPznyCYcq8/nHnAcCrJTJ127MSj0TOOPoiPtH0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.2
Release Details
UpdatedJuly 30, 2026, 9:22 p.m.
Changelog

Security / integrity

  • Mobile mutation channel now requires a cryptographically valid CSRF token (IRequest::passesCSRFCheck()); forged non-empty requesttoken strings are rejected. Basic/Bearer app-password clients are unaffected.
  • New exclusive workspace row lock (SELECT … FOR UPDATE) serializes monthly close/reopen against ledger writers: snapshot summary and hash are computed under the lock, and budget-target and attachment writes re-check closed state under the same lock (TOCTOU closed).
  • Budget upsert collapses historical duplicate (workspace, month, category) rows under the write lock (NULL category_id is not uniquely indexed on all engines).
  • Attachment overwrite (receipt crop bake) snapshots prior bytes and restores the stored file when the DB metadata update fails — disk never stays ahead of durable metadata.
  • Adding or removing attachments on a transaction of a closed month is rejected.

Fixed

  • Layout overflow hardening: cards, warnings list, and empty states wrap long titles instead of widening the app shell (min-width: 0 / max-width: 100% grid constraints).

Tests

  • New snapshot-close serialization contract test; expanded update/delete CAS, mobile-channel, design-system CSS, and frontend-hardening suites; closeout and mobile-companion mutation harnesses cover the new gates.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureChoGVud+Ib2oIeGvpp7sKvkCNnQ4EPRRWBogTTNeiwlL6T+XUFhtDOOU9b/kIVdS8YQ9n3aakhtYjnduHhtfE911hmilt+H38vrqBXGssRTq3kw6HiKzCP1YYh7V7Qs071GP3Wzj7+RzALhwtUEJ4AvIy0YqiDZ5Xnvhy1PbYq9jUMTm1BCW3CC0XirqFk0VxMaN6L/EeSkuN7T8m2vSSL779eUmzjC3hvCz/iEsDhqFP0dUgU6I8vKjWgceEEYZAxsSjj8kUjKp1RD6lhhKrKogOe5Nt6KEMBDqpYREUk6k06CDs7c/npSb4MJq0/Qe6jblININ1qBJABBhTemxlQKjmOH9plpearuFX5Qw0CBMmZkHPCf+x8Zq+3dVnXpLCaWL6zeHbbChDm/EqOIgPDH8mWxrnaD9c2oJ8X2G06dTlv8NOql7aCViRxWH2ufwrgQmxqUycpIgDSyh1P0jzhFnSd0GD5gOjIhMyaejoWOBKCk9yaqSaW0a8Aw6Esuyxqnk+ttfVjZAOscWM/0Juxv7oMKjv41tWvXyaaDOLCVGbfkNxD8jDG0awmYB5bkj0GGwMnIY7jbOvOesX/NPSoB9cWzGjSyx6hz1GARtygnhD6AxT79ZcFsq6b5pHPg75wRO7IPYkLiwhPfWFiqKTnAQ03QdUb5soNG/DSS9C08=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.1.1
Release Details
UpdatedJuly 29, 2026, 6:36 p.m.
Changelog

Added

  • In-app Support & Us admin surface with Partner CTAs.
  • Public billing facades for InvoiceCheck (BillingReadFacade / BillingWriteFacade, including paid-state handshake).
  • Mobile companion API surface (MobileApiController, capabilities, idempotent mutations).
  • Playwright shell a11y smoke and epic-gate / closeout / billing mutation harnesses.

Security / integrity

  • Transaction create/update/delete optimistic locking (version required; CAS on update/delete).
  • CSRF-required mutation coverage; opaque AccessDenied IDOR gates.

Fixed

  • Budgets navigation restored; warning recovery actions aligned with Dashboard.
  • Money envelopes include decimals (zero-decimal currencies); header month follows selected month.
  • Transaction dialog horizontal scrollbar; GET favorites remain read-only.
  • Uninstall cleanup limited to upgrade-backup snapshots.

Changed

  • Nextcloud compatibility 32–34; version sources aligned to 1.1.1.
  • Stabilized money formatting; dropped versioned asset filename suffixes.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureXbCeU+/vuAclh5wvS0JC5CH4LMVAOIyAwV4sspNFz28RW2FR87rromn3Mrz1deVDb0WVW+VbK3fH+3LhfknNjpQcsn8T4KCQKL5ZuQ+s+ILwRiDZvXk8yxxCbppfmscaV+Zh4G1501nUrgRceLIPNQowpY+/TlYtfl4jXVMlZTX9cp4PJo/orJpOaV8c4HhSdlpZNAeNSfnbr4WipTqJKUs2p1G2Ixc+mhiDyEO0q2TAJOyYlGiC+xXdCYb0guB20MsP30hYUZuhcEQ84TMnnnpfQtR3V2XD4K9jJbmrK/fMdnad7XVCQRpwx8sLKv3+PXfcIgIvRoLD6Kae1Liqry6NB/RFMPQNiwyEJj9Vbf/P03QZGQqVYIZdNgRqCDlNFEvJXOsuHrauvvlOmqRYP95N99LYAsBAwKvSRM1S5wJfLSjpFQlgb7//guTEfAWnIxEnSaX8ZQmlPy7Sqi4/Z96jWm3/jSD2MTJExXXGerHW1ap8i1VoOeb8FkmiNM2anEl/LBU1re1mV08zSfA3GaEmnl3/y8pj/BBiKKgoIGOWVCAlEgzVJI5hcuYUagAAqYN5guddRbdUq0Zg53ITHZXeZ6U/cYeSTpz0itk71irqZ1dkGJMGH4JjfpDdeMFH76HgN2ebeqAB9fMcWxfJ+//KFV9gF7HfutB1OVZWe7M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.29
Release Details
UpdatedJuly 21, 2026, 9:38 a.m.
Changelog

Fixed

  • Monatsübersicht (Kategorieverbrauch): Der „Include one-off (special) transactions“-Schalter wird jetzt für die geplanten-vs.-tatsächlichen Kategorien korrekt angewendet, damit die Anzeige verständlich und konsistent ist.
  • Audit-Härtung: Monatsabschluss-Snapshots (Close/Reopen) bleiben weiterhin kanonisch und unabhängig von der persönlichen Anzeige-Einstellung für „special“; dadurch bleibt der Berechnungs-Hash deterministisch.
  • Robustheit: Wechseln der Anzeige-Einstellung lädt die Monatsdaten konsistent neu und ignoriert veraltete Antworten (vermeidet UI-Race-Conditions).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
Signaturel0osK/Bj5kcr5p/8tYUSbJpiRiBig+9CGJOMjQlMmh+MKqr1S/bPlSjd622Spwb+5tAblZ7u1kaADfimHiN2r8+jC27dFXsR6NDhToFPCq0oRJjrtKCWdNBK8BLnyl6zOXffq4k2+BT3Yv0oBBeEfvK/WV8W/Z/ycvLQdkzBeISt1mjKd3zDJmELhexIZbI3QEka0kG1X9oH9ilb73onO7lifi3b+YIifDU+KD0f3NKoB/C/zy/ZQuoSmNEAoZk5S5dU8KRgp38KSMNFDKv/pOt9tS3rIP7p57EIKqiEEZkBRykayQ58sl+5jzI5i8AGDae8rwTQFks01VFCYy5Ifp+fGevJZ9h0V+sRNu7ZQr32+Y6tL3Xiy1KdyC6jHQ9UOlysei5G4Y7C9E343MeuBwgPw70TzS/k/bQ6eJf0JvU6lXAb+zU51IVVTv0R9rFGltgpTxRieXnQ483AtLfEaT1viKyzyxA+z/AHpsiiKULFS7ckP3/qiTViPCU9yUiGa4Ygu1ODk3YfUUNBIutQC5plsGX+qai02dCKg2t7+NSibe0/D0FQ6azgn3Qjt2jk3HxAna98CEM54W+GsMXiIhepWaM9YWH48zk0VJQo2PPLgIteXszq+srI0KqqmRB5bvZh6MgRQzsXRE0nhkfRZJOkXMbR7C6aM8MFxpUiZ6M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.28
Release Details
UpdatedJuly 15, 2026, 10:26 a.m.
Changelog

Changed

  • Receipt gallery toolbar: grouped controls with tooltips, clearer hover/focus states, busy guards while saving, and a corrected rotate-clockwise icon.
  • Gallery translations: attachment gallery strings are now translated across all supported locales (including regional variants).

Fixed

  • Upgrade backup: snapshot folder creation failures (permissions, quota) now surface as UpgradeBackupException instead of escaping the backup handler.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureCEknFDwanggvbAJ/Fz8uGVeqYbUtxYQQDdyrWyOL5Zs9QbkFkSC6T7UICLyZAIXETUi04gP/wmZt0IE57vCAPqEROF9J4wXoclEu4J+9mjgPd1EXVz+8AhtVyqoqdfNk3iwOkTum+YKcN9mnZ0iH+LuEa1tVoTPZdyW6+ZKb3nf6h/YNut9oZzJ5JtNICKluG/4TmCQdNJLU84ItrfaVb+u6+UPkBb9gFfBkpqhkEBiqo8vHjLdZ99Hkp0HhFd0HtCnvNuV7KHPj0tjfY5a/XHZxiNN+OACFrCDhhB8S6XH0ehUk4lKwsO3h+/gb5hoNKALZqOZAseubbf6Cbzb6iU6eQ1/TLXLdQV2boY7Pu/7aX9AwWm/6AJb0504fYpbfREhW0vZZ3tyx+VuNq8H+brT5Saeftvr5Jsl5QmF/8srIpgPURQSBebs6pV/uQGMYoMXEIVt51Tk/EljQDDzZZ1IVW/QSw2HiSvfE+AB8Ge6uCsdDTP7mb/kdbhncpiWluG6pSk1WCBwmWGnmuwcNZGt+TMtLgp7Q+xRJw1HGIaBH7t5fvostGi9FVVTD9ZYVU6Ka2udAcmFWmN2Hh42MPrmBCig458wH0qJgiii/o7K/YBvDr+FVxxo2pXieDpzP46DG1Msz4KSjaA41Lhu/P8HJc5UjxrRrNnMtF7Tqw48=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.21
Release Details
UpdatedJuly 11, 2026, 7:39 p.m.
Changelog

Fixed

  • Planned entries in summaries: dashboard, monthly, yearly, and close snapshots now exclude is_planned placeholder rows from income/expense/budget actual totals (they remain visible on the ledger until matched).
  • Recurring generate: batch generation runs in a DB transaction, skips duplicate dates idempotently, blocks closed months, and deactivates rules that have passed their end date.
  • Budget planned sync: month sync is transactional; zero-target categories no longer throw a misleading 403 when no budget row exists.

Changed

  • Recurring rules table shows end date; modal adds active/inactive toggle and stronger end-date warnings (live region + save confirm).
  • Yearly month cards show text badges for over-budget and closed states; recurring action buttons have unique accessible names.
  • Modal focus lands on the first form field; dashboard warnings include severity text for screen readers.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureQoo/mwZxj6Unhvj3lnfhebu7g2p3HJDcos5kM0OXkTGvw67F42c3UWevVN3JzCzX8BHvLRjOUWqy/4sQVZoTxNvtSt2bzC3b+oqTXqmWaWzZQcypoA43+JCKUcnIQlhj1vJVQNIVtps4zsQs/DszKUdTJVL7z2AsAIWsDAQm1xCHgkAd9TmHeRQn1ZLocQurn1RZj4Fau4JfUAPG+DiPu+QsDsMS1CAVCQtxPPGekVW7JNmFIdvdJ2uZDvRbg90j5C12i9LEj3dHpIYKq5uvCzfMq2k3qf1m4XZAJmOlFnJtHKOlIZzHFnsh1FjCjezfGmIh8uhMIocbPtbacbhLqoPG/kM5IARJwiKxxb0YNfquIx7kxw9kRXeX+TVpo75g3FhdzY4SABZ8X9kmJdugQ0r1BWIYdahKBOuIe/lzIJPdNWz92qEf48GIb/Ly/Ts5fjElwKMj3/J2kbQ5a5zfFwvIRo+GzbfUD6tGgPen6UFQjHI6Bem97mHQKNF/0QJTCnMVZjxXxgzaVeYEr+2MUJWGa/wOKaJSx+9yXe2+kC40XReOX1fYNH0KxtafxWNeAl0i+1MBNuJ1oA7c2kuK2uAudXrpiHxLdCfqP0YjdIHEU6BsE9e/8eilzA/R2RSpBtXaeW6wekCxkx8BcSU2CKJDR3CZy5kuKfnZFBd9fP0=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.18
Release Details
UpdatedJune 18, 2026, 5:48 p.m.
Changelog

Added

  • Shared transaction editor: dashboard and ledger pages use a common inline editor for creating and editing bookings (transaction-editor.js).
  • Dashboard quick actions: household dashboards show month-scoped shortcuts (new transaction, open ledger) with a compact recent-ledger preview.
  • Transaction title fallback: blank titles default to the selected category name; unit tests cover resolution rules (TransactionTitleTest).

Changed

  • Workspace settings for all members: non-managers can open settings to view workspace details and personal planning-total preferences; managers retain full configuration access.
  • Transactions default window: the ledger opens on the current month instead of all time.
  • Full translations (da, de, en, es, fr, it, nb, nl, pl, sv) updated for new UI strings.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureSKcpYI6Eoom+8ISjGt9olvRkXi5uY+QOvPyiZdsD5+8o6RdJ0XvD+/j8B1C5R+3UA1dvb+7jp0X2I71rA+hdZfYWNad1qZ6lAalok63N23hLvqRKJIeZhV6dTrBLY9l57sDTckB+B+ajh4+bi48OzG8PiGG7edPRtWz0SRqzY1QP0p3IAWJee8hg+5LQfW3C3jlG2EUgFiTfQ9eOkJmlAvBCQzEvW2toaU1iAvpkyG/NjNfWvJDwHp72SQ49TvqKQ45+8h3K9d6ffgi2MQ1vVVoFseAOQ+PJxxwtk0DeR3DXLlcFuMx4xbWJsGYIM+JB/sIY3iSm4H61BQEpyV/nymfBh7eHN35/gh6zw11WlA5v/nuuFIEdkFHT59wADDBpB7T7NuuSscZl9NQ8ImiTarrKaYZ21O/iyvStevf03hN2yRwlbtjB5bvykH6MBD/K+tC/jZSkMehdcjiKuDMDnaeH8LVoK2EX2cW0AOPPX5RYv5MOd8no2d10YmSVWUHXBXMQo9T14fV1y59FR6y9sSH4kQstHoo7fKS+OovZxqwWolTWG5EnXKvpaLkiGx1FZsa6IwoEK1foDzBa981WCm3+m1fmIdXxovUERQWypvQEaITDrtCRZ+J/x8A5FVD+31zVwuMmhKdR2Jl/Okya1S5vFtN7wdy605iwwHttx9M=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.17
Release Details
UpdatedJune 18, 2026, 1:10 p.m.
Changelog

Added

  • Planning-total preferences: special transactions can be excluded from everyday planning totals by default, with per-user, server-persisted overrides and a manager-set workspace default (SummaryViewPreferencesService).
  • Savings-transfer and planned-entry aggregation: summaries now match planned entries against actual transactions and aggregate savings transfers (PlannedTransactionMatchService).
  • Dashboard transaction notes: transaction notes are shown on the dashboard.

Changed

  • Special transactions are excluded from everyday planning totals by default; full translations (da, de, en, es, fr, it, nb, nl, pl, sv) updated accordingly.

Fixed

  • Unbounded household transaction lists: household transaction lists are now properly bounded.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureizvhSAXVAauNrTd1+XRSpET6wvlQN+V/CwKb88U7Scaao2Bt9p+/4aBovQ+PFVoQpVPSOVWIh3iNQp9xN7jcEjcsJG3i27yJbUpLhZC6DwHTyylC7aoZ1LTOckdKxN7AZcHJuvkX+QuAZ+Z1qU7WBeFbEPW/JAy0zQ/IwCydAOpxo0IQviAIDEMG9HVpsDTHdzoyK3k2TZRXW2gPcJBh1wNiilvIVYHrWcPBpBkJyOUGU/6xjwgsDy7R+U3cPohcR2aqRY8rULm6QAek1hJK011QE83phikMlb537ykpgDRfaJCayV+4LIAwtN88ByCHZ6Ie0reJaAKqKB5KgMAiz6tLfn36gRBScL2L6jixzBY+HSizIXmPwLoo00K3F0TsGhdEhJjnkLSugZKywvKO+pt8D8zn6WEweJn4Zus9ROutUzcWnxouavCmkzIc92FCva3j0HwiZYz4ZOllZTjBAIk3cv1VQ3ZpGnd5HNY+IpcgRzZIY5yp+j6MDWrFXxJZhXpqK+XYxR34LNRKcxqHNlqzgWGyGvD5x5jmWF0bQK7fiU0SL7J3MaAHnU3xogrrnajTVynDzOUhU5tVupdt9u6+yfWMHoMpLFCOyr6Tt2wLQw0+Cmd4UcSOow5cEKVBKZhXckiHdd8l01jl5d4tcKuQrfAm4CljZkJxGYhNyTc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.16
Release Details
UpdatedJune 16, 2026, 8:29 p.m.
Changelog

Added

  • Import preferences API: server-synced CSV import defaults (ImportPreferencesService) with unit tests.
  • Transaction import hardening: UTF-8 and legacy encoding fallback, fingerprint-based duplicate skip, expanded reference column aliases, and higher rate limits for split imports.

Changed

  • CSV import UI: remove bank-type column from direction mapping; improved import page layout and validation feedback.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureNf9PlBV/1o8mLcdOG5YFSu6WMNOphaZXMRWnlzS2crVtJnR5hLLu3t5fd1lHaMMFsmPLxOY+wBWfqF1DMfrVWqZiP9dehXka8j516Q6CprOO7NIqkYCzzuTJ8FbfjqGZax9Q2w23fZkoQ5xwIPwEVH+TbzOvQdwbjDo5UB2eRyNu0v9VsUkUq5j/WSQ0GI+wEeQ64viKjM+SqXsjtF3Hsr+fc/IUYZ5U5sECD/WMdG9joDaD21uEqsE1hmjeQhnzewBu88IVEtxrbONbiLR+DtcVRbq3qvckgI70V47B6GAfwAPbwhgX72LBypRWeqhHbMTI0OiLsqIUjA5XJjSUXx0jZkAuNacWA8aeoFKPq06Kocwk0NO4XlG79JZV1pZvw05ndkUDc12Sf5KaivoD6MelSngw+oTOlPB+Pr1o3QrXmDo9hJKvXTYj8da1J6a0dFmedN1+BSG5iXmyR3WsohFZ+9tM/jMW6Lm85ad2cWMBF4saYdsKXlpiBr2URtZ/4MERFGIFjdcM6uiM6MJ5O2+thEwAcB7BRoAq/EAHr9EZBhznB7Xs43WiPm++pPZltzCtfh3BA4eLKW5IeQ4Rt5orvz9yqdRarh8bxJC79oIZazdPzGObVoicFMzULPuTLbG3nvI2b7h4vxvER/ZC9BmsgimqPG8rz0by1A+DfJA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.15
Release Details
UpdatedJune 16, 2026, 11:32 a.m.
Changelog

Fixed

  • App access permissions (#2): users and groups on the directory allow-list can open BudgetCheck without a pre-existing workspace membership. Workspace data remains gated by per-workspace role checks.
  • Group workspace membership counting: only honour group rows with assignable roles (viewer, contributor) when resolving effective access.

Added

  • CSV transaction import: guided import page with preview validation and atomic commit (TransactionImportService, /import, API preview/commit endpoints).
  • Unit tests for AccessControlService::canUseApp() allow-list behaviour (AccessControlAppAccessTest).
  • Integration test for AppAccessMiddleware deny/allow flows against live app config (AppAccessGateIntegrationTest).

Changed

  • Removed unused DENIAL_NO_WORKSPACE denial path; directory restriction is the sole app-entry gate.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureHZouyTZ5hZqsPrzxtw1wrLWQGIf+JewhQ82Ie2DcoTq/9Y6N1wrJ2NdS1Qi3LxrgwQYS4C/O+Rxbpf4d62cOJEIZ68/madywndUblrwSW4KXRURCzc3yODL/ol9NUFyrBFRkLvZ5L29iVVLkeny9g3XNKpaA+iXWFiiDNrHm48pbWtoYe76r0CO1S+oEt3m35U/YfhgkDbaBPSU3oak3cMZyRqBtnbs2jlGTu68ElE0Af77OzoKlx2e6/18J0dBDHX3yFJvkJnGXKzAoi1O3aVPaz22aXfvq0wTIf9uWo8v2ZA90PiOFR4nFpEBmx7g8bcmpEkFhwhPeeTYlYPsmkSy+9hncFX15GJff2hQVff5rjs006M4JY93yV/Kk7glu043avNEfcnKDXXN5dtejEMpuC8V8oZREnHyqbXslQ228DHwv6ui+XmWgYp6+gkUA4dnGVi/lEzpPMLpcXrVBV3qcoTukMR0z1R6O7VyErNVzNlxTezs/5pIMJ4lP9nWPwV3CNIHnO7TIkBm11s393rOQO+3IT467quMhSCTj6dcxkKWp/tY1CTYH1BWpD+/aQ7Ck0Z4kmczhZuPw5vndG77RFB1tHLOQfQ3W26DysmeeiISeYPPYSIlaotxkjQhyeuVVfi2ejm/zNokwsMUsqT5lH4u87KO2G632khnvkX8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.14
Release Details
UpdatedJune 12, 2026, 3:01 p.m.
Changelog

Fixed

  • Data loss after Nextcloud upgrade: UninstallDropTables preserves tables and settings on disable; full cleanup runs only on app removal.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignaturePjqj9ukzex/oDxEZ+z5so7SXgsV5XiuivULYarakCc1QdgB6uun6YCgj90RFP05w4drljrSlIHvqfyWUyqAtDo0fRtWwclgI5RROg9CmEaCqUITOrEtasJVmQwIXdnG1GBGeykF9C8x3W+/vJZaVOlPrzpMmk2x7xjlq62LR+ez4j1kpjO15KA/hqAkj7yCGC/q6h7/xkEImpI1N8EDG/bRjHb2o5btSLpBetMdxKbodkMOHlLZoVI635RBf7JznCMN0dlojigvESsBsTYaoIw9a0eNrA4SlfIV8bjAVpLG1jjMp7Z0reVYJ4bzK+HY0gh2UOzfNVjg50bovOunmh+REpMRuIWwQnLgiqr53xJ4kr8E/dKcAZWz/rvX8QhSM+hXqqRvUm6Nv37P4H3EbSkNxW8D3H5bzgKQQLc150ht6hlBpRSSNz1mtYf/RRePnfD9hkhxVDkVAMRTqi9C96mfc2W/xtwxpdzx4m1CI4DONCeG4e0PnmJBqMM3xj70pxBapy5dcxKmGp1SkbnKWmCzNTDCAH8MF4WsMg232t47UDSipU+H6wE64+Kqy6RquC/7Jpq0RFun5jrnp69pSiJ+bNeh7ngJG8RrDkgBYmx92AbTgcOFPnFoxYGl3evog8n7lAfjbE9WE2asQOhYlLbhOSsAfTEmZTicciKrdM8g=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<35.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.6.0
BudgetCheck 1.0.13
Release Details
UpdatedJune 4, 2026, 9:14 a.m.
Changelog

Fixed

  • EnsureBudgetCheckSchema: use the core Connection from the server container for MigrationService, so install/post-migration repair runs reliably on upgrade.

Added

  • Integration tests for repair steps (UpgradeRepairIntegrationTest) and PHPUnit bootstrap support when tests run against a Nextcloud tree (NEXTCLOUD_ROOT / monorepo lib/base.php).

Changed

  • Confirm Nextcloud 33 as max-version in appinfo/info.xml (aligned with latest stable server).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureMu0NdymSSRQ+70tNThrVIk60RnCFcWERf1gT4pdyMBFINTfsft3FKiavlB6Pjc74f00rf8fIlXtN54pKCSVv7nHTloAccEqyiFfIQA9UqlstwDBw57XZY1w2hOhB+hHYe1Lh8BAZd/TAFUHEg90OXrBo27Qb9mOrmaHbCVF2IMle4faEQJRJDx5Gnjx2FkjOf5l63AKo4FFzoTQZ3072fyPKy4szhY9Ajs8m9+Dv82qwdKncw/xD6Yk6PPR6MjCJad7/T7c6jrydQb2MaoILpMjFIYJAw3VX6Suryb2gkoX+DIhUJ6nPrUB/ssZdvFJ6YXmU+sSwfHq02jY+vf7MuF2kAFJIJequn2blYN8juGvzexKE3ZKj2NWisCMqzac1KJU/ISbB4v2D+FP9IUEiWzgjz6hh8Ci/bNLUnU9SkkkdJUAW2adJjERDggVDrcZ/wlKb8boKRwE7kvvYy6784N1tFzyU7T3c6g4AWE7aDYA9dFtrE0jsej66UmVdWDCyslA8bJzvpRPfBak2z9K0UPIjs3A9kHdcD4gBEk8fmHFNRgdX8IRTxuLprHE/tfO8lsP3m9i+tuxgcb87dmc9EPpxx6gNXRxdL3oFiAQsgmJ9AckEddtpSIlbmc5hfYTJnC3edJc7UcKLfZnZGE+wG9Z8X1t/c7GzqBhYO6k/TuA=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Databases MySQL
PostgreSQL
Minimum Integer bits32
PHP>=8.2.0,<8.5.0
BudgetCheck 1.0.10
Release Details
UpdatedMay 25, 2026, 8:10 p.m.
Changelog

Added

  • Searchable timezone and currency pickers on workspace and app settings: js/common/catalog-pickers.js with keyboard navigation, live filtering, and accessible combobox/listbox semantics; shared partials templates/common/bc-timezone-picker.php and bc-currency-picker.php.
  • CurrencyCatalog: single source for supported ISO codes (including RUB, UAH, KZT); TimezoneCatalog: full IANA list exposed via catalog API.
  • OCA\BudgetCheck\Repair\UninstallDropTables and EnsureBudgetCheckSchema wired in appinfo/info.xml for complete uninstall cleanup and idempotent schema repair on upgrade.
  • Migration Version1009: schema/repair hardening for production installs; BudgetCheckTableCatalog centralizes table names.
  • Tests: CurrencyCatalogTest, TimezoneCatalogTest, EnsureBudgetCheckSchemaTest, UninstallDropTablesTest, WorkspaceServiceUpdatePayloadTest.

Changed

  • Workspace settings: server-side validation for timezone/currency; currency lock after the first transaction.
  • App settings / settings UI: migrated to catalog pickers instead of plain text fields; styling in css/app.css.
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
Signaturege7LOoLm6PTYEDq/m3I0FLAVfA71Og+Tkz7Qod1TqwvzLaVPHpqJ5MV8LII54oLlwFP1ogFasrwfQUnjQf2gJvApWEE6WDcxTvrVPgDEOGLw9Je1V3A6FtPZMFgwXHYn8Ruo1wkmHcOFpV/mvd3tZThZymo6tQNBARGlCeZg2QZuzbe3XSLva/8N5xwEzY0prHKAN0wbF1xWdB8CSpeuGDSkOxvvGbyKpxfeWR3frUE/o375FaeVzeWDi42occvnPLfvFlhSuvqvZ/gZfhv4CAtxVTxk/fFCvKoC+2zMDUOpiSqdQllpIogOeReSfvpsCoS90SLPXMZMqn00O9XkGjajEsH/hnXCgldMJW7w50EW16t80sbpHn73dDhvyztff4f3nEd86BZiR8/ZZgFCzxh13z/tcJfVnSH43oavli1xvDTlQ8wnFxRNXH0Oi0zXeCJGuAIHRZWnRnprZ/ET1VwDGb4m+SO0vgbS6REGh5Lz1JzxqY3eMLfmbRkkDKx5MZujMwSqfkorno58zyRGL2L4cXLeZF48eJHof60yL3vp10ell+JBJnZf8feWHmZsQTyjziRiIRkUGAfFqHqNVnZTyOwE5eq45lP8NCXw6AAXNRMqBoBCIqRZk78syuDEQI2G66qg5CeeQGfnl0+QrwqFJTiLutBU5VYibDj9HIw=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0
BudgetCheck 1.0.9
Release Details
UpdatedMay 22, 2026, 6:35 p.m.
Changelog
  • Fix App Store info.xml validation: screenshots before donation/dependencies, settings before navigations, drop unsupported keywords, cap at 10 screenshots (schema limit).
Licenses GNU Affero General Public License v3.0 or later
Certificate-----BEGIN CERTIFICATE-----
MIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD
VQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr
M1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo
pLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL
1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh
d0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB
XxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4
84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF
Bh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj
TnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI
Sa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl
hUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN
AQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l
7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd
Tpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI
CIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag
XaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80
/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=
-----END CERTIFICATE-----
SignatureDn5a3JvhXhYY5r502pyiNdnQIutmv8UTOtEIHY/OYiZpQFHJg2Gd5L7OHVAACh9haxzG8K80pzfFn7mch1BxwQXKCV3s0lwGxsbfQ6OBd+Xkend/iJiwZVkroT0ZdOQJOK0AmN94v6LtJJ8tGyqN35UmmUtiJb1TePTXkXkshroRp1wd+RQx8WqYwBhUxMk/r8QMfEIOGaOoMMC1N5GV5gS+lJXfdccOaKgGRHubZJuqmwvXZyOQYzANgtoAXKyV1AkQIEPkMJrzEuhG2Ne240OR+PWVuudub0ioJPvF9w1aVtf8qX3j2p2N3VBeBlNKNMwIyp3bomU0zbSIG47veGNigmnBMiiKRPLVUuS9AZYMMn5PgShpsHKgk2FWGnFJCjbn/vLjNU2dTalE3F2KWw4Xy8R7bSGo9P7zIRhdh8ixkA1t1KEZMZvb20cR2TRaZrp02x4RXTBe5kb+Sd8C8+qJbLiUynXO4WH4tS/b8hQIp/cHP6LR1JGYXpyFjpiI0R3ZOJI9i2t+Sx/a9RebMCBheRd1KN0lNv0PyrNcKDZz3hxGw621l+Xz8dAZEWO8LUvh4Az9zpSsuTIrUf0Ai1BpShu/aBxcz22NVhAmkDmdM0r8RvE99uyRzZFll8TtDVIy2FJUk4EzieJoQZRx0UfK7GdBGp3bLldTarHgP8Y=
Signature digestsha512
Dependencies
Required Nextcloud versions >=32.0.0,<34.0.0
Minimum Integer bits32
PHP>=8.2.0,<8.5.0